<< All versions

Skill v1.0.0

currentAutomated scan100/100
taoidle/plan-cascade/python
──Details
PublishedNovember 4, 2026 at 09:24 PM
Content Hashsha256:cc5f96690817e9e2...
Git SHA5223f821b6ec
──Files
Files (1 file, 1.8 KB)
SKILL.md1.8 KBactive
SKILL.md · 92 lines · 1.8 KB

name: python-best-practices description: Python coding best practices. Use when writing or reviewing Python code. Covers type hints, error handling, and common patterns. license: MIT metadata: author: plan-cascade version: "1.0.0"


Python Best Practices

Code Style

RuleGuideline
Formatterruff format or black
Linterruff check with strict rules
Type hintsAlways for public APIs
DocstringsGoogle or NumPy style

Type Hints

python
def process(items: list[str], max_count: int = 10) -> dict[str, int]: ...
def find_user(user_id: int) -> User | None: ...

Error Handling

RuleGuideline
Specific exceptionsNever bare except:
Context managersUse with for resources
Early returnValidate inputs, fail fast
python
# Good
try:
result = process(data)
except ValidationError as e:
logger.warning(f"Validation failed: {e}")
return default

Project Structure

src/package_name/
├── __init__.py
├── core/
└── py.typed
tests/
├── conftest.py
└── test_*.py
pyproject.toml

Common Patterns

PatternUsage
@dataclassData containers
@propertyComputed attributes
GeneratorsMemory-efficient iteration
functools.cacheMemoization

Anti-Patterns

AvoidUse Instead
Mutable default argsNone default, create inside
import *Explicit imports
Global stateDependency injection
python
# Bad: def add(item, items=[]): ...
# Good:
def add(item, items=None):
items = items or []
items.append(item)
return items

Tools

ToolPurpose
pytestTesting
ruffLinting + formatting
mypyType checking
uvDependencies
All versions