Files
br-acc/etl/pyproject.toml
2026-03-02 03:51:26 -03:00

76 lines
1.5 KiB
TOML

[project]
name = "bracc-etl"
version = "0.1.0"
description = "BR-ACC ETL — Data ingestion pipelines for Brazilian public data"
requires-python = ">=3.12"
license = "AGPL-3.0-or-later"
dependencies = [
"neo4j>=5.27.0",
"pandas>=2.2.0",
"httpx>=0.28.0",
"click>=8.1.0",
"pydantic>=2.10.0",
"pydantic-settings>=2.7.0",
"pypdf>=5.2.0",
"defusedxml>=0.7.0",
"pandera>=0.21.0",
]
[project.optional-dependencies]
dev = [
"pytest>=8.0",
"pytest-asyncio>=0.24.0",
"mypy>=1.14.0",
"ruff>=0.9.0",
"pandas-stubs>=2.2.0",
"testcontainers[neo4j]>=4.0",
]
resolution = [
"splink>=4.0.0",
]
bigquery = [
"google-cloud-bigquery>=3.25.0",
"google-cloud-bigquery-storage>=2.27.0",
"db-dtypes>=1.3.0",
"pyarrow>=17.0.0",
]
[project.scripts]
bracc-etl = "bracc_etl.runner:cli"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["src/bracc_etl"]
[tool.ruff]
target-version = "py312"
line-length = 100
src = ["src", "tests"]
[tool.ruff.lint]
select = ["E", "F", "I", "N", "W", "UP", "B", "A", "SIM", "TCH"]
[tool.mypy]
python_version = "3.12"
strict = true
mypy_path = "src"
[tool.pytest.ini_options]
testpaths = ["tests"]
addopts = "-m 'not integration'"
markers = [
"integration: requires running Neo4j instance",
]
[dependency-groups]
dev = [
"mypy>=1.19.1",
"pandas-stubs>=3.0.0.260204",
"pytest>=9.0.2",
"pytest-asyncio>=1.3.0",
"ruff>=0.15.2",
]