in optimum_benchmark/backends/transformers_utils.py [0:0]
def get_flat_artifact_dict(artifact: Union["PretrainedConfig", "PretrainedProcessor"]) -> Dict[str, Any]:
artifact_dict = {}
if isinstance(artifact, ProcessorMixin):
artifact_dict.update(
{k: v for k, v in artifact.__dict__.items() if isinstance(v, (int, str, float, bool, list, tuple, dict))}
)
for attribute in artifact.attributes:
artifact_dict.update(get_flat_artifact_dict(getattr(artifact, attribute)))
elif hasattr(artifact, "to_dict"):
artifact_dict.update(
{k: v for k, v in artifact.to_dict().items() if isinstance(v, (int, str, float, bool, list, tuple, dict))}
)
else:
artifact_dict.update(
{k: v for k, v in artifact.__dict__.items() if isinstance(v, (int, str, float, bool, list, tuple, dict))}
)
artifact_dict = get_flat_dict(artifact_dict)
return artifact_dict