dignified-python
Python coding standards with automatic version detection. Use when writing, reviewing, or refactoring Python to ensure adherence to LBYL exception handling patterns, modern type syntax (list[str], str | None), pathlib operations, ABC-based interfaces, absolute imports, and explicit error boundaries at CLI level. Also provides production-tested code smell patterns from Dagster Labs for API design, parameter complexity, and code organization. Essential for maintaining erk's dignified Python standards.
Installation
Suivez les instructions du dépôt pour votre agent. Consultez les fichiers et dépendances avant l’installation.
Voir la source ↗GuidesInstructions
Dignified Python Coding Standards
Core Knowledge (ALWAYS Loaded)
@dignified-python-core.md
Version Detection
Identify the project's minimum Python version by checking (in order):
-
pyproject.toml- Look forrequires-pythonfield (e.g.,requires-python = ">=3.12") -
setup.pyorsetup.cfg- Look forpython_requires -
.python-versionfile - Contains version like3.12or3.12.0 - Default to Python 3.12 if no version specifier found
Once identified, load the appropriate version-specific file:
- Python 3.10: Load
versions/python-3.10.md - Python 3.11: Load
versions/python-3.11.md - Python 3.12: Load
versions/python-3.12.md - Python 3.13: Load
versions/python-3.13.md
Conditional Loading (Load Based on Task Patterns)
Core files above cover 80%+ of Python code patterns. Only load these additional files when you detect specific patterns:
Pattern detection examples:
- If task mentions "click" or "CLI" -> Load
cli-patterns.md - If task mentions "subprocess" -> Load
subprocess.md
When to Read Each Reference Document
The references/ directory contains detailed guidance for specialized topics. Load these on-demand when you encounter relevant patterns:
references/exception-handling.md
Read when:
- Writing try/except blocks
- Wrapping third-party APIs that may raise
- Seeing or writing
from eorfrom None - Unsure if LBYL alternative exists
references/interfaces.md
Read when:
- Creating ABC or Protocol classes
- Writing @abstractmethod decorators
- Designing gateway layer interfaces
- Choosing between ABC and Protocol
references/typing-advanced.md
Read when:
- Using typing.cast()
- Creating Literal type aliases
- Narrowing types in conditional blocks
references/module-design.md
Read when:
- Creating new Python modules
- Adding module-level code (beyond simple constants)
- Using @cache decorator at module level
- Seeing Path() or computation at module level
- Considering inline imports
references/api-design.md
Read when:
- Adding default parameter values to functions
- Defining functions with 5 or more parameters
- Using ThreadPoolExecutor.submit()
- Reviewing function signatures
references/checklists.md
Read when:
- Final review before committing Python code
- Unsure if you've followed all rules
- Need a quick lookup of requirements
How to Use This Skill
- Core knowledge is loaded automatically (LBYL, pathlib, basic imports, anti-patterns)
- Version detection happens once - identify the minimum Python version and load the appropriate version file
- Reference documents are loaded on-demand based on the triggers above
- Additional patterns may require extra loading (CLI patterns, subprocess)
- Each file is self-contained with complete guidance for its domain
Exemples
Consultez les exemples du dépôt source.
Voir la source ↗Historique source
- Date d’indexation
- 2026-01-20
- Mise à jour de l’index
- 2026-02-02
- Branch
- main
Les dates concernent ce répertoire. Consultez le dépôt pour l’historique du code.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!