skills/coding/coding-python/SKILL.md
Python 3.12+: stdlib, async/await, dataclasses, type hints, venv/uv. FastAPI pandas numpy pydantic
npx skillsauth add alphaonedev/openclaw-graph coding-pythonInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill equips the AI to generate, debug, and optimize Python 3.12+ code using core features and libraries, focusing on practical implementations for data handling, async operations, and web services.
Use this skill for tasks involving data analysis (e.g., with pandas/numpy), building RESTful APIs (e.g., FastAPI), asynchronous processing (e.g., async/await), data validation (e.g., pydantic), or environment management (e.g., venv/uv). Apply it when code requires type hints for maintainability or dataclasses for simple structs, especially in projects needing fast iteration.
@dataclass decorator; enforce type hints via from typing import List (e.g., def func(x: int) -> str:).asyncio for event loops (e.g., asyncio.run(main())); use venv for isolated environments (e.g., python -m venv myenv).pip install uv, then create env via uv venv myenv and activate with source myenv/bin/activate.@app.get("/")); pandas for data frames (e.g., df = pd.DataFrame(data)); numpy for arrays (e.g., np.array([1, 2, 3])); pydantic for models (e.g., from pydantic import BaseModel; class Item(BaseModel): name: str).To accomplish tasks, structure code as follows: Import necessary modules first (e.g., import asyncio, fastapi); use async functions for I/O-bound operations (e.g., async def fetch_data(): await asyncio.sleep(1)); wrap scripts in virtual environments for dependency isolation. For projects, initialize with python -m venv .venv then install dependencies via pip install fastapi pandas numpy pydantic. When generating code, ensure type hints are included (e.g., def add(a: float, b: float) -> float: return a + b). For async patterns, run the event loop explicitly: asyncio.run(main()). Always check for compatibility with Python 3.12+ by specifying in shebang or requirements.txt.
python -m venv env_name --prompt env_name (use --copies flag for Windows); activate via source env_name/bin/activate on Unix or env_name\Scripts\activate on Windows; run scripts with uv run script.py --watch for auto-reload. Install packages: pip install fastapi[all] or uv add fastapi.from fastapi import FastAPI; app = FastAPI(); @app.get("/items/{item_id}") async def read_item(item_id: int): return {"item_id": item_id}. For pandas, use df.groupby('column').mean(); for numpy, np.dot(array1, array2); for pydantic, validate data with item = Item(name="example").{"debug": true} in settings.py); environment variables for keys (e.g., os.environ.get('API_KEY')); requirements.txt for dependencies (e.g., fastapi>=0.95.0\npandas==2.0.0).Integrate this skill by setting up a Python project: First, create a venv and install libraries with pip install -r requirements.txt. For external services, use env vars for authentication (e.g., set export API_KEY=your_key and access via os.getenv('API_KEY') in code). When combining with other tools, import as needed (e.g., for async database queries, use async with database.connect() as conn:). Ensure compatibility: Python 3.12+ is required, so specify in pyproject.toml with [tool.poetry.dependencies] python = "^3.12". For testing, use pytest with pytest --asyncio-mode=auto to handle async tests.
Always wrap potentially failing code in try-except blocks: try: result = await fetch_data() except asyncio.TimeoutError as e: print(f"Timeout: {e}"). Handle specific library errors, like pandas' KeyError for missing columns (e.g., try: df['nonexistent'] except KeyError: df['nonexistent'] = 0). For pydantic, catch ValidationError (e.g., from pydantic import ValidationError; try: item = Item(name=123) except ValidationError as e: log_error(e)). Use FastAPI's exception handlers: @app.exception_handler(RequestValidationError) async def validation_exception_handler(request, exc): return JSONResponse(status_code=400, content={"detail": exc.errors()}). Log errors with import logging; logging.error("Message") and ensure graceful shutdown in async code via try-finally.
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(). Run with uvicorn main:app --reload --port 8000.import pandas as pd; import numpy as np; df = pd.DataFrame({'A': [1, 2]}); result = np.mean(df['A']); print(result) # Outputs mean value. Use in a script: Save as analyze.py and run via python analyze.py.tools
Root web development: project structure, tooling selection, deployment decisions
development
WebAssembly: Rust/Go/C to WASM, wasm-bindgen, Emscripten, WASM Component Model
development
Vue 3: Composition API script setup, Pinia, Vue Router 4, SFCs, Vite, Nuxt 3
tools
Tailwind CSS 4: utility classes, config, JIT, arbitrary values, darkMode, plugins, shadcn/ui