| name | bp-python |
| description | Python ベストプラクティス。Python コードの品質を保つための規約とレビュー観点(Python 3.14+)。 |
Python Best Practices
このスキルが発動したら、docs/best_practices/python.md を Read ツールで読み込み、
記載されたベストプラクティス(DECREE)に従ってコードを書き、レビューすること。
重要原則
- 型ヒント必須: 公開関数・メソッドは完全アノテーション。
Any は境界最小限。uv run pyrefly check . 通過必須(型チェッカは Pyrefly を採用、mypy は使わない)
- 例外は具体的に: 裸の
except: / except Exception: 禁止。raise DomainError("action") from err で原因チェーン保持
- Clean Architecture: Handler → Usecase → Port → Gateway → Driver。層越境・逆向き依存禁止
- Ruff + Pyrefly が一次ソース: フォーマット・静的検査はツールで自動化。型チェッカは Pyrefly(mypy は使わない)。推奨 Ruff ルール集合
E,W,F,B,UP,SIM,N,I,ANN,S,PTH,C4,BLE,ASYNC,TRY,RUF,PL。手動スタイル議論禁止
- Pydantic / frozen dataclass で境界保護: API 入出力は Pydantic v2、内部値オブジェクトは
@dataclass(frozen=True, slots=True)。生 dict を引き回さない
- context manager で資源管理:
with / async with で確実に close。async 並行は asyncio.TaskGroup / async with。裸 open() 禁止
- pytest + TDD: RED → GREEN → REFACTOR。FastAPI のモジュールレベル
APIRouter() はテスト分離を壊す → importlib.reload() で毎テスト再構築
参照
完全なベストプラクティスは docs/best_practices/python.md を参照。
セクション: Project Structure, Type Hints & Static Analysis, Error Handling, Clean Architecture, Pydantic & Dataclass, Async Patterns, Resource Management, Logging, Testing, Tooling, Security