关于 coding-python
面向开发者的 Python 3.12+ 技能,用于生成、调试和改进代码,涵盖数据处理、异步任务与 Web 服务。内容侧重类型提示、标准库模式及常用 Python 库。
主要功能
- 01Python 3.12+ 编码模式
- 02使用 asyncio 进行异步编程
- 03类型提示与 dataclasses
- 04使用 pandas 和 numpy 处理数据
- 05FastAPI 与 pydantic 示例
- 06使用 venv 或 uv 管理环境
适用场景
- 01构建异步 FastAPI 接口
- 02使用 pandas 和 numpy 分析数据
- 03使用 pydantic 校验输入
- 04隔离项目依赖
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill coding-python安装后在 Claude Code 中输入/coding-python确认已加载。
详细介绍
用途
此技能可帮助 AI 使用核心功能和库生成、调试和优化 Python 3.12+ 代码,重点关注数据处理、异步操作和 Web 服务的实用实现。
适用场景
当任务涉及数据分析(例如使用 pandas/numpy)、构建 RESTful API(例如使用 FastAPI)、异步处理(例如 async/await)、数据验证(例如使用 pydantic)或环境管理(例如使用 venv/uv)时,请使用此技能。当代码需要类型提示以便维护,或需要 dataclasses 来定义简单结构体时,也请使用此技能,尤其适用于需要快速迭代的项目。
核心功能
- Python 3.12 功能:使用 async/await 实现非阻塞 I/O;使用
@dataclass装饰器定义 dataclass;通过from typing import List强制使用类型提示(例如def func(x: int) -> str:)。 - 标准库:使用
asyncio管理事件循环(例如asyncio.run(main()));使用venv创建隔离环境(例如python -m venv myenv)。 - uv 工具:作为 venv 的替代方案;使用
pip install uv安装,然后通过uv venv myenv创建环境,并使用source myenv/bin/activate激活。 - 库:使用 FastAPI 构建异步 Web 应用(例如使用
@app.get("/")定义路由);使用 pandas 处理数据帧(例如df = pd.DataFrame(data));使用 numpy 处理数组(例如np.array([1, 2, 3]));使用 pydantic 定义模型(例如from pydantic import BaseModel; class Item(BaseModel): name: str)。
使用模式
为完成任务,请按以下方式组织代码:首先导入所需模块(例如 import asyncio, fastapi);对 I/O 密集型操作使用异步函数(例如 async def fetch_data(): await asyncio.sleep(1));将脚本放入虚拟环境中,以隔离依赖项。对于项目,先使用 python -m venv .venv 初始化,再通过 pip install fastapi pandas numpy pydantic 安装依赖项。生成代码时,请确保包含类型提示(例如 def add(a: float, b: float) -> float: return a + b)。对于异步模式,请显式运行事件循环:asyncio.run(main())。务必通过在 shebang 或 requirements.txt 中指定版本,确保与 Python 3.12+ 兼容。
常用命令/API
- CLI 命令:使用
python -m venv env_name --prompt env_name创建 venv(在 Windows 上使用--copies标志);在 Unix 上使用source env_name/bin/activate激活,在 Windows 上使用env_name\Scripts\activate激活;使用uv run script.py --watch运行脚本并启用自动重载。安装软件包:pip install fastapi[all]或uv add fastapi。 - API 端点/方法:在 FastAPI 中定义端点,例如:
from fastapi import FastAPI; app = FastAPI(); @app.get("/items/{item_id}") async def read_item(item_id: int): return {"item_id": item_id}。对于 pandas,使用df.groupby('column').mean();对于 numpy,使用np.dot(array1, array2);对于 pydantic,使用item = Item(name="example")验证数据。 - 配置格式:FastAPI 配置使用 JSON(例如在 settings.py 中使用
{"debug": true});密钥使用环境变量(例如os.environ.get('API_KEY'));依赖项使用 requirements.txt(例如fastapi>=0.95.0\npandas==2.0.0)。
集成说明
通过设置 Python 项目来集成此技能:首先创建 venv,并使用 pip install -r requirements.txt 安装库。对于外部服务,使用环境变量进行身份验证(例如设置 export API_KEY=your_key,并在代码中通过 os.getenv('API_KEY') 访问)。与其他工具结合使用时,请按需导入(例如,执行异步数据库查询时使用 async with database.connect() as conn:)。确保兼容性:需要 Python 3.12+,因此请在 pyproject.toml 中使用 [tool.poetry.dependencies] python = "^3.12" 指定版本。测试时,使用 pytest 和 pytest --asyncio-mode=auto 处理异步测试。
错误处理
始终使用 try-except 块封装可能失败的代码:try: result = await fetch_data() except asyncio.TimeoutError as e: print(f"Timeout: {e}")。处理特定的库错误,例如 pandas 在列缺失时抛出的 KeyError(例如,try: df['nonexistent'] except KeyError: df['nonexistent'] = 0)。对于 pydantic,捕获 ValidationError(例如,from pydantic import ValidationError; try: item = Item(name=123) except ValidationError as e: log_error(e))。使用 FastAPI 的异常处理器:@app.exception_handler(RequestValidationError) async def validation_exception_handler(request, exc): return JSONResponse(status_code=400, content={"detail": exc.errors()})。使用 import logging; logging.error("Message") 记录错误,并确保异步代码通过 try-finally 优雅地关闭。
使用示例
- 构建 FastAPI 端点:如需创建用于检索数据的简单异步 API,请使用:
from fastapi import FastAPI; import asyncio; app = FastAPI(); async def get_data(): await asyncio.sleep(1); return {"data": "fetched"}; @app.get("/") async def root(): return await get_data()。使用uvicorn main:app --reload --port 8000运行。 - 使用 Pandas 和 Numpy 进行数据分析:如需处理数据集,请导入库并进行计算:
import pandas as pd; import numpy as np; df = pd.DataFrame({'A': [1, 2]}); result = np.mean(df['A']); print(result) # Outputs mean value。在脚本中使用:保存为 analyze.py,然后通过python analyze.py运行。
图关系
- 相关项:coding 集群(例如,与 "coding-general" 共享标签,可用于更广泛的脚本编写;通过 FastAPI 与 "web-dev" 相连,用于构建 API;通过 pandas/numpy 与 "data-science" 相连,用于分析工作流)。