python-pro
Skill18 starsChanged 5 months agoMITView on GitHub
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.
We split this skill into the rules it gives an agent
10 rules. 0 are common, 9 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 21 edited versions we read keep these.
9
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 36
If mypy fails: fix type errors reported and re-run before proceeding
- Distinctive: line 37
If tests fail: debug assertions, update fixtures, and iterate until green
- Distinctive: line 38
If ruff/black reports issues: apply auto-fixes, then re-validate
- Distinctive: line 58
Test coverage exceeding 90% with pytest
- Very specific: line 59
Use X | None instead of Optional[X] (Python 3.10+)
- Distinctive: line 66
Use mutable default arguments
- Distinctive: line 69
Use bare except clauses
- Distinctive: line 71
Use deprecated stdlib modules (use pathlib not os.path)
- Distinctive: line 169
When implementing Python features, provide:
- Distinctive: line 171
Test file with pytest fixtures
“Common” is measured: kept by at least 6 in 10 of the 21 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Python Pro
Modern Python 3.11+ specialist focused on type-safe, async-first, production-ready code.
When to Use This Skill
- Writing type-safe Python with complete type coverage
- Implementing async/await patterns for I/O operations
- Setting up pytest test suites with fixtures and mocking
- Creating Pythonic code with comprehensions, generators, context managers
- Building packages with Poetry and proper project structure
- Performance optimization and profiling
Core Workflow
- Analyze codebase — Review structure, dependencies, type coverage, test suite
- Design interfaces — Define protocols, dataclasses, type aliases
- Implement — Write Pythonic code with full type hints and error handling
- Test — Create comprehensive pytest suite with >90% coverage
- Validate — Run
mypy --strict,black,ruff- If mypy fails: fix type errors reported and re-run before proceeding
- If tests fail: debug assertions, update fixtures, and iterate until green
- If ruff/black reports issues: apply auto-fixes, then re-validate
Reference Guide
Load 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 |
Constraints
MUST DO
- Type hints for all function signatures and class attributes
- PEP 8 compliance with black formatting
- Comprehensive docstrings (Google style)
- Test coverage exceeding 90% with pytest
- Use
X | Noneinstead ofOptional[X](Python 3.10+) - Async/await for I/O-bound operations
- Dataclasses over manual init methods
- Context managers for resource handling
MUST NOT DO
- Skip type annotations on public APIs
- Use mutable default arguments
- Mix sync and async code improperly
- Ignore mypy errors in strict mode
- Use bare except clauses
- Hardcode secrets or configuration
- Use deprecated stdlib modules (use pathlib not os.path)
Code Examples
Type-annotated function with error handling
from 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 configDataclass with validation
from 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}")Async pattern
import 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]pytest fixture and parametrize
import 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)mypy strict configuration (pyproject.toml)
[tool.mypy]
python_version = "3.11"
strict = true
warn_return_any = true
warn_unused_configs = true
disallow_untyped_defs = trueClean 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.
Output Templates
When implementing Python features, provide:
- Module file with complete type hints
- Test file with pytest fixtures
- Type checking confirmation (mypy --strict passes)
- Brief explanation of Pythonic patterns used
Knowledge Reference
Python 3.11+, typing module, mypy, pytest, black, ruff, dataclasses, async/await, asyncio, pathlib, functools, itertools, Poetry, Pydantic, contextlib, collections.abc, Protocol
Other versions24 projects use a version of this.
Word for word · 3
- PIXARTSeu/Synapse★ 9100% same
- HK-hub/AgentSkills★ 6100% same
- IAbuElRuzz/AgentSkills★ 1100% same
Edited · 11
- Jeffallan/claude-skills★ 12k96% same
- kaustubhhiware/agent-skills-fullstack-development★ 1679% same
- nicolasestrem/antigravity-gemini-skills★ 819% same
- thesaifalitai/claude-setup★ 879% same
- zacklecon/claude-skills★ 379% same
- hu465/claude-skills-★ 096% same
- james-paul25/claude-skill★ 099% same
- LucasGS520/Claude-Skills★ 099% same
- martincpt/claude-skills★ 099% same
- peakdong68/my-skills★ 096% same
1 more not listed
Wrote their own version · 10
- jshsakura/awesome-opencode-skills★ 30same name
- belokonm/claude-supercode-skills★ 11same name
- Lee-Dongwook/E2E-Self-Heal★ 9same name
- xfstudio/skills★ 9same name
- marttp/my_agent_skills_I_use★ 4same name
- ai4brands-design/claude-skills★ 2same name
- bcastelino/agent-skills-kit★ 2same name
- cdpzyafk/skills★ 1same name
- storlay/crypto-alert-api★ 0same name
- vinayaksaxena1-maker/antigravity-disaster-recovery★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
Used alongsideProjects with it also use fastapi-pro.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
xfstudioSkillfastapi-pro
Build high-performance async APIs with FastAPI, SQLAlchemy 2.0, and
Also in 3 projects that use this
In this repository83 other files it gives its agents.
- AGENTS.mdAGENTS.md
- .codex/AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- source-command-fix-buildSkill
- fine-tuning-expertSkill
- ml-pipelineSkill
- rag-architectSkill
- spark-engineerSkill
- api-designerSkill
- architecture-designerSkill
- code-documenterSkill
- debugging-wizardSkill
- feature-forgeSkill
- fullstack-guardianSkill
- graphql-architectSkill
- legacy-modernizerSkill
- microservices-architectSkill
- database-optimizerSkill
- postgres-proSkill
- sql-proSkill
- csharp-developerSkill
- dotnet-core-expertSkill
- angular-architectSkill
- flutter-expertSkill
- nextjs-developerSkill
- react-expertSkill
- react-native-expertSkill
- senior-frontendSkill
- ui-ux-pro-maxSkill
- vue-expert-jsSkill
- vue-expertSkill
- cpp-proSkill
- golang-proSkill
- rust-engineerSkill
- cli-developerSkill
- cloud-architectSkill
- devops-engineerSkill
- kubernetes-specialistSkill
- mcp-developerSkill
- monitoring-expertSkill
- sre-engineerSkill
- terraform-engineerSkill
- websocket-engineerSkill
- java-architectSkill
- kotlin-specialistSkill
- javascript-proSkill
- nestjs-expertSkill
- typescript-proSkill
- spring-boot-engineerSkill
- spring-boot-engineer_znSkill
- laravel-specialistSkill
- php-proSkill
- competitive-analysisSkill
- meeting-notesSkill
- prd-templateSkill
- stakeholder-updateSkill
- user-research-synthesisSkill
- django-expertSkill
- fastapi-expertSkill
- pandas-proSkill
- The first 60 shown.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

