in model_card_toolkit/model_card_toolkit.py [0:0]
def export_format(self,
model_card: Optional[Union[
ModelCard, model_card_pb2.ModelCard]] = None,
template_path: Optional[str] = None,
output_file: Optional[str] = None) -> str:
"""Generates a model card document based on the MCT assets.
The model card document is both returned by this function, as well as saved
to output_file.
Args:
model_card: The ModelCard object, generated from `scaffold_assets()`. If
not provided, it will be read from the ModelCard proto file in the
assets directory.
template_path: The file path of the Jinja template. If not provided, the
default template will be used.
output_file: The file name of the generated model card. If not provided,
the default 'model_card.html' will be used. If the file already exists,
then it will be overwritten.
Returns:
The model card file content.
Raises:
ValueError: If `export_format` is called before `scaffold_assets` has
generated model card assets.
"""
if not template_path:
template_path = os.path.join(self._mcta_template_dir,
_DEFAULT_UI_TEMPLATE_FILE)
template_dir = os.path.dirname(template_path)
template_file = os.path.basename(template_path)
if not output_file:
output_file = _DEFAULT_MODEL_CARD_FILE_NAME
# If model_card is passed in, write to Proto file.
if model_card:
self.update_model_card(model_card)
# If model_card is not passed in, read from Proto file.
else:
model_card = self._read_proto_file(self._mcta_proto_file)
if not model_card:
raise ValueError('model_card could not be found. '
'Call scaffold_assets() to generate model_card.')
# Generate Model Card.
jinja_env = jinja2.Environment(
loader=self._jinja_loader(template_dir),
autoescape=True,
auto_reload=True,
cache_size=0)
template = jinja_env.get_template(template_file)
model_card_file_content = template.render(
model_details=model_card.model_details,
model_parameters=model_card.model_parameters,
quantitative_analysis=model_card.quantitative_analysis,
considerations=model_card.considerations)
# Write the model card document file and return its contents.
mode_card_file_path = os.path.join(self._model_cards_dir, output_file)
self._write_file(mode_card_file_path, model_card_file_content)
return model_card_file_content