TTokenySpace
返回 Skills 列表

Python Toolkit Free

提供个人开发者使用的Python编码规范指导,涵盖PEP8、Pythonic模式、基础依赖管理与提交前自查清单。

#中文
0

安装到 Tokeny(自动)

下载 ZIP
安装"python-toolkit-free"技能
技能信息:
- 名称: Python Toolkit Free
- 标识: python-toolkit-free
- 描述: 提供个人开发者使用的Python编码规范指导,涵盖PEP8、Pythonic模式、基础依赖管理与提交前自查清单。
- 版本: 1.0.0
下载地址:
https://www.tokeny.space/api/skills/python-toolkit-free/download
继续

复制上方内容到 Tokeny 客户端并在会话中发送即可自动安装;也可直接 下载 ZIP并拖动到技能窗口安装。

SKILL.md

Python工具箱(免费版)

概述

Python工具箱(免费版)为个人开发者提供实用的Python编码规范与最佳实践指导。当你在请求中提及 Python、编码规范、Pythonic 等内容时,本工具会自动激活,为你输出符合PEP 8与现代Python惯例的代码、给出风格纠正建议,并附上提交前自查清单。

本版本聚焦核心规范与个人使用场景,适合个人脚本开发、学习现代Python惯例与提交前快速自查。如需类型注解深度规范、异步最佳实践、测试策略与团队治理,请升级至 PRO 版本。

核心能力

能力说明
PEP 8规范缩进、行长、空行、导入顺序、命名约定
Pythonic模式推导式、上下文管理器、解包、f-string
依赖管理uv优先,pip回退
提交前自查py_compile / pytest / ruff / black
反模式识别可变默认参数、裸except、%格式化
技术实现要点:核心能力基于input_params参数与output_format配置实现,支持创建/查询/修改/删除等操作模式,通过config_options进行运行时配置。

核心功能执行

input_params参数进行配置。

输入: 用户提供核心功能执行所需的指令和必要参数。 处理: 解析核心功能执行的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回核心功能执行的响应数据,包含状态码、结果和日志。

  • 执行此能力时使用input_params参数,支持创建/查询/导出操作

参数配置与调用

config_options参数进行配置。

输入: 用户提供参数配置与调用所需的指令和必要参数。 处理: 解析参数配置与调用的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回参数配置与调用的响应数据,包含状态码、结果和日志。

  • 执行此能力时使用config_options参数,支持修改/重置/导入操作

结果处理与输出

output_format参数进行配置。

输入: 用户提供结果处理与输出所需的指令和必要参数。 处理: 解析结果处理与输出的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回结果处理与输出的响应数据,包含状态码、结果和日志。

  • 执行此能力时使用output_format参数,支持导出/保存/转换操作 能力覆盖范围:本skill的核心能力覆盖以下场景关键词:个人开发者的、编码规范、模式与基础依赖管、工具箱、免费版、为个人开发者提供、实用的、编码规范与最佳实、践指导、代码风格规范、编码模式与惯用法、基础依赖管理、提交前自查清单等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持。

使用场景

场景一:个人脚本快速开发

用户希望生成一个处理JSON文件的工具脚本,工具输出符合规范的实现。

"""处理JSON数据文件的工具脚本。"""
# ...
import json
from pathlib import Path
# ...
def load_config(config_path: str) -> dict:
    """加载JSON配置文件。
# ...
    Args:
        config_path: 配置文件路径。
# ...
    Returns:
        解析后的配置字典。
# ...
    Raises:
        FileNotFoundError: 文件不存在时。
        json.JSONDecodeError: JSON格式错误时。
    """
    path = Path(config_path)
    if not path.exists():
        raise FileNotFoundError(f"配置文件不存在: {config_path}")
# ...
    with path.open(encoding="utf-8") as f:
        return json.load(f)
# ...
def main() -> None:
    config = load_config("config.json")
    print(f"加载配置成功,共 {len(config)} 项")
