neo-python

用於 Python 3.10+ 開發的核心專家技能。專注於現代 Python 特性(Structural Pattern Matching, Union Types, Async Task Groups)、程式碼品質與架構設計。

Python 3.10+ Expert Skill

Trigger On

  • The user asks to write, debug, review, or refactor Python code.
  • Working in a repository containing *.py, pyproject.toml, requirements.txt, Pipfile, or poetry.lock.
  • Requires asynchronous programming (asyncio), type hinting, or modern Python feature recommendations.
  • The project needs setup for testing frameworks (pytest) or static analysis tools (ruff, mypy).

Workflow

  1. Perceive:
    • Inspect the project root to identify package management tools: pyproject.toml (Poetry/PDM/Ruff), requirements.txt (pip), or environment.yml (Conda).
    • Probe for Python version requirements (ensure compatibility with 3.10+ minimum).
    • Identify the application type: Web API (FastAPI, Flask, Django), Data Science (Pandas, PyTorch), or CLI tools.
  2. Reason:
    • Evaluate if the current code follows modern Python (3.10+) idioms (e.g., match/case, | union types).
    • Decide if type checking (MyPy/Pyright) or auto-formatting (Ruff/Black) needs to be introduced.
    • Recommend appropriate architectural patterns based on project scale.
  3. Act:
    • Write Python code with complete Type Hints, prioritizing the X | Y syntax.
    • Prefer modern language features: match statements (3.10+), TaskGroup (3.11+), and new generic syntax (3.12+).
    • Ensure code passes static analysis and unit tests.

Coding Standards

  • Type Hinting: Strongly recommended for all function signatures. Use 3.10+ union syntax like list[int | str].
  • PEP 8 Compliance: Follow official style guidelines. Recommended to use ruff as a linter and formatter for consistency.
  • Async Processing: Use 3.11+ asyncio.TaskGroup to manage concurrent tasks.
  • Error Handling: Use specific exception types and leverage 3.11+ ExceptionGroup and except* syntax.

Tooling Recommendations

  • Linter / Formatter: ruff (high performance and highly integrated).
  • Type Checker: mypy or pyright.
  • Testing: pytest with pytest-asyncio or pytest-cov.
  • Package Management: Poetry or uv to ensure dependency locking and environment consistency.

Deliver

  • Code Quality Report: Identify parts that do not comply with 3.10+ modern syntax or PEP 8.
  • Best Practice Recommendations: Provide specific refactoring suggestions, such as converting complex logic into match/case structures.
  • Validated Code: Provide Python source code accompanied by test cases and passed type checks.

Validate

  • Code must run in a Python 3.10+ environment.
  • Functions should have Docstrings (following Google or NumPy styles).
  • Complex logic should include unit tests.
  • All public APIs should have complete type hints.

Documentation

Official References

Internal References