coding-standard-python

📁 jdubray/puffin 📅 Jan 22, 2026
11
总安装量
8
周安装量
#28447
全站排名
安装命令
npx skills add https://github.com/jdubray/puffin --skill coding-standard-python

Agent 安装分布

claude-code 6
antigravity 5
gemini-cli 5
trae 4
codex 4
windsurf 4

Skill 文档

Python Coding Standards (PEP 8)

When reviewing or generating Python code, follow these rules:

File Naming

  • Source files: Use snake_case (e.g., user_service.py, api_client.py)
  • Package directories: Use snake_case (e.g., data_processing/, utils/)
  • Test files: Use test_ prefix (e.g., test_user_service.py)
  • Config files: Use snake_case (e.g., config_settings.py)

Variable Naming

  • Variables: snake_case (e.g., user_name, is_active, total_count)
  • Constants: UPPER_SNAKE_CASE (e.g., MAX_RETRIES, API_BASE_URL)
  • Boolean variables: Prefix with is_, has_, can_, should_ (e.g., is_loading, has_error)
  • Protected variables: Single underscore prefix (e.g., _internal_data)
  • Private variables: Double underscore prefix (e.g., __private_data)

Function Naming

  • Functions: snake_case (e.g., calculate_total(), fetch_user_data())
  • Private functions: Prefix with underscore (e.g., _validate_input(), _process_data())
  • Dunder methods: Double underscores (e.g., __init__, __str__, __repr__)

Class Naming

  • Classes: PascalCase (e.g., UserService, DataProcessor, ApiClient)
  • Exception classes: PascalCase with Error or Exception suffix (e.g., ValidationError)
  • Abstract classes: PascalCase, optionally prefix with Base or Abstract (e.g., BaseHandler)

Method Naming

  • Instance methods: snake_case (e.g., get_user(), process_data())
  • Class methods: snake_case with @classmethod decorator
  • Static methods: snake_case with @staticmethod decorator
  • Properties: snake_case with @property decorator

Module Organization

  • Imports at the top: standard library, third-party, local imports (separated by blank lines)
  • Module-level dunder names after imports (__all__, __version__)
  • One class per file for large classes; multiple related classes okay for small ones
  • Use __all__ to define public API