Skip to content

Commit

Permalink
Let PrintWriter manage its own files
Browse files Browse the repository at this point in the history
  • Loading branch information
kwalcock committed Feb 20, 2023
1 parent dfc4dc7 commit dec770f
Show file tree
Hide file tree
Showing 11 changed files with 33 additions and 20 deletions.
Expand Up @@ -76,7 +76,7 @@ object InfiniteParallelProcessorExample {
def run(args: Array[String]): Unit = {

mainWithCallback(args) { case (file: File, contents: String) =>
Using.resource(new PrintWriter(new BufferedOutputStream(new FileOutputStream(file)))) { printWriter =>
Using.resource(new PrintWriter(file)) { printWriter =>
printWriter.println(contents)
}
}
Expand Down
Expand Up @@ -73,7 +73,7 @@ object ParallelProcessorExample {
def run(args: Array[String]): Unit = {

mainWithCallback(args) { case (file: File, contents: String) =>
Using.resource(new PrintWriter(new BufferedOutputStream(new FileOutputStream(file)))) { printWriter =>
Using.resource(new PrintWriter(file)) { printWriter =>
printWriter.println(contents)
}
}
Expand Down
12 changes: 7 additions & 5 deletions main/src/main/scala/org/clulab/dynet/Metal.scala
Expand Up @@ -12,7 +12,7 @@ import org.clulab.struct.Counter
import org.clulab.utils.{ProgressBar, StringUtils}
import org.slf4j.{Logger, LoggerFactory}

import java.io.{FileWriter, PrintWriter}
import java.io.PrintWriter
import scala.collection.mutable.ArrayBuffer
import scala.util.Random

Expand Down Expand Up @@ -304,10 +304,12 @@ class Metal(val taskManagerOpt: Option[TaskManager],

logger.debug(s"Started evaluation on the $name dataset for task $taskNumber ($taskName)...")

Using.resource(
if (epoch >= 0) new PrintWriter(new FileWriter(s"task$taskNumber.dev.output.$epoch"))
else new PrintWriter(new FileWriter(s"task$taskNumber.test.output"))
) { pw =>
Using.resource {
val filename =
if (epoch >= 0) s"task$taskNumber.dev.output.$epoch"
else s"task$taskNumber.test.output"
new PrintWriter(filename)
} { pw =>
val reader = new MetalRowReader
val insertNegatives = taskManager.tasks(taskId).insertNegatives

Expand Down
4 changes: 2 additions & 2 deletions main/src/main/scala/org/clulab/learning/Dataset.scala
Expand Up @@ -6,7 +6,7 @@ import org.clulab.struct.Lexicon
import org.clulab.utils.Files
import org.slf4j.{Logger, LoggerFactory}

import java.io.{FileWriter, PrintWriter}
import java.io.PrintWriter
import java.util.zip.GZIPInputStream
import scala.collection.mutable
import scala.collection.mutable.{ArrayBuffer, ListBuffer}
Expand Down Expand Up @@ -454,7 +454,7 @@ object RVFDataset {
featureLexicon:Lexicon[String],
fn:String): Unit = {

Using.resource(new PrintWriter(new FileWriter(fn))) { os =>
Using.resource(new PrintWriter(fn)) { os =>
for (datum <- datums) {
os.print(datum.label)
val fs = new ListBuffer[(Int, Double)]
Expand Down
Expand Up @@ -451,7 +451,7 @@ object RVFRankingDataset {
featureLexicon:Lexicon[String],
fn:String): Unit = {
var qid = 0
Using.resource (new PrintWriter(new FileWriter(fn))) { os =>
Using.resource(new PrintWriter(fn)) { os =>
for (query <- queries) {
qid += 1
for (datum <- query) {
Expand Down
4 changes: 2 additions & 2 deletions main/src/main/scala/org/clulab/learning/RegDataset.scala
Expand Up @@ -6,7 +6,7 @@ import org.clulab.struct.Lexicon
import org.clulab.utils.Files
import org.slf4j.LoggerFactory

import java.io.{BufferedInputStream, FileInputStream, FileWriter, PrintWriter}
import java.io.PrintWriter
import java.util.zip.GZIPInputStream
import scala.collection.mutable
import scala.collection.mutable.{ArrayBuffer, ListBuffer}
Expand Down Expand Up @@ -450,7 +450,7 @@ object RVFRegDataset {
featureLexicon:Lexicon[String],
fn:String): Unit = {

Using.resource(new PrintWriter(new FileWriter(fn))) { os =>
Using.resource(new PrintWriter(fn)) { os =>
for (datum <- datums) {
os.print(datum.label)
val fs = new ListBuffer[(Int, Double)]
Expand Down
Expand Up @@ -56,7 +56,7 @@ abstract class BiMEMMSequenceTagger[L: ClassTag, F: ClassTag](
} else {
logger.debug("Generating first-pass labels from scratch...")
val labels = mkFirstPassLabels(sentences)
Using.resource(new PrintWriter(new FileWriter(FIRST_PASS_FILE))) { pw =>
Using.resource(new PrintWriter(FIRST_PASS_FILE)) { pw =>
for (s <- labels) {
pw.println(s.mkString("\t"))
}
Expand Down Expand Up @@ -249,7 +249,7 @@ abstract class BiMEMMSequenceTagger[L: ClassTag, F: ClassTag](

override def save(fn:File): Unit = {
// save meta data
Using.resource(new PrintWriter(new FileWriter(fn))) { w =>
Using.resource(new PrintWriter(fn)) { w =>
w.println(order)
w.println(leftToRight)

Expand Down
Expand Up @@ -83,8 +83,8 @@ abstract class MEMMSequenceTagger[L: ClassTag, F: ClassTag](var order:Int = 1, v
if(leftToRight) history.toArray else SeqUtils.revert(history).toArray
}

override def save(fn:File): Unit = {
Using.resource(new PrintWriter(new FileWriter(fn))) { w =>
override def save(file: File): Unit = {
Using.resource(new PrintWriter(file)) { w =>
w.println(order)
model.get.saveTo(w)
}
Expand Down
Expand Up @@ -2,7 +2,7 @@ package org.clulab.sequences

import org.clulab.scala.Using._

import java.io.{FileWriter, PrintWriter}
import java.io.PrintWriter
import scala.io.Source

/**
Expand All @@ -15,7 +15,7 @@ import scala.io.Source
object NormalizeParens {
def main(args: Array[String]): Unit = {
val isConll = args(1) == "conll"
Using.resource(new PrintWriter(new FileWriter(args(0) + ".parens"))) { pw =>
Using.resource(new PrintWriter(args(0) + ".parens")) { pw =>
for (line <- Source.fromFile(args(0)).getLines()) {
if (line.trim.isEmpty) {
pw.println(line)
Expand Down
Expand Up @@ -3,9 +3,10 @@ package org.clulab.sequences
import org.clulab.processors.Document
import org.clulab.scala.Using._
import org.clulab.sequences.SequenceTaggerEvaluator._
import org.clulab.utils.NullWriter
import org.slf4j.{Logger, LoggerFactory}

import java.io.{PrintWriter, StringWriter}
import java.io.PrintWriter

/**
* Implements evaluation of a sequence tagger
Expand All @@ -15,7 +16,7 @@ class SequenceTaggerEvaluator[L, F] {
def accuracy(tagger:SequenceTagger[L, F], docs:Iterator[Document], saveOutput:Boolean = true): Double = {
Using.resource(
if (saveOutput) new PrintWriter("output_for_conlleval.txt")
else new PrintWriter(new StringWriter())
else new PrintWriter(new NullWriter())
) { pw =>
var correct = 0
var total = 0
Expand Down
10 changes: 10 additions & 0 deletions main/src/main/scala/org/clulab/utils/NullWriter.scala
@@ -0,0 +1,10 @@
package org.clulab.utils

import java.io.Writer

// Java 11 has thigs built in: Writer.nullWriter()
class NullWriter extends Writer {
override def write(cbuf: Array[Char], off: Int, len: Int): Unit = ()
override def flush(): Unit = ()
override def close(): Unit = ()
}

0 comments on commit dec770f

Please sign in to comment.