搜索

PythonReactSEOPDF
GitHub Skill

python-patterns

Python development patterns including package manager detection (uv, poetry, pip), project structure, and idiomatic Python practices. Use when writing, reviewing, or debugging Python code.

cooldaemon☆ 13 仓库 Stars8 仓库 Forks

安装与使用

请根据来源仓库和你的 AI 工具说明安装此技能。先阅读技能文件和依赖要求,再添加到工作流。

查看来源 ↗使用指南

技能说明

Python Development Patterns

Package Manager Detection (CRITICAL)

Before running ANY Python commands, detect the package manager:

File Package Manager Prefix
uv.lock uv uv run
poetry.lock poetry poetry run
Pipfile.lock pipenv pipenv run
None pip python -m

NEVER use pip install directly when lock file exists.

Project Structure

project/
├── mypackage/          # NOT src/mypackage/
│   ├── __init__.py
│   ├── __main__.py     # Entry point for python -m mypackage
│   ├── cli.py          # CLI argument parsing
│   ├── core.py         # Business logic
│   └── utils.py        # Helpers
├── tests/
├── pyproject.toml
├── uv.lock
└── Makefile

Flat layout (mypackage/) is preferred over src layout (src/mypackage/).

CLI Structure (CRITICAL)

Three-layer separation:

# mypackage/__main__.py - Minimal bootstrap
if __name__ == "__main__":
    from mypackage.cli import main
    main()

# mypackage/cli.py - CLI argument parsing only
import argparse
from mypackage.core import process_data

def main():
    parser = argparse.ArgumentParser()
    parser.add_argument("input")
    args = parser.parse_args()
    result = process_data(args.input)
    print(result)

# mypackage/core.py - Business logic (testable without CLI)
def process_data(input_path: str) -> str:
    ...

Why:

  • python -m mypackage works via __main__.py
  • Core logic is testable without invoking CLI
  • Easier to reuse as library

使用示例

查看来源仓库中的使用示例与配置说明。

查看来源 ↗

来源历史

收录时间
2026-03-11
索引更新时间
2026-03-11
Branch
main

收录与同步日期属于本站记录。源码修改历史请查看来源仓库。

GitHub ↗

chat Comments (0)

chat_bubble_outline

No comments yet. Be the first to share your thoughts!