structured-data-extractor / pyproject.toml
aditya0103's picture
chore: pre-CI cleanup + Task #8 Docker + CI
6267e20
Raw
History Blame Contribute Delete
1.81 kB
[project]
name = "structured-data-extraction"
version = "0.1.0"
description = "Multi-domain document extraction service: invoices, receipts, and SEC filings to schema-validated JSON."
authors = [{ name = "ASP", email = "adityapatel1801@gmail.com" }]
readme = "README.md"
requires-python = ">=3.11"
license = { text = "MIT" }
[tool.ruff]
line-length = 100
target-version = "py311"
[tool.ruff.lint]
select = ["E", "F", "I", "N", "W", "UP", "B", "SIM"]
ignore = ["E501", "UP017"] # E501: line-length via formatter. UP017: datetime.UTC (3.11-only) β€” we still support timezone.utc for broader interpreter reach in tooling.
[tool.ruff.lint.per-file-ignores]
# HTTP-error taxonomy β€” these are our own class hierarchy, not surprises.
# Renaming to `*Error` would leak "Error" everywhere at call sites without
# adding meaning.
"src/api/errors.py" = ["N818"]
# FastAPI convention: File(...) / Depends() go in function default args.
# The whole framework is built around this pattern.
"src/api/routers/*.py" = ["B008"]
# Parser branches carry different explanatory comments β€” a ternary would
# drop them and hurt readability more than help.
"src/data_prep/parsers.py" = ["SIM108"]
# Test tuple-unpacking sometimes leaves parts unused for clarity.
"tests/**/*.py" = ["B007"]
[tool.black]
line-length = 100
target-version = ["py311"]
[tool.pytest.ini_options]
testpaths = ["tests"]
python_files = "test_*.py"
python_classes = "Test*"
python_functions = "test_*"
addopts = "-v"
# Coverage: run `pytest --cov=src --cov-report=term-missing --cov-report=html` locally.
# Kept out of default addopts because coverage's temp-file cleanup fails on some
# network/mounted filesystems (works fine on native Windows/Linux).
asyncio_mode = "auto"
[tool.coverage.run]
source = ["src"]
omit = ["*/tests/*", "*/__init__.py"]