modelscope.cn

coding-python

Python 3.12+: stdlib, async/await, dataclasses, type hints, venv/uv. FastAPI pandas numpy pydantic

Installation

$ npx skills add https://modelscope.cn

Also in this package

Other skills from modelscope.cn · top by installs.

npx skills add https://modelscope.cn

Browse all from modelscope.cn

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 5,831 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

Purpose

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.

When to Use

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.

Key Capabilities

  • Python 3.12 Features: Use async/await for non-blocking I/O; define dataclasses with @dataclass decorator; enforce type hints via from typing import List (e.g., def func(x: int) -> str:).
  • Standard Library: Leverage asyncio for event loops (e.g., asyncio.run(main())); use venv for isolated environments (e.g., python -m venv myenv).
  • uv Tool: Alternative to venv; install with pip install uv, then create env via uv venv myenv and activate with source myenv/bin/activate.
  • Libraries: FastAPI for async web apps (e.g., define routes with @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).

Usage Patterns

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.

Common Commands/API

  • CLI Commands: Create venv with python -m venv envname --prompt envname (use --copies flag for Windows); activate via source envname/bin/activate on Unix or envname\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.
  • API Endpoints/Methods: In FastAPI, define an endpoint like: from fastapi import FastAPI; app = FastAPI(); @app.get("/items/{itemid}") async def readitem(itemid: int): return {"itemid": item_id}. For pandas, use df.groupby('column').mean(); for numpy, np.dot(array1, array2); for pydantic, validate data with item = Item(name="example").
  • Config Formats: Use JSON for FastAPI configs (e.g., {"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).

Integration Notes

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 APIKEY=yourkey 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.

Error Handling

Always wrap potentially failing code in try-except blocks: try: result = await fetchdata() 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: logerror(e)). Use FastAPI's exception handlers: @app.exceptionhandler(RequestValidationError) async def validationexceptionhandler(request, exc): return JSONResponse(statuscode=400, content={"detail": exc.errors()}). Log errors with import logging; logging.error("Message") and ensure graceful shutdown in async code via try-finally.

Usage Examples

  1. Build a FastAPI Endpoint: To create a simple async API for data retrieval, use: from fastapi import FastAPI; import asyncio; app = FastAPI(); async def getdata(): await asyncio.sleep(1); return {"data": "fetched"}; @app.get("/") async def root(): return await getdata(). Run with uvicorn main:app --reload --port 8000.
  2. Data Analysis with Pandas and Numpy: For processing a dataset, import libraries and compute: 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.

Graph Relationships

  • Related to: coding cluster (e.g., shares tags with "coding-general" for broader scripting; connects to "web-dev" via FastAPI for API building; links to "data-science" through pandas/numpy for analysis workflows).