[project] name = "vpn-control-panel" version = "0.1.0" description = "VPN user and subscription management system" requires-python = ">=3.13" license = {text = "MIT"} dependencies = [ "fastapi>=0.115.0", "uvicorn[standard]>=0.30.0", "sqlalchemy>=2.0.0", "greenlet>=3.0.0", "asyncpg>=0.30.0", "alembic>=1.14.0", "pydantic>=2.0.0", "pydantic-settings>=2.0.0", "aiogram>=3.0.0", "apscheduler>=3.10.0", "redis>=5.0.0", "httpx>=0.27.0", "python-jose[cryptography]>=3.3.0", "loguru>=0.7.0", "jinja2>=3.1.0,<3.14", "python-multipart>=0.0.9", ] [project.optional-dependencies] dev = [ "pytest>=8.0.0", "pytest-asyncio>=0.24.0", "ruff>=0.5.0", "httpx>=0.27.0", ] [build-system] requires = ["setuptools>=75.0"] build-backend = "setuptools.build_meta" [tool.ruff] target-version = "py313" line-length = 100 [tool.ruff.format] quote-style = "double" [tool.pytest.ini_options] asyncio_mode = "auto" testpaths = ["tests"]