# ...
if __name__ == "__main__":
    main()

场景二:提交前自查

用户在提交前运行自查,确保代码符合规范。

# 语法检查
python -m py_compile *.py
# ...
# 测试
python -m pytest tests/ -v 2>/dev/null || python -m unittest discover -v 2>/dev/null || echo "未找到测试"
# ...
# 风格检查(优先ruff,回退black)
ruff check . --fix 2>/dev/null || python -m black --check . 2>/dev/null

场景三:Pythonic惯用法学习

用户询问如何写出更Pythonic的代码,工具给出标准示例。

# 推导式
squares = [x**2 for x in range(10)]
lookup = {item.id: item for item in items}
# ...
# 上下文管理器
with open("file.txt") as f:
    data = f.read()
# ...
# 解包
first, *rest = items
a, b = b, a  # 交换
# ...
# f-string
msg = f"Hello {name}, you have {count} items"
# ...
# 类型注解
def process(items: list[str]) -> dict[str, int]:
    ...
# ...
# dataclass
from dataclasses import dataclass
# ...
@dataclass
class User:
    name: str
    email: str
    active: bool = True
# ...
# pathlib
from pathlib import Path
config = Path.home() / ".config" / "app.json"
# ...
# 枚举与zip
for i, item in enumerate(items):
    ...
for a, b in zip(list1, list2, strict=True):
    ...

不适用场景

以下场景Python工具箱(免费版)不适合处理:

  • 无明确技术栈的模糊需求
  • 纯架构设计决策
  • 运维部署管理

触发条件

需要代码生成、编程辅助、调试测试、开发部署时使用。不适用于非本工具能力范围的需求。

快速开始

1. Python版本选择

  1. 最低:Python 3.10+(3.9已于2025年10月EOL)
  2. 推荐:Python 3.11-3.13 用于新项目
  3. 永不使用Python 2语法或模式
  4. 善用现代特性:match语句、海象运算符、类型注解

依赖详情

优先检查uv,回退pip:

if command -v uv &>/dev/null; then
    uv pip install <package>
    uv pip compile requirements.in -o requirements.txt
else
    pip install <package>
fi

新项目使用uv初始化:

uv init myproject
# 或
uv venv && source .venv/(请参考skill目录中的脚本文件)

3. 提交前自查

python -m py_compile *.py
python -m pytest -v
ruff check . --fix

响应解析: 完成完成后,查看输出响应确认任务状态。成功时输出包含解析摘要和响应数据;失败时根据错误信息排查问题,查阅错误解析章节获取恢复步骤。

示例

基础ruff配置

# pyproject.toml
[tool.ruff]
line-length = 88
target-version = "py311"
# ...
[tool.ruff.lint]
select = [
    "E",   # pycodestyle errors
    "W",   # pycodestyle warnings
    "F",   # pyflakes
    "I",   # isort
    "B",   # flake8-bugbear
    "UP",  # pyupgrade
]
ignore = ["E501"]  # 行长由formatter处理
# ...
[tool.ruff.format]
quote-style = "double"
indent-style = "space"

基础pytest配置

[tool.pytest.ini_options]
minversion = "7.0"
testpaths = ["tests"]
python_files = ["test_*.py"]
python_functions = ["test_*"]
addopts = "-v --tb=short"

最佳实践

1. 代码风格(PEP 8)

  • 缩进:4个空格(永不用Tab)
  • 行长:88字符(Black默认)或79(严格PEP 8)
  • 顶层定义前空2行,类内方法间空1行
  • 导入顺序:标准库 → 第三方 → 本地,组内字母序
  • 命名:函数/变量用snake_case,类用PascalCase,常量用UPPER_CASE

2. 文档字符串

def fetch_user(user_id: int, include_deleted: bool = False) -> User | None:
    """按ID从数据库获取用户。
# ...
    Args:
        user_id: 用户唯一标识。
        include_deleted: 是否包含软删除用户。
# ...
    Returns:
        找到则返回User对象,否则返回None。
# ...
    Raises:
        DatabaseError: 连接失败时。
    """

