import platform | |
from argparse import ArgumentParser | |
import fsspec | |
import huggingface_hub | |
import pandas | |
import pyarrow | |
from datasets import __version__ as version | |
from datasets.commands import BaseDatasetsCLICommand | |
def info_command_factory(_): | |
return EnvironmentCommand() | |
class EnvironmentCommand(BaseDatasetsCLICommand): | |
def register_subcommand(parser: ArgumentParser): | |
download_parser = parser.add_parser("env", help="Print relevant system environment info.") | |
download_parser.set_defaults(func=info_command_factory) | |
def run(self): | |
info = { | |
"`datasets` version": version, | |
"Platform": platform.platform(), | |
"Python version": platform.python_version(), | |
"`huggingface_hub` version": huggingface_hub.__version__, | |
"PyArrow version": pyarrow.__version__, | |
"Pandas version": pandas.__version__, | |
"`fsspec` version": fsspec.__version__, | |
} | |
print("\nCopy-and-paste the text below in your GitHub issue.\n") | |
print(self.format_dict(info)) | |
return info | |
def format_dict(d): | |
return "\n".join([f"- {prop}: {val}" for prop, val in d.items()]) + "\n" | |