Skip to main content

A library to generate Pydantic models from SQLAlchemy models.

Project description

🐍🔗 SQLAlchemy-Pydantic Codegen

License PyPI Python Unit Tests

A Python library for generating Pydantic models from SQLAlchemy models, providing a seamless integration between SQLAlchemy and Pydantic for data validation and serialization.

✨ Key Features

  • Automatic Pydantic model generation from SQLAlchemy models.
  • Relationship support: Nested models for SQLAlchemy relationships.
  • Custom JSON/JSONB field mapping to your own Pydantic models.
  • Auto-generated __init__.py for schema packages.

📦 Installation

uv add sqlalchemy-pydantic-codegen

🚀 Usage

We recommend sqlacodegen to generate your SQLAlchemy models automatically.

Once your SQLAlchemy models are ready, generate Pydantic models with:

sqlalchemy-pydantic-codegen --models-path my_app.db.models --output-dir src/schemas
  • --models-path: Dotted path to your SQLAlchemy models (required)
  • --output-dir: Output directory for generated schemas (default: src/schemas)

🛠️ Custom Configuration

To map JSON/JSONB fields to custom Pydantic models, use the --config option.

Create a config file (e.g., codegen_config.py):

# codegen_config.py

# Maps table names to a dictionary of field names and the Pydantic model to use.
CUSTOM_JSONB_MODELS = {
    "my_table": {
        "my_jsonb_field": "MyCustomPydanticModelForJsonbField",
    },
}

# Maps the Pydantic model name to its full import statement.
CUSTOM_IMPORTS = {
    "MyCustomPydanticModelForJsonbField": "from my_app.schemas import MyCustomPydanticModelForJsonbField",
}

Then, run the command with the --config flag:

sqlalchemy-pydantic-codegen --models-path my_app.db.models --output-dir src/schemas --config codegen_config.py

📤 Output

  • One Pydantic schema file per SQLAlchemy model.
  • init.py with all exports and forward references.
  • Cleaned and ready-to-use Pydantic models.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sqlalchemy_pydantic_codegen-1.0.4.tar.gz (16.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sqlalchemy_pydantic_codegen-1.0.4-py3-none-any.whl (15.1 kB view details)

Uploaded Python 3

File details

Details for the file sqlalchemy_pydantic_codegen-1.0.4.tar.gz.

File metadata

File hashes

Hashes for sqlalchemy_pydantic_codegen-1.0.4.tar.gz
Algorithm Hash digest
SHA256 382b782922299504fd1b515fab26d932b20d8543689bceb9fe01feb3d06f4581
MD5 ce18ba6572cab4d5e5baa98a3e158fe9
BLAKE2b-256 12c17bfde4b238de1adda37ebef9b0198e51b845ec2a056a7156d4a9988385e2

See more details on using hashes here.

File details

Details for the file sqlalchemy_pydantic_codegen-1.0.4-py3-none-any.whl.

File metadata

File hashes

Hashes for sqlalchemy_pydantic_codegen-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 cb98eb02acb8db68488486b227a649122bf02cc0f4aea98cb83aa654d050293d
MD5 87b89ed97cadf0f1f50da6d718fc521d
BLAKE2b-256 daea07cee78c09fc64277a74d912ff8d767c4ee929a04d094e2bc06e356338a7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page