Python Patterns

v2026.09.24

This skill should be used when the user asks about "Python best practices", "Pythonic code", "Python patterns", "Python idioms", "type hints", "dataclasses", "async Python", "Python decorators", "context managers"

GitHub
Install command
npx skhub add eyadsibai/python-patterns
Markdown
SKILL.md

Python Patterns

Guidance for writing idiomatic, modern Python code.

Modern Python Features (3.9+)

FeaturePurposeKey Concept
Type hintsStatic analysisdef func(x: str) -> int:
DataclassesStructured dataAuto __init__, __repr__, etc.
Context managersResource cleanupwith statement guarantees cleanup
DecoratorsCross-cutting concernsWrap functions to add behavior
Async/awaitConcurrent I/ONon-blocking operations

Type Hints

Modern syntax (3.10+): Use | for unions, built-in types for generics.

OldModern
Optional[str]str | None
Union[str, int]str | int
List[str]list[str]
Dict[str, int]dict[str, int]

Key concept: Type hints are for tooling (mypy, IDEs) - no runtime enforcement.


Dataclasses vs Alternatives

UseFor
@dataclassMutable data with methods
@dataclass(frozen=True)Immutable, hashable
NamedTupleLightweight, tuple semantics
TypedDictDict with known keys
PydanticValidation, serialization

Context Managers

Use for any resource that needs cleanup: files, connections, locks, transactions.

Pattern: Acquire in __enter__, release in __exit__ (or use @contextmanager with yield)


Decorators

PatternUse Case
Simple decoratorLogging, timing
Decorator with argsConfigurable behavior
Class decoratorModify class definition
@functools.wrapsPreserve function metadata

Async Python

When to use: I/O-bound operations (HTTP requests, DB queries, file I/O)

When NOT to use: CPU-bound operations (use multiprocessing instead)

ConceptPurpose
async defDefine coroutine
awaitSuspend until complete
asyncio.gather()Run multiple concurrently
async withAsync context manager
async forAsync iteration

Pythonic Idioms

Instead ofUse
if len(x) > 0:if x:
for i in range(len(x)):for item in x: or enumerate()
d.has_key(k)k in d
try/if exists (LBYL)try/except (EAFP)
Manual swapa, b = b, a

Project Structure

my_project/
├── src/my_package/     # Source code
├── tests/              # Test files
├── pyproject.toml      # Project config
└── README.md

Key concept: Use src/ layout to prevent import confusion.


Tooling

ToolPurpose
ruffFast linter + formatter
mypyType checking
pytestTesting
uv/pipDependencies

Resources

Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

Not specified

Source path

plugins/ltk-engineering/skills/python/python-patterns

Default branch

master

Latest commit

f8e8569

Tree SHA

8bcd589