示例#1
0
 def test_metadata(self):
     pb = self.histogram("h", [], description="foo")
     self.assertEqual(len(pb.value), 1)
     summary_metadata = pb.value[0].metadata
     self.assertEqual(summary_metadata.summary_description, "foo")
     plugin_data = summary_metadata.plugin_data
     self.assertEqual(plugin_data.plugin_name, metadata.PLUGIN_NAME)
     parsed = metadata.parse_plugin_metadata(plugin_data.content)
     self.assertEqual(metadata.PROTO_VERSION, parsed.version)
示例#2
0
 def test_metadata(self):
     # We're going to assume that the basic metadata is handled the same
     # across all data cases (unless explicitly changed).
     pb = self.compute_and_check_summary_pb(name='widgets')
     self.assertEqual(len(pb.value), 1)
     self.assertEqual(pb.value[0].tag, 'widgets/histogram_summary')
     summary_metadata = pb.value[0].metadata
     self.assertEqual(summary_metadata.display_name, 'widgets')
     self.assertEqual(summary_metadata.summary_description, '')
     plugin_data = summary_metadata.plugin_data
     self.assertEqual(plugin_data.plugin_name, metadata.PLUGIN_NAME)
     parsed = metadata.parse_plugin_metadata(plugin_data.content)
     self.assertEqual(metadata.PROTO_VERSION, parsed.version)
示例#3
0
 def test_explicit_display_name_and_description(self):
     display_name = 'Widget metrics'
     description = 'Tracks widget production; *units*: MacGuffins/hr'
     pb = self.compute_and_check_summary_pb(name='widgets',
                                            display_name=display_name,
                                            description=description)
     summary_metadata = pb.value[0].metadata
     self.assertEqual(summary_metadata.display_name, display_name)
     self.assertEqual(summary_metadata.summary_description, description)
     plugin_data = summary_metadata.plugin_data
     self.assertEqual(plugin_data.plugin_name, metadata.PLUGIN_NAME)
     parsed = metadata.parse_plugin_metadata(plugin_data.content)
     self.assertEqual(metadata.PROTO_VERSION, parsed.version)
示例#4
0
  def index_impl(self):
    """Return {runName: {tagName: {displayName: ..., description: ...}}}."""
    runs = self._multiplexer.Runs()
    result = {run: {} for run in runs}

    mapping = self._multiplexer.PluginRunToTagToContent(metadata.PLUGIN_NAME)
    for (run, tag_to_content) in six.iteritems(mapping):
      for (tag, content) in six.iteritems(tag_to_content):
        content = metadata.parse_plugin_metadata(content)
        summary_metadata = self._multiplexer.SummaryMetadata(run, tag)
        result[run][tag] = {'displayName': summary_metadata.display_name,
                            'description': plugin_util.markdown_to_safe_html(
                                summary_metadata.summary_description)}

    return result
示例#5
0
    def index_impl(self):
        """Return {runName: {tagName: {displayName: ..., description: ...}}}."""
        if self._db_connection_provider:
            # Read tags from the database.
            db = self._db_connection_provider()
            cursor = db.execute(
                '''
        SELECT
          Tags.tag_name,
          Tags.display_name,
          Runs.run_name
        FROM Tags
        JOIN Runs
          ON Tags.run_id = Runs.run_id
        WHERE
          Tags.plugin_name = ?
      ''', (metadata.PLUGIN_NAME, ))
            result = collections.defaultdict(dict)
            for row in cursor:
                tag_name, display_name, run_name = row
                result[run_name][tag_name] = {
                    'displayName': display_name,
                    # TODO(chihuahua): Populate the description. Currently, the tags
                    # table does not link with the description table.
                    'description': '',
                }
            return result

        runs = self._multiplexer.Runs()
        result = {run: {} for run in runs}

        mapping = self._multiplexer.PluginRunToTagToContent(
            metadata.PLUGIN_NAME)
        for (run, tag_to_content) in six.iteritems(mapping):
            for (tag, content) in six.iteritems(tag_to_content):
                content = metadata.parse_plugin_metadata(content)
                summary_metadata = self._multiplexer.SummaryMetadata(run, tag)
                result[run][tag] = {
                    'displayName':
                    summary_metadata.display_name,
                    'description':
                    plugin_util.markdown_to_safe_html(
                        summary_metadata.summary_description)
                }

        return result
