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)
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)
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)
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): """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
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
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
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