mcpField
P
pydantic-models-py

pydantic-models-py

github.com/sickn33Development48.7k138 installsUpdated today
Repository

About pydantic-models-py

A skill for structuring Pydantic models as clear API contracts, with separate models for shared fields, creation, updates, responses, and database records. It also covers camelCase aliases and integration into a project’s backend and TypeScript types.

Key features

  1. 01Separate Base, Create, Update, Response, and InDB models
  2. 02Configure camelCase field aliases
  3. 03Make update request fields optional
  4. 04Add doc_type to database models
  5. 05Integrate models and TypeScript types

Use cases

  1. 01Define models for API request and response contracts
  2. 02Build PATCH request models with optional fields
  3. 03Represent database documents with doc_type
  4. 04Keep backend models aligned with TypeScript types

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill pydantic-models-py

After installing, type/pydantic-models-pyin Claude Code to confirm it loaded.

Details

From the project README

Pydantic Models

Create Pydantic models following the multi-model pattern for clean API contracts.

Quick Start

Use the inline model patterns below and adapt class names and fields to the actual API contract. Inspect the installed Pydantic version before selecting configuration syntax; these fragments require the imports and application types shown by your project. Do not assume a standalone template file is bundled.

Multi-Model Pattern

ModelPurpose
BaseCommon fields shared across models
CreateRequest body for creation (required fields)
UpdateRequest body for updates (all optional)
ResponseAPI response with all fields
InDBDatabase document with doc_type

camelCase Aliases

class MyModel(BaseModel):
    workspace_id: str = Field(..., alias="workspaceId")
    created_at: datetime = Field(..., alias="createdAt")
    
    class Config:
        populate_by_name = True  # Accept both snake_case and camelCase

Optional Update Fields

class MyUpdate(BaseModel):
    """All fields optional for PATCH requests."""
    name: Optional[str] = Field(None, min_length=1)
    description: Optional[str] = None

Database Document

class MyInDB(MyResponse):
    """Adds doc_type for Cosmos DB queries."""
    doc_type: str = "my_resource"

Integration Steps

  1. Create models in src/backend/app/models/
  2. Export from src/backend/app/models/__init__.py
  3. Add corresponding TypeScript types

When to Use

This skill is applicable to execute the workflow or actions described in the overview.

Limitations

  • Use this skill only when the task clearly matches the scope described above.
  • Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
  • Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.

Comments

Markdown supported