content: [project]
  # Project metadata. Available keys are documented at:
  # https://packaging.python.org/en/latest/specifications/declaring-project-metadata
  name = "mlcroissant"
  description = "MLCommons datasets format."
  version = "1.0.22"
  authors = [
    { name = "Costanza Conforti" },
    { name = "Joaquin Vanschoren" },
    { name = "Jos van der Velde" },
    { name = "Monjish Bhattacharyya" },
    { name = "Omar Benjelloun" },
    { name = "Peter Mattson" },
    { name = "Pieter Gijsbers" },
    { name = "Pierre Marcenac" },
    { name = "Pierre Ruyssen" },
    { name = "Prabhant Singh" },
  ]
  
  # pip dependencies of the project
  # Installed locally with `pip install -e .`
  dependencies = [
    "absl-py",
    "etils[epath]>=1.7.0",
    "jsonpath-rw",
    "networkx",
    "pandas",
    "pandas-stubs",
    "python-dateutil",
    "rdflib",
    "requests",
    "scipy",
    "tqdm",
  ]
  readme = "README.md"
  
  [urls]
  github = "https://github.com/mlcommons/croissant"
  documentation = "https://mlcommons.org/working-groups/data/croissant/"
  "bug tracker" = "https://github.com/mlcommons/croissant/issues"
  
  [project.optional-dependencies]
  # Development deps (linting, formatting,...)
  # Installed through `pip install -e .[dev]`
  dev = [
    "black==23.11.0",
    "flake8-docstrings",
    "mlcroissant[audio]",
    "mlcroissant[beam]",
    "mlcroissant[git]",
    "mlcroissant[image]",
    "mlcroissant[dicom]",
    "mlcroissant[parquet]",
    "mypy",
    "pyflakes",
    "pygraphviz",
    "pytest",
    "pytype",
    "torchdata",
  ]
  # Fix following https://github.com/librosa/librosa/issues/1831#issuecomment-2176274560
  audio = [
    "librosa",
    "soxr==0.4.0b1",
  ]
  beam = [
    "apache-beam",
  ]
  git = ["GitPython"]
  image = ["Pillow"]
  dicom = ["pydicom>=2.4.0"]
  parquet = ["pyarrow"]
  
  [project.scripts]
  mlcroissant = "mlcroissant.scripts.cli:main"
  
  # Formatting configurations.
  [tool.black]
  line-length = 88
  
  [tool.pytype]
  inputs = ["mlcroissant"]
  # PyLint is skipped for migrations as migrations are supposed to be launched on
  # fixed previous versions of the code.
  exclude = ["*/scripts/migrations/previous/*"]
  strict_none_binding = true
  use_enum_overlay = true
  use_fiddle_overlay = true
  
  [tool.mypy]
  show_error_codes = true
  no_implicit_optional = true
  disable_error_code = "attr-defined"
  
  [[tool.mypy.overrides]]
  module = [
    "absl",
    "apache-beam",
    "etils.*",
    "jsonpath_rw",
    "librosa",
    "networkx",
    "pandas",
    "pillow",
    "scipy",
    "torchdata",
    "torchdata.datapipes",
  ]
  ignore_missing_imports = true
  
  [[tool.mypy.overrides]]
  module = ["mlcroissant.scripts.migrations.previous.*"]
  ignore_errors = true
  
  [tool.isort]
  profile = "google"
  line_length = 88
  use_parentheses = true
  known_first_party = ["mlcroissant"]
  multi_line_output = 3
  
  [tool.distutils.bdist_wheel]
  universal = true
  
  [tool.setuptools.packages.find]
  exclude = ["recipes*"]
  
  [build-system]
  requires = ["setuptools"]
  build-backend = "setuptools.build_meta"
  
  [tool.pytest.ini_options]
  # Pytest settings configurations.
  addopts = "--strict-markers"
  markers = ["nonhermetic: Non-hermetic test cases (data from the internet)."]
  