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