content: [build-system]
  requires = ["setuptools>=61.0", "setuptools-scm>=8.0", "wheel"]
  build-backend = "setuptools.build_meta"
  
  [project]
  name = "meds-tab"
  dynamic = ["version"]
  authors = [
    { name="Matthew McDermott", email="mattmcdermott8@gmail.com" },
    { name="Nassim Oufattole", email="noufattole@gmail.com" },
    { name="Teya Bergamaschi", email="teyabergamaschi@gmail.com" },
  ]
  description = "Scalable Tabularization of MEDS format Time-Series data"
  readme = "README.md"
  requires-python = ">=3.11"
  classifiers = [
      "Programming Language :: Python :: 3",
      "License :: OSI Approved :: MIT License",
      "Operating System :: OS Independent",
  ]
  dependencies = [
    "polars~=1.26.0",
    "pyarrow",
    "hydra-core==1.3.2",
    "numpy",
    "scipy<1.14.0",
    "pandas",
    "tqdm",
    "xgboost",
    "scikit-learn",
    "hydra-optuna-sweeper",
    "hydra-joblib-launcher",
    "ml-mixins",
    "meds~=0.4.0",
    "meds-transforms~=0.5.0",
    "meds-evaluation",
  ]
  
  [tool.setuptools_scm]
  
  [project.scripts]
  meds-tab-describe = "MEDS_tabular_automl.scripts.describe_codes:main"
  meds-tab-tabularize-static = "MEDS_tabular_automl.scripts.tabularize_static:main"
  meds-tab-tabularize-time-series = "MEDS_tabular_automl.scripts.tabularize_time_series:main"
  meds-tab-cache-task = "MEDS_tabular_automl.scripts.cache_task:main"
  meds-tab-xgboost = "MEDS_tabular_automl.scripts.launch_model:main"
  meds-tab-model = "MEDS_tabular_automl.scripts.launch_model:main"
  meds-tab-autogluon = "MEDS_tabular_automl.scripts.launch_autogluon:main"
  generate-subsets = "MEDS_tabular_automl.scripts.generate_subsets:main"
  
  
  [project.optional-dependencies]
  dev = ["pre-commit<4", "ruff"]
  tests = ["pytest", "pytest-cov[toml]"]
  profiling = ["mprofile", "matplotlib"]
  autogluon = ["autogluon; python_version=='3.11.*'"]  # Environment marker to restrict AutoGluon to Python 3.11
  docs = [
      "mkdocs==1.6.0",
      "mkdocs-gen-files==0.5.0",
      "mkdocs-get-deps==0.2.0",
      "mkdocs-git-authors-plugin==0.9.0",
      "mkdocs-git-revision-date-localized-plugin==1.2.7",
      "mkdocs-literate-nav==0.6.1",
      "mkdocs-material==9.5.33",
      "mkdocs-material-extensions==1.3.1",
      "mkdocs-section-index==0.3.9",
      "mkdocs-snippets==1.3.0",
      "mkdocstrings==0.25.2",
      "mkdocstrings-python==1.10.8"
  ]
  
  
  [project.urls]
  Homepage = "https://github.com/mmcdermott/MEDS_Tabular_AutoML"
  Issues = "https://github.com/mmcdermott/MEDS_Tabular_AutoML/issues"
  
  [tool.pytest.ini_options]
  addopts = [
    "--color=yes",
    "--doctest-modules",
    "--ignore=docs",
    "--doctest-glob=*.md",
  ]
  python_classes = "!TestEnv"
  doctest_optionflags = ["NORMALIZE_WHITESPACE", "ELLIPSIS"]
  
  [tool.coverage.report]
  exclude_also = [
    "logger\\.debug", "except ImportError:", "if TYPE_CHECKING:",
    "if __name__ == .__main__.:",
  ]
  
  [tool.ruff]
  target-version = "py312"
  line-length = 110
  extend-exclude = ["docs/index.md"]
  
  # Enable linters
  [tool.ruff.lint]
  select = [
      "E",   # pycodestyle
      "F",   # pyflakes
      "I",   # isort
      "UP",  # pyupgrade
      "B",   # flake8-bugbear
      "C4",  # flake8-comprehensions
      "DTZ", # flake8-datetimez
      "RUF", # Ruff-specific rules
      "SIM", # flake8-simplify
      "TCH", # flake8-type-checking
      "N",   # pep8-naming
  ]
  
  [tool.ruff.lint.per-file-ignores]
  "__init__.py" = ["F401"]  # Unused imports in __init__ files
  
  [tool.ruff.lint.pep8-naming]
  extend-ignore-names = ["X*", "MEDS*"]
  