[project] name = "the-scheduler" version = "1.4.0" description = "System-wide maintenance orchestration - backups, doc mirroring, cleanup, task automation" readme = "README.md" requires-python = ">=3.12" dependencies = [ # FastAPI ecosystem "fastapi~=0.124.0", "uvicorn[standard]~=0.38.0", "pydantic~=2.12.5", "pydantic-settings~=2.7.0", # Task scheduling "apscheduler~=3.11.1", "sqlalchemy~=2.0.36", # Database "psycopg2-binary~=2.9.11", "redis~=5.2.0", # HTTP client "httpx~=0.28.1", # Web scraping (for doc mirroring) "scrapy~=2.12.0", "beautifulsoup4~=4.12.3", "lxml~=5.1.0", # Git operations "gitpython~=3.1.43", # Security/Auth "python-jose[cryptography]~=3.3.0", # Cloud storage "google-cloud-storage~=2.18.0", ] [project.optional-dependencies] test = [ "pytest~=8.3.4", "pytest-asyncio~=0.25.2", "pytest-cov~=6.0.0", "freezegun~=1.5.1", ] [build-system] requires = ["setuptools>=61.0"] build-backend = "setuptools.build_meta" [tool.setuptools.packages.find] where = ["."] include = ["src*"]