skills/jdubray/puffin/coding-standard-python

coding-standard-python

SKILL.md

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
Weekly Installs
16
Repository
jdubray/puffin
GitHub Stars
17
First Seen
Jan 22, 2026
Installed on
gemini-cli13
claude-code13
antigravity12
codex12
opencode12
windsurf11