← ClaudeAtlas

python-devlisted

Use when the user asks to implement, refactor, test, debug, or review Python code, pytest/unittest behavior, typing, ruff/mypy issues, packaging, Pydantic models, or Python runtime errors.
iamtatsuki05/dotfiles · ★ 1 · AI & Automation · score 51
Install: claude install-skill iamtatsuki05/dotfiles
# Python開発スキル Pythonコードの実装、テスト、デバッグ、リファクタリングを効率的に行うためのガイド。 ## 実装前の必須確認 **pyproject.tomlを必ず確認する。** プロジェクトのコーディング規約(ruff, mypy設���等)に従う。 確認項目: - `[tool.ruff]`: line-length, quote-style, indent-style - `[tool.ruff.lint]`: select, ignore(有効/無効なルール) - `[tool.ruff.format]`: quote-style(シングル/ダブル) - `[tool.mypy]`: python_version, disallow_untyped_defs - `[tool.pytest.ini_options]`: テスト設定 - Python バージョンと既存記法。Python 3.12+ 構文は、対象プロジェクトが対応している場合だけ使う - 既存の依存、例外設計、テストヘルパー、型スタイル `pyproject.toml` がない場合は、`setup.cfg`、`tox.ini`、`requirements*.txt`、`uv.lock`、`poetry.lock`、既存コードのスタイルを確認する。Pydantic / dataclass などの選択は、プロジェクトの既存方針があればそれに従い、無ければ後述の「ユーザー既定の規約」に従う。 ## ユーザー既定の規約 プロジェクト側に明示の規約・既存パターンがあればそれを優先する。無い場合の既定(いずれも繰り返し指摘されてきた項目): - `print` でなく `logging` の logger を使う。 - データ構造は `dataclass` より Pydantic を優先する(単純な dict / tuple で足りる場面まで無理に導入しない)。 - CLI は `argparse` を直接書くより、プロジェクトで採用されている宣言的ライブラリ(fire、typed-argument-parser 等)に合わせる。 - `__init__.py` は空にし、`__all__` を書かない。 - `*args` / `**kwargs` で実引数���曖昧にしない。引数は明示的に列挙する。 - `sys.path` 操作、`PYTHONPATH`、subprocess や動的 import による import ハックをしない。uv 等でパッケージとして import できる構成にする。 - 類似ケースのテストは `@pytest.mark.parametrize` にまとめ、tests も ruff / mypy の対象に含める。 - lint・型エラーは、設定の緩和や理由のない `noqa` / `cast` でなく、コード側を直して解消する。`# pragma: no cover` も安易に足さない。 ## コーディング規約 ### 基本スタイル 以下のサンプルは Python 3.12+ 前提(`def f[T]`、`type X = ...`)。3.11 以下では `TypeVar` / `TypeAlias` を使う。 ```python # Python 3.12+のジェネリクス記法 def process_items[T](items: list[T], predicate: Callable[[T], bool])