def testReadableFormatterWithNonUtcTimezone(self):
     experiment = experiment_pb2.Experiment(
         experiment_id="deadbeef",
         name="A name for the experiment",
         description="A description for the experiment",
         num_runs=2,
         num_tags=4,
         num_scalars=60,
         total_blob_bytes=1234,
     )
     util.set_timestamp(experiment.create_time, 981173106)
     util.set_timestamp(experiment.update_time, 1015218367)
     experiment_url = "http://tensorboard.dev/deadbeef"
     formatter = formatters.ReadableFormatter()
     output = self._format(
         formatter,
         experiment,
         experiment_url,
         timezone="America/Los_Angeles",
     )
     expected_lines = [
         "http://tensorboard.dev/deadbeef",
         "\tName                 A name for the experiment",
         "\tDescription          A description for the experiment",
         "\tId                   deadbeef",
         "\tCreated              2001-02-02 20:05:06",
         "\tUpdated              2002-03-03 21:06:07",
         "\tRuns                 2",
         "\tTags                 4",
         "\tScalars              60",
         "\tBinary object bytes  1234",
     ]
     self.assertEqual(output.split("\n"), expected_lines)
Example #2
0
    def execute(self, server_info, channel):
        api_client = export_service_pb2_grpc.TensorBoardExporterServiceStub(
            channel)
        fieldmask = experiment_pb2.ExperimentMask(
            name=True,
            description=True,
            create_time=True,
            update_time=True,
            num_runs=True,
            num_tags=True,
            num_scalars=True,
            total_tensor_bytes=True,
            total_blob_bytes=True,
        )
        gen = exporter_lib.list_experiments(api_client, fieldmask=fieldmask)
        count = 0

        if self.json:
            formatter = formatters.JsonFormatter()
        else:
            formatter = formatters.ReadableFormatter()
        for experiment in gen:
            count += 1
            experiment_id = experiment.experiment_id
            url = server_info_lib.experiment_url(server_info, experiment_id)
            print(formatter.format_experiment(experiment, url))
        sys.stdout.flush()
        if not count:
            sys.stderr.write(
                "No experiments. Use `tensorboard dev upload` to get started.\n"
            )
        else:
            sys.stderr.write("Total: %d experiment(s)\n" % count)
        sys.stderr.flush()
 def testReadableFormatterWithEmptyNameAndDescription(self):
     experiment = experiment_pb2.Experiment(
         experiment_id="deadbeef",
         # NOTE(cais): `name` and `description` are missing here.
         num_runs=2,
         num_tags=4,
         num_scalars=60,
         total_blob_bytes=1234,
     )
     util.set_timestamp(experiment.create_time, 981173106)
     util.set_timestamp(experiment.update_time, 1015218367)
     experiment_url = "http://tensorboard.dev/deadbeef"
     formatter = formatters.ReadableFormatter()
     output = self._format(formatter, experiment, experiment_url)
     expected_lines = [
         "http://tensorboard.dev/deadbeef",
         "\tName                 [No Name]",
         "\tDescription          [No Description]",
         "\tId                   deadbeef",
         "\tCreated              2001-02-03 04:05:06",
         "\tUpdated              2002-03-04 05:06:07",
         "\tRuns                 2",
         "\tTags                 4",
         "\tScalars              60",
         "\tBinary object bytes  1234",
     ]
     self.assertEqual(output.split("\n"), expected_lines)