def __missing__(self, key):
        if self.default_factory is None:
            raise KeyError(key)
        else:
            ret = self[key] = self.default_factory(name=key)
            return ret
def __init__(self, schema_file: str):
        self._schema = artifact_utils.read_schema_file(schema_file)

        self._type_name, self._metric_fields = artifact_utils.parse_schema(
            self._schema)

        self._values = {}