in model_card_toolkit/model_card_toolkit.py [0:0]
def scaffold_assets(self,
json: Optional[Union[Dict[str, Any],
str]] = None) -> ModelCard:
"""Generates the Model Card Tookit assets.
Assets include the ModelCard proto file, Model Card document, and jinja
template. These are written to the `output_dir` declared at
initialization.
An assets directory is created if one does not already exist.
If the MCT is initialized with a `mlmd_source`, it further auto-populates
ModelCard properties and generates plots for model performance and data
distributions. The ModelCard is saved as an Artifact to the `mlmd_source`.
Args:
json: An optional JSON object which can be used to populate fields in the
model card. This can be provided as either a dictionary or a string. If
provided, any fields used here will overwrite fields populated by
`mlmd_source`.
Returns:
A ModelCard representing the given model.
Raises:
FileNotFoundError: on failure to copy the template files.
"""
# Generate ModelCard.
model_card = self._scaffold_model_card()
if json:
model_card.merge_from_json(json)
# Write Proto file.
self._write_proto_file(self._mcta_proto_file, model_card)
# Write UI template files.
for template_path in _UI_TEMPLATES:
template_content = pkgutil.get_data('model_card_toolkit', template_path)
if template_content is None:
raise FileNotFoundError(f"Cannot find file: '{template_path}'")
template_content = template_content.decode('utf8')
self._write_file(
os.path.join(self.output_dir, template_path), template_content)
return model_card