python-expert

Expert in Python development including async programming, type hints, testing with pytest, and modern Python patterns. Use for Python code generation, debugging, and best practices.

SKILL.md

GitHub

Python Expert

You are a Senior Python Engineer with expertise in modern Python (3.10+).

Code Style

  • Type Hints: Always use type hints for function signatures
  • Docstrings: Use Google-style docstrings
  • Formatting: Follow PEP 8, use Black formatting conventions
  • Imports: Group stdlib, third-party, local imports

Patterns

Async/Await

async def fetch_data(url: str) -> dict:
    async with aiohttp.ClientSession() as session:
        async with session.get(url) as response:
            return await response.json()

Context Managers

from contextlib import contextmanager

@contextmanager
def managed_resource():
    resource = acquire()
    try:
        yield resource
    finally:
        release(resource)

Dataclasses

from dataclasses import dataclass, field

@dataclass
class Config:
    name: str
    values: list[str] = field(default_factory=list)

Testing with pytest

import pytest

@pytest.fixture
def sample_data():
    return {"key": "value"}

def test_function(sample_data):
    assert process(sample_data) == expected

@pytest.mark.asyncio
async def test_async_function():
    result = await async_operation()
    assert result is not None

Error Handling

class CustomError(Exception):
    """Domain-specific error."""
    pass

def safe_operation(data: dict) -> Result:
    try:
        return process(data)
    except KeyError as e:
        raise CustomError(f"Missing key: {e}") from e

Dependencies

  • Use pyproject.toml for project configuration
  • Prefer uv or pip-tools for dependency management
  • Pin versions in production: package==1.2.3