用途:该技能面向现代 Python 开发,覆盖 Python 3.12+、Django、FastAPI、异步模式与生产最佳实践,可用于 Python 项目、API 与数据处理等场景。
主要能力:提供项目结构、依赖与工具配置、类型注解、异步模式、FastAPI 接口模式、测试与最佳实践等参考内容。
项目结构:采用 src 布局,包含 src/my_project(init.py、main.py、utils.py)、tests(init.py、test_main.py)、pyproject.toml、README.md、.gitignore。
依赖与工具:pyproject.toml 中 requires-python 为 >=3.12,依赖示例含 fastapi>=0.100.0、pydantic>=2.0;dev 可选依赖含 pytest>=7.0、ruff>=0.1.0、mypy>=1.0;ruff 配置 line-length=88、select=["E","F","I","N","W"];mypy 配置 strict=true。
类型注解:使用 typing.TypeVar、Generic 与 collections.abc.Sequence,示例函数返回 list[str],泛型类 Repository 的 get 返回 T | None、save 返回 T。
异步模式:使用 asyncio 与 collections.abc.AsyncIterator,示例通过 aiohttp.ClientSession 并发抓取并 asyncio.gather 汇总,异步流式读取使用 aiofiles。
FastAPI 模式:使用 FastAPI、Depends、HTTPException 与 pydantic.BaseModel,定义 UserCreate、UserResponse,通过 @app.post("/users", response_model=UserResponse) 与 async def 创建用户,依赖注入 get_db。
测试:使用 pytest、unittest.mock.AsyncMock 与 patch,定义 mock_db fixture,并用 @pytest.mark.asyncio 编写异步测试,断言调用与返回值。
最佳实践:使用 ruff 做 lint 与格式化;mypy 开启 strict 模式;优先 pathlib.Path 而非 os.path;用 dataclasses 或 Pydantic 表示数据结构;I/O 密集操作使用 asyncio;异步资源使用 contextlib.asynccontextmanager。
限制:资料未提供安装命令、版本兼容细节、性能数据、收费信息或具体平台支持范围,暂未提供。