coding-python について
Python 3.12+ のコード生成、デバッグ、改善を支援するスキルです。データ処理、非同期タスク、Web サービスに取り組む開発者向けに、型ヒントや標準ライブラリ、一般的な Python ライブラリの使い方を扱います。
主な機能
- 01Python 3.12+ のコーディングパターン
- 02asyncio による非同期処理
- 03型ヒントと dataclasses
- 04pandas と numpy によるデータ処理
- 05FastAPI と pydantic の例
- 06venv または uv による環境管理
活用シーン
- 01非同期 FastAPI エンドポイントの構築
- 02pandas と numpy によるデータ分析
- 03pydantic による入力検証
- 04プロジェクト依存関係の分離
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill coding-pythonインストール後、Claude Code で/coding-pythonを入力して読み込まれたか確認します。
詳細
目的
このスキルは、実践的なデータ処理、非同期処理、Web サービスの実装に重点を置き、コア機能とライブラリを使用して Python 3.12 以降のコードを生成、デバッグ、最適化できるよう AI を支援します。
使用する場面
pandas/numpy を使ったデータ分析、FastAPI を使った RESTful API の構築、async/await を使った非同期処理、pydantic を使ったデータ検証、venv/uv を使った環境管理などのタスクでこのスキルを使用します。保守性のために型ヒントが必要なコードや、シンプルな構造体としてデータクラスを使うコード、特に迅速な反復が求められるプロジェクトで活用してください。
主な機能
- Python 3.12 の機能:ノンブロッキング I/O には async/await を使用します。
@dataclassデコレーターでデータクラスを定義します。from typing import Listを使って型ヒントを適用します(例:def func(x: int) -> str:)。 - 標準ライブラリ:イベントループには
asyncioを活用します(例:asyncio.run(main()))。分離された環境にはvenvを使用します(例:python -m venv myenv)。 - uv ツール:venv の代替手段です。
pip install uvでインストールし、uv venv myenvで環境を作成してから、source myenv/bin/activateで有効化します。 - ライブラリ:非同期 Web アプリには FastAPI を使用します(例:
@app.get("/")でルートを定義)。データフレームには pandas を使用します(例:df = pd.DataFrame(data))。配列には numpy を使用します(例:np.array([1, 2, 3]))。モデルには pydantic を使用します(例:from pydantic import BaseModel; class Item(BaseModel): name: str)。
使用パターン
タスクを実行するには、次のようにコードを構成します。まず必要なモジュールをインポートします(例:import asyncio, fastapi)。I/O バウンドの処理には非同期関数を使用します(例:async def fetch_data(): await asyncio.sleep(1))。依存関係を分離するため、スクリプトは仮想環境内で実行します。プロジェクトでは、python -m venv .venv で初期化し、pip install fastapi pandas numpy pydantic で依存関係をインストールします。コードを生成するときは、型ヒントを必ず含めます(例:def add(a: float, b: float) -> float: return a + b)。非同期処理のパターンでは、イベントループを明示的に実行します:asyncio.run(main())。シバンまたは requirements.txt で Python 3.12 以降を指定し、互換性を必ず確認してください。
一般的なコマンド/API
- CLI コマンド:
python -m venv env_name --prompt env_nameで venv を作成します(Windows では--copiesフラグを使用)。Unix ではsource env_name/bin/activate、Windows ではenv_name\Scripts\activateで有効化します。uv run script.py --watchでスクリプトを実行し、自動リロードを有効にします。パッケージをインストールするには、pip install fastapi[all]またはuv add fastapiを使用します。 - API エンドポイント/メソッド:FastAPI では、次のようにエンドポイントを定義します:
from fastapi import FastAPI; app = FastAPI(); @app.get("/items/{item_id}") async def read_item(item_id: int): return {"item_id": item_id}。pandas ではdf.groupby('column').mean()を使用します。numpy ではnp.dot(array1, array2)を使用します。pydantic ではitem = Item(name="example")でデータを検証します。 - 設定形式:FastAPI の設定には JSON を使用します(例:settings.py の
{"debug": true})。キーには環境変数を使用します(例:os.environ.get('API_KEY'))。依存関係には requirements.txt を使用します(例:fastapi>=0.95.0\npandas==2.0.0)。
統合に関する注意
Python プロジェクトをセットアップして、このスキルを統合します。まず venv を作成し、pip install -r requirements.txt でライブラリをインストールします。外部サービスでは、認証に環境変数を使用します(例:export API_KEY=your_key を設定し、コード内で os.getenv('API_KEY') を使ってアクセスします)。他のツールと組み合わせる場合は、必要に応じてインポートします(例:非同期データベースクエリには async with database.connect() as conn: を使用します)。Python 3.12 以降が必要なため、pyproject.toml の [tool.poetry.dependencies] python = "^3.12" で指定し、互換性を確保してください。テストには pytest を使用し、pytest --asyncio-mode=auto で非同期テストを処理します。
エラー処理
失敗する可能性のあるコードは、必ず try-except ブロックで囲んでください。try: result = await fetch_data() except asyncio.TimeoutError as e: print(f"Timeout: {e}")。pandas の KeyError のように、特定のライブラリエラーを処理してください。これは、列が見つからない場合に発生します(例:try: df['nonexistent'] except KeyError: df['nonexistent'] = 0)。pydantic では ValidationError をキャッチしてください(例:from pydantic import ValidationError; try: item = Item(name=123) except ValidationError as e: log_error(e))。FastAPI の例外ハンドラーを使用してください:@app.exception_handler(RequestValidationError) async def validation_exception_handler(request, exc): return JSONResponse(status_code=400, content={"detail": exc.errors()})。import logging; logging.error("Message") でエラーをログに記録し、非同期コードでは try-finally を使って適切にシャットダウンできるようにしてください。
使用例
- FastAPI エンドポイントを構築する:データを取得するシンプルな非同期 API を作成するには、次を使用します:
from fastapi import FastAPI; import asyncio; app = FastAPI(); async def get_data(): await asyncio.sleep(1); return {"data": "fetched"}; @app.get("/") async def root(): return await get_data()。uvicorn main:app --reload --port 8000で実行します。 - Pandas と Numpy によるデータ分析:データセットを処理するには、ライブラリをインポートして次の計算を行います:
import pandas as pd; import numpy as np; df = pd.DataFrame({'A': [1, 2]}); result = np.mean(df['A']); print(result) # Outputs mean value。スクリプトで使用する場合は、analyze.py として保存し、python analyze.pyで実行します。
グラフの関連性
- 関連項目:コーディングクラスター(例:より広範なスクリプト作成向けに「coding-general」とタグを共有します。API 構築では FastAPI を通じて「web-dev」とつながり、分析ワークフローでは pandas/numpy を通じて「data-science」と関連します)。