Rechercher

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 Étoiles du dépôt8 Forks du dépôt

Installation

Suivez les instructions du dépôt pour votre agent. Consultez les fichiers et dépendances avant l’installation.

Voir la source ↗Guides

Instructions

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

Exemples

Consultez les exemples du dépôt source.

Voir la source ↗

Historique source

Date d’indexation
2026-03-11
Mise à jour de l’index
2026-03-11
Branch
main

Les dates concernent ce répertoire. Consultez le dépôt pour l’historique du code.

GitHub ↗

chat Comments (0)

chat_bubble_outline

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