Example #1
0
 def test_expect_bytes_written_bytes_IO(self):
   byte_len = 64
   Bytes_io = six.BytesIO()
   w = RecordWriter(Bytes_io)
   bytes_to_write = b"x" * byte_len
   w.write(bytes_to_write)
   self.assertEqual(len(Bytes_io.getvalue()), (8 + 4 + byte_len + 4))  # uint64+uint32+data+uint32
Example #2
0
 def test_record_immediate_read(self):
   filename = os.path.join(self.get_temp_dir(), "record_immediate_read")
   chunks_to_write = ["hello world{}".format(i).encode() for i in range(10)]
   w = RecordWriter(open(filename, 'wb'))
   r = PyRecordReader_New(filename)
   with self.assertRaises(errors.OutOfRangeError):
     r.GetNext()
   for bytes in chunks_to_write:
     w.write(bytes)
     w.flush()
     r.GetNext()
     self.assertEqual(r.record(), bytes)
   w.close()
Example #3
0
 def test_empty_record(self):
     filename = os.path.join(self.get_temp_dir(), "empty_record")
     w = RecordWriter(open(filename, "wb"))
     bytes_to_write = b""
     w.write(bytes_to_write)
     w.close()
     r = PyRecordReader_New(filename)
     r.GetNext()
     self.assertEqual(r.record(), bytes_to_write)
Example #4
0
 def test_expect_bytes_written(self):
   filename = os.path.join(self.get_temp_dir(), "expect_bytes_written")
   byte_len = 64
   w = RecordWriter(open(filename, 'wb'))
   bytes_to_write = b"x" * byte_len
   w.write(bytes_to_write)
   w.close()
   with open(filename, 'rb') as f:
     self.assertEqual(len(f.read()), (8 + 4 + byte_len + 4))  # uint64+uint32+data+uint32
Example #5
0
  def test_record_writer_roundtrip(self):
    filename = os.path.join(self.get_temp_dir(), "record_writer_roundtrip")
    w = RecordWriter(open(filename, 'wb'))
    chunks_to_write = ["hello world{}".format(i).encode() for i in range(10)]
    for bytes in chunks_to_write:
      w.write(bytes)
    w.close()

    r = PyRecordReader_New(filename)
    for bytes in chunks_to_write:
      r.GetNext()
      self.assertEqual(r.record(), bytes)
Example #6
0
    def test_record_writer_roundtrip(self):
        filename = os.path.join(self.get_temp_dir(), "record_writer_roundtrip")
        w = RecordWriter(open(filename, 'wb'))
        bytes_to_write = b"hello world"
        times_to_test = 50
        for _ in range(times_to_test):
            w.write(bytes_to_write)
        w.close()

        r = PyRecordReader_New(filename)
        for i in range(times_to_test):
            r.GetNext()
            self.assertEqual(r.record(), bytes_to_write)
Example #7
0
    def __init__(self,
                 logdir,
                 max_queue_size=10,
                 flush_secs=120,
                 filename_suffix=""):
        """Creates a `EventFileWriter` and an event file to write to.

        On construction the summary writer creates a new event file in `logdir`.
        This event file will contain `Event` protocol buffers, which are written to
        disk via the add_event method.
        The other arguments to the constructor control the asynchronous writes to
        the event file:

        Args:
          logdir: A string. Directory where event file will be written.
          max_queue_size: Integer. Size of the queue for pending events and summaries.
          flush_secs: Number. How often, in seconds, to flush the
            pending events and summaries to disk.
        """
        self._logdir = logdir
        if not tf.io.gfile.exists(logdir):
            tf.io.gfile.makedirs(logdir)
        self._file_name = (os.path.join(
            logdir,
            "events.out.tfevents.%010d.%s.%s.%s" % (
                time.time(),
                socket.gethostname(),
                os.getpid(),
                _global_uid.get(),
            ),
        ) + filename_suffix)  # noqa E128
        self._general_file_writer = tf.io.gfile.GFile(self._file_name, "wb")
        self._async_writer = _AsyncWriter(
            RecordWriter(self._general_file_writer), max_queue_size,
            flush_secs)

        # Initialize an event instance.
        _event = event_pb2.Event(wall_time=time.time(),
                                 file_version="brain.Event:2")
        self.add_event(_event)
        self.flush()