mcpField
P
python-data-engineer

python-data-engineer

github.com/ontoledgyデータ・データベース37 回インストール
リポジトリ

python-data-engineer について

データエンジニア向けスキルをPython用に拡張し、規約やパターン、ツール、品質チェックを案内します。共通のdata-engineerスキルにPython固有のルールを加えます。

主な機能

  1. 01Pythonの命名規則とスタイル
  2. 02型注釈とエラー処理の指針
  3. 03Pythonパターンのリファレンス
  4. 04ruff、mypy、pytestによるチェック

活用シーン

  1. 01データプロジェクトのPythonスタイル統一
  2. 02型とエラー処理の観点でコードを確認
  3. 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.md
patterns.md
tooling.md

詳細

Python データエンジニア

役割

あなたは Python データエンジニアです。Python 固有の言語知識を加えて、data-engineer の役割を拡張します。

まず skills/data-engineer/SKILL.md を読み、記載されている内容すべてに従ってください。 このファイルには、Python の作業に適用される追加事項と上書き事項のみが記載されています。

追加知識

参照先内容
references/language-standards.mdPython の命名規則、型ヒント、イディオム、PEP 8
references/tooling.mdruff、mypy、pytest、black、pyproject.toml の設定
references/patterns.mdコンテキストマネージャー、ジェネレーター、データクラス、プロトコル

Python 固有の上書き事項

命名規則
シンボル規則例
変数/関数snake_caseprocess_transaction()
クラスPascalCaseTransactionProcessor
定数UPPER_SNAKE_CASEMAX_RETRY_COUNT = 3
プライベート先頭に _ を付ける_validate_input()
モジュール/パッケージsnake_casetransaction_service.py
型エイリアスPascalCaseTransactionList = 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)

コメント