content: 
  [build-system]
  requires = ["setuptools>=45", "wheel"]
  build-backend = "setuptools.build_meta"
  
  [project]
  name = "pelicun"
  version = "3.9.0.dev0"
  description = "Probabilistic Estimation of Losses, Injuries, and Community resilience Under Natural hazard events"
  readme = "README.md"
  license = {text = "BSD-3-Clause"}
  authors = [
      {name = "Adam Zsarnóczay", email = "adamzs@stanford.edu"}
  ]
  classifiers = [
      "Programming Language :: Python",
      "Development Status :: 5 - Production/Stable",
      "Natural Language :: English",
      "Environment :: Console",
      "Framework :: Jupyter",
      "Intended Audience :: Education",
      "Intended Audience :: Science/Research",
      "Natural Language :: English",
      "Operating System :: Microsoft :: Windows",
      "Operating System :: MacOS :: MacOS X",
      "Operating System :: Unix",
      "Programming Language :: Python :: 3.9",
      "Programming Language :: Python :: 3.10",
      "Programming Language :: Python :: 3.11",
      "Programming Language :: Python :: 3.12",
      "Topic :: Scientific/Engineering",
  ]
  dependencies = [
      "numpy>=1.22.0, <2.0",
      "scipy>=1.7.0, <=1.15.3",
      "pandas>=1.4.0, <3.0",
      "colorama>=0.4.0, <0.5.0",
      "numexpr>=2.8, <3.0",
      "jsonschema>=4.22.0, <5.0",
      "tqdm",
      "requests",
      "joblib",
      "scikit-learn",
      "packaging"
  ]
  
  [project.optional-dependencies]
  development = [
      "codespell",
      "flake8",
      "flake8-bugbear",
      "flake8-rst",
      "flake8-rst",
      "flake8-rst-docstrings",
      "glob2",
      "jsonpath2",
      "jupyter",
      "jupytext",
      "mypy",
      "nbsphinx",
      "numpydoc",
      "pandas-stubs",
      "pydocstyle",
      "pylint",
      "pylint-pytest",
      "pytest",
      "pytest-cov",
      "pytest-httpserver",
      "pytest-socket",
      "pytest-xdist",
      "rendre>0.0.14",
      "ruff==0.7.0",
      "sphinx",
      "sphinx-autoapi",
      "sphinx-rtd-theme",
      "sphinx_design",
      "sphinxcontrib-bibtex",
      "types-colorama",
  ]
  
  [project.scripts]
  pelicun = "pelicun.cli:main"
  
  [project.urls]
  Homepage = "http://nheri-simcenter.github.io/pelicun/"
  
  [tool.setuptools]
  include-package-data = true
  
  [tool.setuptools.packages.find]
  include = ["pelicun*"]
  exclude = ["doc_src*"]
  
  [tool.ruff]
  line-length = 85
  exclude = [
    "rulesets",
    "examples",
    "*.ipynb",
    "pelicun/tests/dl_calculation/e7/auto_HU_NJ.py",
    "pelicun/tests/dl_calculation/e8/auto_HU_LA.py",
    "pelicun/tests/dl_calculation/e9/custom_pop.py",
    "pelicun/resources/DamageAndLossModelLibrary/"
  ]
  
  [tool.ruff.lint]
  # Enable all known categories
  select = ["ALL"]
  ignore = [
    "ANN101",
    "D211",
    "D212",
    "Q000",
    "Q003",
    "COM812",
    "D203",
    "ISC001",
    "E501",
    "ERA001",
    "PGH003",
    "FIX002",
    "TD003",
    "S101",
    "N801",
    "S311",
    "G004",
    "SIM102",
    "SIM108",
    "NPY002",
    "F401",
    "TRY003"
  ]
  preview = true
  
  [tool.ruff.lint.pydocstyle]
  convention = "numpy"
  
  [tool.ruff.lint.pylint]
  max-args=15
  max-locals=50
  max-returns=11
  max-branches=50
  max-statements=150
  max-bool-expr=5
  
  [tool.ruff.lint.per-file-ignores]
  "pelicun/tests/*" = ["D", "N802", "SLF001", "PLR2004", "PLR6301"]
  "pelicun/resources/auto/*" = ['PLR', 'T', 'N', 'ANN', 'D', 'PTH', 'INP', 'DOC', 'RET', 'TD']
  "pelicun/tools/HDF_to_CSV.py" = ["ALL"]
  "pelicun/tests/validation/inactive/*" = ["T201", "B018", "ANN", "PD"]
  "pelicun/tests/dl_calculation/rulesets/*" = ["N999"]
  "pelicun/tests/dl_calculation/e9/CustomDLModels/*" = ["ALL"]
  "doc/source/examples/notebooks/*" = ["INP001", "CPY001", "D400", "B018", "F821", "T201", "T203", "F404", "E402"]
  
  [tool.ruff.format]
  quote-style = "single"
  
  [tool.codespell]
  ignore-words = ["ignore_words.txt"]
  skip = [
    "*.html",
    "*.ipynb",
    "./htmlcov/*",
    "./doc_src/build/*",
    "./pelicun.egg-info/*",
    "./doc_src/*",
    "./doc/build/*",
    "./doc/_build/*",
    "*/rulesets/*",
    "custom_pop.py",
    "*/SimCenterDBDL/*",
    "auto_HU_NJ.py",
    "auto_HU_LA.py",
    "custom_pop.py",
    "*/resources/DamageAndLossModelLibrary/*"]
  
  [tool.pytest.ini_options]
  socket_disabled_by_default = true
  
  [tool.mypy]
  ignore_missing_imports = true
  exclude = ".*/resources/DamageAndLossModelLibrary/.*"
  namespace_packages = false
  