[project] name = "cassandra" version = "0.1.0" description = "Containerised macro-strategy dashboard — market data, news, portfolios, AI daily log." requires-python = ">=3.13" dependencies = [ "fastapi>=0.115", "uvicorn[standard]>=0.32", "jinja2>=3.1", "python-multipart>=0.0.12", "sqlalchemy[asyncio]>=2.0.36", "aiomysql>=0.2.0", "alembic>=1.14", "pydantic>=2.9", "pydantic-settings>=2.6", "httpx>=0.28", "apscheduler>=3.10", "tenacity>=9.0", "structlog>=24.4", "argon2-cffi>=23.1", "itsdangerous>=2.2", "email-validator>=2.2", "aiosmtplib>=3.0", "redis[hiredis]>=5.2", ] [project.optional-dependencies] dev = [ "pytest>=8.3", "pytest-asyncio>=0.24", "pytest-httpx>=0.34", "ruff>=0.7", ] [tool.pytest.ini_options] asyncio_mode = "auto" testpaths = ["tests"] [tool.ruff] line-length = 100 target-version = "py313" [build-system] requires = ["setuptools>=68"] build-backend = "setuptools.build_meta" [tool.setuptools] packages = ["app", "app.services", "app.jobs", "app.routers"]