python-patterns
Pythonic idioms, PEP 8 standards, type hints, and best practices for building robust, efficient, and maintainable Python applications. Use when writing or reviewing Python code and idiomatic structure, typing, or PEP 8 is in question.
By affaan-m · 3,514 installs
npx skills add affaan-m/ecc --skill python-patterns
Source repository · Upstream listing
Python Development Patterns
Idiomatic Python patterns and best practices for building robust, efficient, and maintainable applications.
When to Activate
Writing new Python code
Reviewing Python code
Refactoring existing Python code
Designing Python packages/modules
Core Principles
1. Readability Counts
Python prioritizes readability. Code should be obvious and easy to understand.
2. Explicit is Better Than Implicit
Avoid magic; be clear about what your code does.
3. EAFP Easier to Ask Forgiveness Than Permission
Python prefers exception handling over checking conditions.
Type Hints
Basic Type Annotations
Modern Type Hints (Python 3.9+)
Type Aliases and TypeVar
Protocol Based Duck Typing
Error Handling Patterns
Specific Exception Handling
Exception Chaining
Custom Exception Hierarchy
Context Managers
Resource Management
Custom Context Managers
Context Manager Classes
Comprehensions and Generators
List Comprehensions
Generator Expressions
Generator Functions
Data Classes and Named Tuples
Data Classes
Data Classes with Validation
Named Tuples
Decorators
Function Decorators
Parameterized Decorators
Class Based Decorators
Concurrency Patterns
Threading for I/O Bound Tasks
Multiprocessing for CPU Bound Tasks
Async/Await for Concurrent I/O
Package Organization
Standard Project Layout
Import Conventions
init .py for Package Exports
Memory and Performance
Using slots for Memory Efficiency
Generator for Large Data
Avoid String Concatenation in Loops
Python Tooling Integration
Essential Commands
pyproject.toml Configuration
Quick Reference: Python Idioms
Idiom Description
EAFP Easier to Ask Forgiveness than Permission
Context managers Use with for resource management
List comprehensions For simple transformations
Generators For lazy evaluation and large datasets
Type hints Annotate function signatures
Dataclasses For data containers with auto generated methods
slots For memory optimization
f strings For string formatting (Python 3.6+)
pathlib.Path For path operations (Python 3.4+)
enumerate For index element pairs in loops
Anti Patterns to Avoid
Remember : Python code should be readable, explicit, and follow the principle of least surprise. When in doubt, prioritize clarity over cleverness.