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
ErrororExceptionsuffix (e.g.,ValidationError) - Abstract classes: PascalCase, optionally prefix with
BaseorAbstract(e.g.,BaseHandler)
Method Naming
- Instance methods: snake_case (e.g.,
get_user(),process_data()) - Class methods: snake_case with
@classmethoddecorator - Static methods: snake_case with
@staticmethoddecorator - Properties: snake_case with
@propertydecorator
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/puffinGitHub Stars
17
First Seen
Jan 22, 2026
Security Audits
Installed on
gemini-cli13
claude-code13
antigravity12
codex12
opencode12
windsurf11