Generate ERD-style D2 diagrams from Pydantic models
Project description
pydantic-diagram
Generate ERD-style diagrams from your Pydantic models using D2.
Takes a set of Pydantic models and outputs D2 code that renders as a nice visual diagram showing model relationships, inheritance, and field types.
Installation
pip install pydantic-diagram
Usage
As a library
from pydantic import BaseModel
from pydantic_diagram import render_d2
class User(BaseModel):
id: int
name: str
class Post(BaseModel):
id: int
title: str
author: User
# Generate D2 code
d2_code = render_d2([User, Post])
print(d2_code)
From the command line
# From a file path (no install needed)
pydantic-diagram path/to/models.py:User,Post
# From an installed module
pydantic-diagram myapp.models:User,Post
# Diagram all models in a module/file
pydantic-diagram myapp.models
# Write to file, then render with D2
pydantic-diagram models.py -o schema.d2
d2 schema.d2 schema.svg
CLI options
pydantic-diagram <module:models> [options]
Options:
-o, --output FILE Write to file instead of stdout
--direction DIR Layout direction: right, down, left, up (default: right)
--no-inherited Exclude inherited fields from subclasses
--qualified-names Use fully qualified names (module.ClassName)
--no-docstrings Exclude docstrings and field descriptions
What it diagrams
- Model relationships: composition, collections, unions
- Inheritance: shows parent/child class relationships
- Field types: rendered as D2 sql_table shapes
- Self-references: handles recursive models correctly
- Docstrings: model and field descriptions appear as tooltips/constraints
Requirements
- Python 3.10+
- Pydantic 2.0+
- D2 (for rendering the output)
License
MIT
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
pydantic_diagram-0.1.3.tar.gz
(45.2 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pydantic_diagram-0.1.3.tar.gz.
File metadata
- Download URL: pydantic_diagram-0.1.3.tar.gz
- Upload date:
- Size: 45.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bf41975c5e0e40cc2634bd67e6ea83b8c65b13a76508da6d7d70adb21b9d6bb7
|
|
| MD5 |
d9abec619dd690d628c501605a89b3c4
|
|
| BLAKE2b-256 |
b4044c5aa6cf3b4ede85495ef6958dc5749267eb3ac3c9246c60446f69870a1a
|
File details
Details for the file pydantic_diagram-0.1.3-py3-none-any.whl.
File metadata
- Download URL: pydantic_diagram-0.1.3-py3-none-any.whl
- Upload date:
- Size: 13.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a882327cb44970e7fe5c9920bcedbcf4e428b740d0bb4ab3b7f43e17dfe07703
|
|
| MD5 |
b2b7ce74e2c24c83fb521461c8fa765d
|
|
| BLAKE2b-256 |
193adc4abc7f6ed24f8635556170a0e24afbb7bab377e7687daf7996c2c08c69
|