mcpField
C
coding-python

coding-python

github.com/alphaonedev开发63 次安装
代码仓库

关于 coding-python

面向开发者的 Python 3.12+ 技能,用于生成、调试和改进代码,涵盖数据处理、异步任务与 Web 服务。内容侧重类型提示、标准库模式及常用 Python 库。

主要功能

  1. 01Python 3.12+ 编码模式
  2. 02使用 asyncio 进行异步编程
  3. 03类型提示与 dataclasses
  4. 04使用 pandas 和 numpy 处理数据
  5. 05FastAPI 与 pydantic 示例
  6. 06使用 venv 或 uv 管理环境

适用场景

  1. 01构建异步 FastAPI 接口
  2. 02使用 pandas 和 numpy 分析数据
  3. 03使用 pydantic 校验输入
  4. 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 优雅地关闭。

使用示例

  1. 构建 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 运行。
  2. 使用 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" 相连,用于分析工作流)。

评论

支持 Markdown