Skip to content

Fire can't find custom __str__ of ~datasets.Dataset from HuggingFace #595

@nerdai

Description

@nerdai

Hi,

I am using fire on a main function that returns a ~datasets.Dataset object. When running from cli, I get the help screen for ~datasets.Dataset rather than the __str__ implementation (likely inherited from a parent class -- haven't looked).

Reproducible example

from datasets import Dataset
import fire

def main():
    # Create a simple dataset
    dataset = Dataset.from_dict({"a": [1, 2, 3], "b": [4, 5, 6]})
    return dataset

if __name__ == "__main__":
    fire.Fire(main)
    
    # This works but I feel shouldn't be necessary:
    # def custom_serializer(obj: object) -> str:
    #     if hasattr(obj, "__str__"):
    #         return str(obj)
    #     else:
    #         return ""
    # fire.Fire(main, serialize=custom_serializer)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions