Initial import of Politrack, a self-hosted service that tracks Austrian politicians from federal to municipal level - roles, votes, money flows, statements, meetings, social media and legal proceedings - with every claim linked to its sources. - backend: FastAPI + Postgres/pgvector; adapter framework (fetch -> parse -> load -> enrich) with robots.txt/TDM-aware fetching, a raw-response archive for reparsing, and a claim/evidence model with corroboration - sources: Parliament, Wikidata, EU Parliament/Commission, Council of Ministers, Rechnungshof party reports and donations, procurement, RTR media transparency, political ad libraries, WKStA, news feeds, Wikipedia edits, Bluesky, Mastodon, public Telegram channels, YouTube and X (official API) - web: Next.js frontend in German and English with typed API client - mcp: MCP server for AI agents and RAG - docs: architecture, data model, sources, legal notes, Unraid deployment and contributor guides; Docker Compose setup for Unraid Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
48 lines
1.1 KiB
TOML
48 lines
1.1 KiB
TOML
[project]
|
|
name = "politrack"
|
|
version = "0.2.0"
|
|
description = "Evidence-backed tracking of Austrian politicians and parties"
|
|
requires-python = ">=3.12"
|
|
dependencies = [
|
|
"fastapi>=0.115",
|
|
"uvicorn[standard]>=0.30",
|
|
"psycopg[binary,pool]>=3.2",
|
|
"pydantic>=2.8",
|
|
"pydantic-settings>=2.4",
|
|
"httpx>=0.27",
|
|
"protego>=0.3",
|
|
"feedparser>=6.0",
|
|
"beautifulsoup4>=4.12",
|
|
"openpyxl>=3.1",
|
|
"python-slugify>=8.0",
|
|
"rapidfuzz>=3.9",
|
|
"procrastinate>=2.14,<4",
|
|
"typer>=0.12",
|
|
"pyyaml>=6.0",
|
|
"mcp>=1.9",
|
|
]
|
|
|
|
# Third-party adapters register themselves here, e.g. in another package's pyproject:
|
|
# [project.entry-points."politrack.adapters"]
|
|
# my_source = "my_package.my_module"
|
|
|
|
[project.optional-dependencies]
|
|
dev = ["pytest>=8", "ruff>=0.6"]
|
|
|
|
[project.scripts]
|
|
politrack = "politrack.cli:app"
|
|
|
|
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["politrack"]
|
|
|
|
[tool.ruff]
|
|
line-length = 110
|
|
target-version = "py312"
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["tests"]
|