示例#6
0
    def index_impl(self):
        """Return {runName: {tagName: {displayName: ..., description: ...}}}."""
        runs = self._multiplexer.Runs()
        result = {run: {} for run in runs}

        mapping = self._multiplexer.PluginRunToTagToContent(
            metadata.PLUGIN_NAME)
        for (run, tag_to_content) in six.iteritems(mapping):
            for (tag, content) in six.iteritems(tag_to_content):
                content = metadata.parse_plugin_metadata(content)
                summary_metadata = self._multiplexer.SummaryMetadata(run, tag)
                result[run][tag] = {
                    'displayName':
                    summary_metadata.display_name,
                    'description':
                    plugin_util.markdown_to_safe_html(
                        summary_metadata.summary_description)
                }

        return result
 def index_impl(self, ctx, experiment):
     """Return {runName: {tagName: {displayName: ..., description:
     ...}}}."""
     mapping = self._data_provider.list_tensors(
         ctx,
         experiment_id=experiment,
         plugin_name=metadata.PLUGIN_NAME,
     )
     result = {run: {} for run in mapping}
     for (run, tag_to_content) in mapping.items():
         for (tag, metadatum) in tag_to_content.items():
             description = plugin_util.markdown_to_safe_html(
                 metadatum.description)
             md = metadata.parse_plugin_metadata(metadatum.plugin_content)
             if not self._version_checker.ok(md.version, run, tag):
                 continue
             result[run][tag] = {
                 "displayName": metadatum.display_name,
                 "description": description,
             }
     return result
  def index_impl(self):
    """Return {runName: {tagName: {displayName: ..., description: ...}}}."""
    if self._db_connection_provider:
      # Read tags from the database.
      db = self._db_connection_provider()
      cursor = db.execute('''
        SELECT
          Tags.tag_name,
          Tags.display_name,
          Runs.run_name
        FROM Tags
        JOIN Runs
          ON Tags.run_id = Runs.run_id
        WHERE
          Tags.plugin_name = ?
      ''', (metadata.PLUGIN_NAME,))
      result = collections.defaultdict(dict)
      for row in cursor:
        tag_name, display_name, run_name = row
        result[run_name][tag_name] = {
            'displayName': display_name,
            # TODO(chihuahua): Populate the description. Currently, the tags
            # table does not link with the description table.
            'description': '',
        }
      return result

    runs = self._multiplexer.Runs()
    result = {run: {} for run in runs}

    mapping = self._multiplexer.PluginRunToTagToContent(metadata.PLUGIN_NAME)
    for (run, tag_to_content) in six.iteritems(mapping):
      for (tag, content) in six.iteritems(tag_to_content):
        content = metadata.parse_plugin_metadata(content)
        summary_metadata = self._multiplexer.SummaryMetadata(run, tag)
        result[run][tag] = {'displayName': summary_metadata.display_name,
                            'description': plugin_util.markdown_to_safe_html(
                                summary_metadata.summary_description)}

    return result
示例#9
0
    def index_impl(self, ctx, experiment):
        """Return {runName: {tagName: {displayName: ..., description:
        ...}}}."""
        if self._data_provider:
            mapping = self._data_provider.list_tensors(
                ctx,
                experiment_id=experiment,
                plugin_name=metadata.PLUGIN_NAME,
            )
            result = {run: {} for run in mapping}
            for (run, tag_to_content) in six.iteritems(mapping):
                for (tag, metadatum) in six.iteritems(tag_to_content):
                    description = plugin_util.markdown_to_safe_html(
                        metadatum.description)
                    result[run][tag] = {
                        "displayName": metadatum.display_name,
                        "description": description,
                    }
            return result

        runs = self._multiplexer.Runs()
        result = collections.defaultdict(lambda: {})

        mapping = self._multiplexer.PluginRunToTagToContent(
            metadata.PLUGIN_NAME)
        for (run, tag_to_content) in six.iteritems(mapping):
            for (tag, content) in six.iteritems(tag_to_content):
                content = metadata.parse_plugin_metadata(content)
                summary_metadata = self._multiplexer.SummaryMetadata(run, tag)
                result[run][tag] = {
                    "displayName":
                    summary_metadata.display_name,
                    "description":
                    plugin_util.markdown_to_safe_html(
                        summary_metadata.summary_description),
                }

        return result
示例#10
0
    def index_impl(self, experiment):
        """Return {runName: {tagName: {displayName: ..., description:
        ...}}}."""
        if self._data_provider:
            mapping = self._data_provider.list_tensors(
                experiment_id=experiment,
                plugin_name=metadata.PLUGIN_NAME,
            )
            result = {run: {} for run in mapping}
            for (run, tag_to_content) in six.iteritems(mapping):
                for (tag, metadatum) in six.iteritems(tag_to_content):
                    description = plugin_util.markdown_to_safe_html(
                        metadatum.description)
                    result[run][tag] = {
                        "displayName": metadatum.display_name,
                        "description": description,
                    }
            return result

        if self._db_connection_provider:
            # Read tags from the database.
            db = self._db_connection_provider()
            cursor = db.execute(
                """
                SELECT
                  Tags.tag_name,
                  Tags.display_name,
                  Runs.run_name
                FROM Tags
                JOIN Runs
                  ON Tags.run_id = Runs.run_id
                WHERE
                  Tags.plugin_name = ?
                """,
                (metadata.PLUGIN_NAME, ),
            )
            result = collections.defaultdict(dict)
            for row in cursor:
                tag_name, display_name, run_name = row
                result[run_name][tag_name] = {
                    "displayName": display_name,
                    # TODO(chihuahua): Populate the description. Currently, the tags
                    # table does not link with the description table.
                    "description": "",
                }
            return result

        runs = self._multiplexer.Runs()
        result = collections.defaultdict(lambda: {})

        mapping = self._multiplexer.PluginRunToTagToContent(
            metadata.PLUGIN_NAME)
        for (run, tag_to_content) in six.iteritems(mapping):
            for (tag, content) in six.iteritems(tag_to_content):
                content = metadata.parse_plugin_metadata(content)
                summary_metadata = self._multiplexer.SummaryMetadata(run, tag)
                result[run][tag] = {
                    "displayName":
                    summary_metadata.display_name,
                    "description":
                    plugin_util.markdown_to_safe_html(
                        summary_metadata.summary_description),
                }

        return result