meta/pyproject.toml
Coornhert 34fd5a2bf3 feat: Fase 2/3 features — hybrid search, feed, domeinen, referenties
- Hybrid search met Reciprocal Rank Fusion (Meilisearch + Qdrant)
- Atom feed endpoint (/api/v1/feed.xml) op basis van git log
- Compliance-domeinen classificatie (NIS2, DORA, AVG, etc.)
  en endpoints /api/v1/domeinen + /api/v1/regelingen/{id}/domeinen
- Cross-referentie extractie tussen regelingen, endpoint
  /api/v1/regelingen/{id}/referenties
- Change-alerts uitgebreid met webhook-notificaties en
  optionele domein-filter
- Rate limiting via slowapi (60/min default, 30/min zoeken)
- datum_verval veld in RegelingMeta + indexer
- Celery app module (wetgit.tasks) voor sync/reindex/alerts
- REPO_PATH respecteert WETGIT_GIT_REPOS_DIR (voor Ansible deploy)
2026-04-21 20:58:27 +02:00

97 lines
2.1 KiB
TOML

[project]
name = "wetgit"
version = "0.1.0"
description = "Nederlandse wetgeving als code — elke wet een Markdown-bestand, elke wijziging een Git-commit"
readme = "README.md"
license = "MIT"
requires-python = ">=3.12"
authors = [
{ name = "Coornhert", email = "coornhert@wetgit.nl" },
]
keywords = ["wetgeving", "dutch-law", "bwb", "git", "markdown"]
classifiers = [
"Development Status :: 2 - Pre-Alpha",
"Intended Audience :: Developers",
"Intended Audience :: Legal Industry",
"Programming Language :: Python :: 3.13",
"Topic :: Text Processing :: Markup",
]
dependencies = [
"lxml>=5.0",
"pygit2>=1.13",
"pyyaml>=6.0",
"python-frontmatter>=1.1",
"httpx>=0.27",
"click>=8.1",
"rich>=13.0",
"pydantic>=2.0",
]
[project.optional-dependencies]
api = [
"fastapi>=0.115",
"uvicorn>=0.30",
"celery>=5.4",
"redis>=5.0",
"markdown>=3.5",
"jinja2>=3.1",
"slowapi>=0.1.9",
]
dev = [
"pytest>=8.0",
"pytest-cov>=5.0",
"pytest-asyncio>=0.24",
"black>=24.0",
"ruff>=0.6",
"mypy>=1.11",
"types-pyyaml",
"types-requests",
]
[project.scripts]
wetgit = "wetgit.cli.main:cli"
[project.urls]
Homepage = "https://wetgit.nl"
Repository = "https://git.wetgit.nl/wetgit/meta"
Issues = "https://git.wetgit.nl/wetgit/meta/issues"
[build-system]
requires = ["setuptools>=75.0"]
build-backend = "setuptools.build_meta"
[tool.setuptools.packages.find]
where = ["src"]
[tool.setuptools.package-data]
"wetgit.web" = ["static/**/*", "templates/**/*"]
[tool.pytest.ini_options]
testpaths = ["tests"]
markers = [
"unit: Unit tests (fast, no I/O)",
"integration: Integration tests (may need network/disk)",
"slow: Slow tests (large XML parsing, bulk operations)",
]
asyncio_mode = "auto"
[tool.black]
line-length = 99
target-version = ["py313"]
[tool.ruff]
line-length = 99
target-version = "py313"
[tool.ruff.lint]
select = ["E", "F", "I", "N", "W", "UP", "B", "A", "SIM", "TCH"]
ignore = ["E501"]
[tool.ruff.lint.isort]
known-first-party = ["wetgit"]
[tool.mypy]
python_version = "3.13"
warn_return_any = true
warn_unused_configs = true
disallow_untyped_defs = true