3. 反模式规避

# 错误:可变默认参数(跨调用共享)
def bad(items=[]):
    ...
# ...
# 正确
def good(items=None):
    items = items or []
# ...
# 错误:裸except(捕获SystemExit、KeyboardInterrupt)
try:
    ...
except:
    ...
# ...
# 正确
try:
    ...
except Exception:
    ...

4. 测试

  • 使用pytest(首选)或unittest
  • 测试文件命名 test_*.py,测试函数 test_*
  • 聚焦单元测试,外部依赖用mock
  • 提交前运行:python -m pytest -v

5. 提交前清单

  • 语法有效(py_compile)
  • 测试通过(pytest)
  • 公开函数有类型注解
  • 无硬编码密钥
  • 用f-string,不用 .format()%
  • 文件路径用 pathlib
  • I/O用上下文管理器
  • 无可变默认参数

常见问题

Q1:免费版支持哪些Python版本?

支持Python 3.10及以上。建议新项目使用3.11-3.13。Python 2语法与模式永不推荐。

Q2:免费版是否支持类型注解?

支持基础类型注解(函数签名、返回类型)。深度类型规范、泛型、Protocol等进阶主题请使用PRO版。

Q3:依赖管理推荐用什么?

优先使用uv(更快、原生支持pyproject.toml)。无uv时回退pip。新项目建议用 uv init 初始化。

Q4:免费版与PRO版差异?

维度免费版PRO版
规范覆盖PEP 8 + Pythonic全规范 + 类型系统 + 异步 + 性能
适用对象个人开发者团队与企业
测试策略基础pytest完整测试金字塔 + 覆盖率门禁
异步支持不支持asyncio完整最佳实践
团队治理不支持规则分级 + CI门禁
支持社区支持优先支持

Q5:ruff和black冲突吗?

不冲突。建议用ruff的format替代black(ruff内置Black兼容格式化),或用 ruff check + black 组合(此时需配置 ruff 不检查格式规则)。

依赖说明

运行环境

  • Agent平台: 支持SKILL.md的任意AI Agent(Claude Code / Cursor / Codex / Gemini CLI等)
  • 操作系统: Windows / macOS / Linux
  • Python版本: 建议 3.11 及以上

第三方依赖

依赖项类型是否必需获取方式
LLM APIAPI必需由Agent内置LLM提供
Python运行时必需python.org 下载
ruff命令行工具推荐pip install ruffuv tool install ruff
pytest测试框架推荐pip install pytest
uv包管理器可选pip install uv 或 astral.sh 安装

API Key 配置

  • 本skill基于Markdown指令规范,无需额外API Key(除内容中明确标注的外部API)。
  • 个人项目依赖通过pip/uv从PyPI获取,无需API Key。

可用性分类

  • 分类: MD+EXEC(纯Markdown指令,部分功能需exec命令行执行)
  • 说明: 基于Markdown的AI Skill,通过自然语言指令驱动Agent完成操作。免费版聚焦个人开发者的PEP 8规范与Pythonic模式指导。

错误处理

错误场景原因处理方式
配置错误参数缺失或格式错误检查依赖说明中的配置要求
运行时错误运行环境不满足确认运行环境符合依赖说明
网络错误连接超时或不可达执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案

已知限制

  • 需LLM支持,无LLM环境不可用
  • 复杂业务场景建议结合人工经验判断
  • 执行效率受模型能力与网络环境影响

输出格式

{
  "success": true,
  "data": {
    "result": "Python工具箱(免费版)处理结果",
    "execution_time": "0.5s",
    "metadata": {
      "version": "1.0",
      "processor": "pythonkit"
    }
  },
  "execution_log": ["解析输入参数", "执行核心处理", "格式化输出结果"],
  "error": null
}

评论

加载中…