[project]
name = "colibre"
description = "Interface d'exploration et d'analyse des marchés publics français."
version = "3.0.0"
requires-python = ">= 3.10"
authors = [{ name = "Colin Maudry", email = "colin@colmo.tech" }]
dependencies = [
  "dash==3.4.0",
  "dash[compress]",
  "polars",
  "gunicorn",
  "dash-bootstrap-components",
  "python-dotenv",
  "xlsxwriter",
  "plotly[express]",
  "httpx",
  "pandas",                    # utilisé pour la création de certains graphiques
  "unidecode",
  "dash-leaflet",
  "dash-extensions",
  "duckdb",
  "flask-caching",
  "pyarrow>=23.0.1",
  "flask-login",
  "brevo-python==5.0.0rc1",
  "flask-wtf",
  "email-validator",
  "authlib",
  "orjson",
  "flask-cors>=6.0.2",
  "flask-smorest>=0.46.0",
  "marshmallow>=3.20.0",
  "boto3",
  "cryptography",
]

[dependency-groups]
dev = [
  "pytest",
  "pytest-env",
  "pre-commit",
  "selenium",
  "webdriver-manager",
  "dash[testing]",
  "fastexcel",
  "openpyxl",
  "moto[s3]",
]

[tool.pytest.ini_options]
pythonpath = ["src"]
testpaths = ["tests"]
env = [
  "DATA_FILE_PARQUET_PATH=tests/test.parquet",
  "DEVELOPMENT=true",
  "REBUILD_DUCKDB=true",
  "DATA_SCHEMA_PATH=/home/colin/git/decp-processing/dist/schema.json",
  "USERS_DB_PATH=tests/users.test.sqlite",
  "SECRET_KEY=test-secret-do-not-use-in-prod",
  "MAIL_FROM=test@colibre.fr",
  "MAIL_SUPPRESS_SEND=true",
  "APP_BASE_URL=http://localhost:8050",
  "SMTP_HOST=localhost",
  "SMTP_PORT=25",
  "WTF_CSRF_ENABLED=False",
  "MATOMO_TRACKING_ENABLED=false",
  "DATA_SCHEMA_LOCAL=/home/colin/git/decp-processing/dist/schema.json",
]
addopts = "-p no:warnings"
markers = [
  "integration: tests touchant des services externes (Brevo) ; skippés par défaut en CI",
]
