Python
Python conventions are defined by PEP 8. Follow it.
Casing Rules
| Element | Convention | Example |
|---|---|---|
| Classes | PascalCase | OrderService, UserRepository |
| Functions / methods | snake_case | get_user_by_id, process_payment |
| Variables | snake_case | user_count, is_active |
| Module-level constants | SCREAMING_SNAKE_CASE | MAX_RETRY_COUNT, DEFAULT_TIMEOUT |
| Private members | _snake_case prefix | _connection, _validate_input |
| "Dunder" methods | __snake_case__ | __init__, __repr__ |
| Modules / packages | snake_case | order_service, user_repository |
File Naming
# Modules match their primary class or purpose (snake_case):
order_service.py
user_repository.py
payment_processor.py
# Tests mirror the source file:
test_order_service.py
test_user_repository.py
Package Structure
src/
└── {package_name}/
├── __init__.py
├── models/
├── services/
├── repositories/
└── utils/
tests/
├── unit/
└── integration/