def get_flat_artifact_dict()

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