- pyproject.toml met wetgit package, pytest/ruff/black/mypy config - BWB XML → Markdown parser (src/wetgit/pipeline/bwb_parser.py) - Getest op ~400 regelingen over alle BWB-types - 20 edge cases gevonden en opgelost: - <boek>, <deel>, <kop> structuren - <regeling-tekst>, <circulaire-tekst> containers - <bijlage>, <enig-artikel>, <sub-paragraaf>, <divisie> - CALS <table> → Markdown tabellen - <nadruk>, <sup>, <sub> inline formatting - <redactie>, <tussenkop>, <gereserveerd>, <vervallen> - Nix flake devshell met alle dependencies - CLI entrypoint (wetgit) - Domain models (Regeling, Artikel) Sluit #4, sluit #5
92 lines
2 KiB
TOML
92 lines
2 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",
|
|
"License :: OSI Approved :: MIT License",
|
|
"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",
|
|
]
|
|
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.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
|