[tool.poetry] name = "collector-backend" version = "0.1.0" description = "数据采集后端服务 - Python FastAPI 实现" authors = ["tangweijie <877588133@qq.com>"] readme = "README.md" packages = [{include = "src"}] [tool.poetry.dependencies] python = "^3.11" fastapi = "^0.109.0" uvicorn = {extras = ["standard"], version = "^0.25.0"} pydantic = "^2.5.0" pydantic-settings = "^2.1.0" sqlalchemy = {extras = ["asyncio"], version = "^2.0.25"} asyncpg = "^0.29.0" alembic = "^1.13.0" redis = "^5.0.0" httpx = "^0.26.0" python-jose = {extras = ["cryptography"], version = "^3.3.0"} passlib = {extras = ["bcrypt"], version = "^1.7.4"} python-multipart = "^0.0.6" [tool.poetry.group.dev.dependencies] pytest = "^7.4.0" pytest-asyncio = "^0.23.0" pytest-cov = "^4.1.0" black = "^23.12.0" isort = "^5.13.0" mypy = "^1.8.0" ruff = "^0.1.9" [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" [tool.black] line-length = 100 target-version = ['py311'] include = '\.pyi?$' [tool.isort] profile = "black" line_length = 100 [tool.mypy] python_version = "3.11" warn_return_any = true warn_unused_configs = true ignore_missing_imports = true [tool.ruff] line-length = 100 target-version = "py311" select = ["E", "F", "W", "I", "N", "UP", "B", "C4"] [tool.pytest.ini_options] asyncio_mode = "auto" testpaths = ["tests"]