Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when building Python 3.11+ applications requiring type safety, async programming, or robust error handling. Generates type-annotated Python code, configures mypy in strict mode, writes pytest test suites with fixtures and mocking, and validates code with black and ruff. Invoke for type hints, async/await patterns, dataclasses, dependency injection, logging configuration, and structured error handling.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | 8% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 0% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 48% | 0% |
| case-22 | ✗→✓ | ▲ Improved | 153% | 0% |
| case-06 | ✓→✗ | ▼ Worse | 272% | 0% |
Modern Python 3.11+ specialist focused on type-safe, async-first, production-ready code.
mypy --strict, black, ruffLoad detailed guidance based on context:
| Topic | Reference | Load When | |-------|-----------|-----------| | Type System | references/type-system.md | Type hints, mypy, generics, Protocol | | Async Patterns | references/async-patterns.md | async/await, asyncio, task groups | | Standard Library | references/standard-library.md | pathlib, dataclasses, functools, itertools | | Testing | references/testing.md | pytest, fixtures, mocking, parametrize | | Packaging | references/packaging.md | poetry, pip, pyproject.toml, distribution |
X | None instead of Optional[X] (Python 3.10+)pythonfrom pathlib import Path def read_config(path: Path) -> dict[str, str]: """Read configuration from a file. Args: path: Path to the configuration file. Returns: Parsed key-value configuration entries. Raises: FileNotFoundError: If the config file does not exist. ValueError: If a line cannot be parsed. """ config: dict[str, str] = {} with path.open() as f: for line in f: key, _, value = line.partition("=") if not key.strip(): raise ValueError(f"Invalid config line: {line!r}") config[key.strip()] = value.strip() return config
pythonfrom dataclasses import dataclass, field @dataclass class AppConfig: host: str port: int debug: bool = False allowed_origins: list[str] = field(default_factory=list) def __post_init__(self) -> None: if not (1 <= self.port <= 65535): raise ValueError(f"Invalid port: {self.port}")
pythonimport asyncio import httpx async def fetch_all(urls: list[str]) -> list[bytes]: """Fetch multiple URLs concurrently.""" async with httpx.AsyncClient() as client: tasks = [client.get(url) for url in urls] responses = await asyncio.gather(*tasks) return [r.content for r in responses]
pythonimport pytest from pathlib import Path @pytest.fixture def config_file(tmp_path: Path) -> Path: cfg = tmp_path / "config.txt" cfg.write_text("host=localhost\nport=8080\n") return cfg @pytest.mark.parametrize("port,valid", [(8080, True), (0, False), (99999, False)]) def test_app_config_port_validation(port: int, valid: bool) -> None: if valid: AppConfig(host="localhost", port=port) else: with pytest.raises(ValueError): AppConfig(host="localhost", port=port)
toml[tool.mypy] python_version = "3.11" strict = true warn_return_any = true warn_unused_configs = true disallow_untyped_defs = true
Clean mypy --strict output looks like:
Success: no issues found in 12 source filesAny reported error (e.g., error: Function is missing a return type annotation) must be resolved before the implementation is considered complete.
When implementing Python features, provide:
Python 3.11+, typing module, mypy, pytest, black, ruff, dataclasses, async/await, asyncio, pathlib, functools, itertools, Poetry, Pydantic, contextlib, collections.abc, Protocol
Other measured skills in the registry, with their headline benchmark lift.