content: [build-system]
  requires = ["setuptools>=75", "wheel"]
  build-backend = "setuptools.build_meta"
  
  [project]
  name = "biogeme"
  dynamic = ["version"]
  description = "Estimation and application of discrete choice models"
  readme = { file = "README.md", content-type = "text/markdown" }
  authors = [
      { name = "Michel Bierlaire", email = "michel.bierlaire@epfl.ch" }
  ]
  
  classifiers = [
      "Intended Audience :: Education",
      "Intended Audience :: Science/Research",
      "Topic :: Scientific/Engineering",
      "Topic :: Scientific/Engineering :: Mathematics",
      "Natural Language :: English",
      "Operating System :: OS Independent",
      "Programming Language :: C++",
      "Programming Language :: Cython",
      "Programming Language :: Python",
      "Programming Language :: Python :: 3",
      "Programming Language :: Python :: 3 :: Only",
      "Programming Language :: Python :: Implementation :: CPython"
  ]
  
  dependencies = [
      "pandas>=2.3.0, <3",
      "scipy>=1.15.3, <2",
      "tqdm>=4.67.1",
      "tomlkit>=0.13.3",
      "python-levenshtein>=0.25.1",
      "fuzzywuzzy>=0.18.0",
      "biogeme_optimization>=0.0.11, <0.1",
      "matplotlib>=3.10.3, <4",
      "numpy>=2.2.6, <3",
      "ipython>=8.37.0",
      "Jinja2>=3.1.4",
      "PyYAML>=6.0.2",
      "jax >= 0.6.2",
      "tabulate >= 0.9.0",
      "joblib >= 1.5.1",
      "tqdm_joblib >= 0.0.4"
  ]
  
  [project.optional-dependencies]
  testing = [
      "pytest >= 7.2.0",
      "pytest-cov >= 4.0.0",
      "tox >= 3.27.1"
  ]
  
  [project.urls]
  Homepage = "https://biogeme.epfl.ch/sphinx/index.html"
  Documentation = "https://biogeme.epfl.ch/sphinx/index.html"
  Code = "https://github.com/michelbierlaire/biogeme"
  
  
  [tool.setuptools]
  package-dir = { "" = "src" }
  
  [tool.setuptools.dynamic]
  version = {attr = "biogeme.version.__version__"}
  
  [tool.setuptools.packages.find]
  where = ["src"]
  namespaces = false
  
  [tool.setuptools.package-data]
  biogeme = ["data/data/*.dat"]
  
  [tool.setuptools.exclude-package-data]
  biogeme = ["*/__pycache__", "*/__pycache__/*", "*/*.pyc", "__pycache__", "*.pyc"]
  
  [tool.ruff]
  line-length = 88
  extend-exclude = ["build", "dist", ".venv"]
  lint.select = [
    "E",   # pycodestyle errors
    "F",   # pyflakes
    "I",   # isort (import sorting)
    "B",   # flake8-bugbear
    "UP",  # pyupgrade
    "W",   # pycodestyle warnings
  ]
  
  fix = true
  
  [tool.ruff.format]
  # Enable Ruff formatter if you want to replace Black
  quote-style = "single"
  indent-style = "space"
  line-ending = "auto"
  docstring-code-format = true
  