[build-system] requires = ["setuptools>=68.0"] build-backend = "setuptools.build_meta" [tool.setuptools] py-modules = [] [project] name = "backend" version = "0.9.7" requires-python = ">=3.10" dependencies = [ "apscheduler==3.10.3", "beautifulsoup4>=4.9.0", "cachetools==5.5.2", "cloudscraper==1.2.71", "cryptography>=41.0.0", "fastapi==0.115.12", "feedparser==6.0.10", "httpx==0.28.1", "playwright==1.59.0", "playwright-stealth==1.0.6", "pydantic==2.13.3", "pydantic-settings==2.8.1", "pystac-client==0.8.6", "python-dotenv==1.2.2", "requests==2.31.0", "reverse-geocoder==1.5.1", "sgp4==2.25", "meshtastic>=2.5.0", "orjson>=3.10.0", "paho-mqtt>=1.6.0,<2.0.0", "PyNaCl>=1.5.0", "slowapi==0.1.9", "vaderSentiment>=3.3.0", "uvicorn==0.34.0", "yfinance==1.3.0", ] [dependency-groups] dev = ["pytest>=8.3.4", "pytest-asyncio==0.25.0", "ruff>=0.9.0", "black>=24.0.0"] [tool.ruff.lint] # The current backend carries historical style debt in large legacy modules. # Keep CI focused on actionable correctness checks for the v0.9.7 release. ignore = ["E401", "E402", "E701", "E731", "E741", "F401", "F402", "F541", "F811", "F841"] [tool.black] # Avoid a release-time whole-backend formatting rewrite. Re-enable by narrowing # this once the legacy tree is formatted in a dedicated cleanup PR. force-exclude = ".*"