[build-system]
requires = ["setuptools>=61.0", "setuptools-scm>=8"]
build-backend = "setuptools.build_meta"

[project]
name = "whatsthedamage"
dynamic = ["version"]
description = "A package to process KHBHU CSV files and a web application written in Flask"
keywords = ["csv", "account", "report", "web"]
readme = "README.md"
authors = [
    { name = "Balázs NÉMETH", email = "balagetech@protonmail.com" }
]
maintainers = [
  {name = "Balázs NÉMETH", email = "balagetech@protonmail.com"}
]
classifiers=[
    "Development Status :: 4 - Beta",
    "Programming Language :: Python :: 3",
    'Operating System :: OS Independent',
]
license = {text = "GNU General Public License v3"}
requires-python = ">= 3.9"
dependencies = [
    "pandas>=1.5.0",
    "pydantic>=2.10.0",
    "pyyaml>=6.0",
    "scikit-learn>=1.7.2"
]

[project.optional-dependencies]
dev = [
    "coverage",  # testing
    "mypy",  # linting
    "pytest",  # testing
    "pytest-cov",  # testing
    "ruff",  # linting
    "mccabe", # linting
    "pandas-stubs", # mypy
    "types-PyYAML", # mypy
]
web = [
    "flask>=2.0.0",
    "Flask-WTF>=1.2.2",
    "wtforms>=3.2.1",
    "werkzeug>=3.1.0",
    "python-magic>=0.4.27",
    "lxml>=5.3.0"
]

[project.scripts]
whatsthedamage = "whatsthedamage.controllers.cli:main_cli"

[project.urls]
bugs = "https://github.com/abalage/whatsthedamage/issues"
changelog = "https://github.com/abalage/whatsthedamage/blob/master/changelog.md"
homepage = "https://github.com/abalage/whatsthedamage"

[tool.setuptools]
package-dir = {"" = "src"}

[tool.setuptools_scm]

[tool.setuptools.package-data]
"*" = ["*.*"]

# Mypy
# ----

[tool.mypy]
files = "src"
ignore_missing_imports = true

# Use strict defaults
strict = true
warn_unreachable = true
warn_no_return = true

[tool.pytest.ini_options]
pythonpath = [
    ".", "src"
]
