Files
simonandClaude Opus 5.5 693c32a5e9 Mark posts that disappear from X instead of erasing them; pin mcp below 2
social.x_deletions checks stored posts through the official API. A post X
reports as not found keeps a marked record (author, link, dates, Internet
Archive link if a copy exists) while every copy of its text is removed, as
the Developer Agreement requires. A post that shows up in the timeline again
is restored by the normal upsert.

mcp 2.x removed FastMCP, which crash-looped the MCP server on first deploy.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 00:43:36 +01:00

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,<2",
]
# 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"]