dignified-python

Opinionated production Python standards with automatic version detection (3.10-3.13). Use when

INSTALLATION
npx skills add https://github.com/dagster-io/skills --skill dignified-python
Run in your project or agent environment. Adjust flags if your CLI version differs.

SKILL.md

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
BrowserAct

Let your agent run on any real-world website

Bypass CAPTCHA & anti-bot for free. Start local, scale to cloud.

Explore BrowserAct Skills →

Stop writing automation&scrapers

Install the CLI. Run your first Skill in 30 seconds. Scale when you're ready.

Start free
free · no credit card