Opinionated production Python standards with automatic version detection (3.10-3.13). Use when
Dignified Python Opinionated Python guidance for writing clean, maintainable, modern Python code (versions 3.10-3.13). When to Use This Skill Auto-invoke when users ask about: "make this pythonic" / "is this good python" "type hints" / "type annotations" / "typing" "LBYL vs EAFP" / "exception handling" "pathlib vs os.path" / "path operations" "CLI patterns" / "click usage" "code review" / "improve this code" Any Python code quality or standards question Note: This skill is general-purpose Python style guidance, not Dagster-specific. It captures one explicit, LBYL-leaning set of conventions; project conventions can override it when needed. When to Use This Skill vs. Others User Need Use This Skill Alternative Skill "make this pythonic" ✅ Yes - Python standards "is this good python" ✅ Yes - code quality "type hints" ✅ Yes - typing guidance "LBYL vs EAFP" ✅ Yes - exception patterns "pathlib vs os.path" ✅ Yes - path handling "best practices for dagster" ❌ No /dagster-best-practices "implement X pipeline" ❌ No /dg for implementation "which integration to use" ❌ No /dagster-expert "CLI argument parsing" ✅ Yes - CLI patterns Core Knowledge (ALWAYS Loaded) @dignified-python-core.md Version Detection Identify the project's minimum Python version by checking (in order): pyproject.toml - Look for requires-python field (e.g., requires-python = ">=3.12") setup.py or setup.cfg - Look for python_requires .python-version file - Contains version like 3.12 or 3.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 Reference Documentation Structure This skill's reference material is organized by topic: Core References dignified-python-core.md - Essential standards (always loaded) cli-patterns.md - Command-line interface patterns (click, argparse) Version-Specific References (versions/) python-3.10.md - Features available in Python 3.10+ python-3.11.md - Features available in Python 3.11+ python-3.12.md - Features available in Python 3.12+ python-3.13.md - Features available in Python 3.13+ Advanced Topics (references/advanced/) exception-handling.md - LBYL patterns, error boundaries interfaces.md - ABC and Protocol patterns typing-advanced.md - Advanced typing patterns api-design.md - API design principles When to Read Each Reference Document references/advanced/exception-handling.md Read when: Writing try/except blocks Wrapping third-party APIs that may raise Seeing or writing from e or from None Unsure if LBYL alternative exists references/advanced/interfaces.md Read when: Creating ABC or Protocol classes Writing @abstractmethod decorators Designing gateway layer interfaces Choosing between ABC and Protocol references/advanced/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/advanced/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 (defaults, pathlib, 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
don't have the plugin yet? install it then click "run inline in claude" again.