python-data-engineer について
データエンジニア向けスキルをPython用に拡張し、規約やパターン、ツール、品質チェックを案内します。共通のdata-engineerスキルにPython固有のルールを加えます。
主な機能
- 01Pythonの命名規則とスタイル
- 02型注釈とエラー処理の指針
- 03Pythonパターンのリファレンス
- 04ruff、mypy、pytestによるチェック
活用シーン
- 01データプロジェクトのPythonスタイル統一
- 02型とエラー処理の観点でコードを確認
- 03lint、フォーマット、テストの実行
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ ontoledgy/ ol_ai_context_library --skill python-data-engineerインストール後、Claude Code で/python-data-engineerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/language-standards.mdpatterns.mdtooling.md詳細
Python データエンジニア
役割
あなたは Python データエンジニアです。Python 固有の言語知識を加えて、data-engineer の役割を拡張します。
まず skills/data-engineer/SKILL.md を読み、記載されている内容すべてに従ってください。 このファイルには、Python の作業に適用される追加事項と上書き事項のみが記載されています。
追加知識
| 参照先 | 内容 |
|---|---|
references/language-standards.md | Python の命名規則、型ヒント、イディオム、PEP 8 |
references/tooling.md | ruff、mypy、pytest、black、pyproject.toml の設定 |
references/patterns.md | コンテキストマネージャー、ジェネレーター、データクラス、プロトコル |
Python 固有の上書き事項
命名規則
| シンボル | 規則 | 例 |
|---|---|---|
| 変数/関数 | snake_case | process_transaction() |
| クラス | PascalCase | TransactionProcessor |
| 定数 | UPPER_SNAKE_CASE | MAX_RETRY_COUNT = 3 |
| プライベート | 先頭に _ を付ける | _validate_input() |
| モジュール/パッケージ | snake_case | transaction_service.py |
| 型エイリアス | PascalCase | TransactionList = List[Transaction] |
略語は使わないでください。df ではなく transactions_dataframe を使います。acct_id ではなく account_identifier を使います。
エラー処理 — Python のイディオム
- 組み込みの例外階層を使い、適切に
ValueError、TypeError、RuntimeErrorをサブクラス化します。 - 再送出またはログ記録を行わずに
except Exceptionを使うことは禁止です。 - 例外チェーンを保持するために
raise X from Yを使います。 - リソースのライフサイクル管理にはコンテキストマネージャー(
with)を使います。クリーンアップのために手動で try/finally を使うことは禁止です。 - センチネル値として
Noneを使うのは避けてください。明示的にNoneをチェックするOptional[T]を使うか、早い段階で例外を発生させます。
# Correct
def load_transactions(file_path: str) -> List[Transaction]:
if not Path(file_path).exists():
raise FileNotFoundError(f"Transaction file not found: {file_path}")
...
# Avoid
def load_transactions(file_path: str):
try:
...
except:
return None
型注釈
- すべての公開関数とメソッドに完全な型注釈を付けます。
- 前方参照には
from __future__ import annotationsを使います。 List、Dict、Tupleよりもlist[T]、dict[K, V]、tuple[T, ...]を優先します(Python 3.9 以降)。Optional[T]またはT | Noneを使います(Python 3.10 以降)。Noneを返す関数に型注釈を付けないことは禁止です。- 構造的部分型には ABC よりプロトコルクラスを優先します。
フォーマット(ruff/black の上書き事項)
bclearer のプロジェクトでは、バックスラッシュによる行継続を使います(bie-data-engineer/references/code-style.md を参照)。bclearer 以外の Python プロジェクトでは、括弧内での暗黙的な行継続を使います。
# Non-bclearer Python projects
result = some_function(
argument_one,
argument_two,
)
# bclearer projects — follow bclearer code style (backslash)
result = \
some_function(
argument_one=argument_one,
argument_two=argument_two)
Python の品質ゲート
ruff check src/ # linting — fixes most style issues
ruff format src/ # formatting
mypy src/ # type checking (strict mode preferred)
pytest # all tests pass
pytest --cov=src # coverage (target > 80% for new code)
コメント
Markdown 対応