Pydantic 2 Mermaid
To convert Pydantic 2 models to Mermaid charts, you can use the pydantic-2-mermaid library. This library allows you to generate Mermaid charts from your Pydantic models. Here are the steps to install and use pydantic-mermaid:
If you are using pydantic 1, please visit https://github.com/EricWebsmith/pydantic_mermaid
Use in terminal
Install the pydantic-2-mermaid library using pip:
pip install pydantic-2-mermaid
Use command line
pydantic-mermaid --module models.py --output models.md
You can run the following comamand get help for the command.
pydantic-mermaid --help
Use in code
- Import your Pydantic models into your Python script.
- Create an instance of the MermaidGenerator class from the
pydantic-2-mermaidmodule and pass in your Pydantic models as arguments.
from pydantic_mermaid import MermaidGenerator
import my_module
generator = MermaidGenerator(my_module)
- Call the generate_chart() method of the MermaidGenerator instance to generate the Mermaid chart.
chart = generator.generate_chart()
- Use the chart variable to display or save the Mermaid chart.
print(chart)
This will print the Mermaid chart as a string. You can also save the chart to a file by writing the chart string to a file:
with open("chart.mmd", "w") as f:
f.write(chart)
This will save the Mermaid chart to a file called chart.mmd. You can then use a tool like the Mermaid Live Editor to visualize and edit the chart.
examples
Inheritance:
classDiagram
class Animal {
}
class Fish {
gill: str
}
class Beast {
lags: int
}
class Bird {
winds: int
}
class Dog {
}
class Cat {
}
class Salmon {
}
class Eagle {
}
Animal <|-- Fish
Animal <|-- Bird
Animal <|-- Beast
Beast <|-- Cat
Beast <|-- Dog
Fish <|-- Salmon
Bird <|-- Eagle
dependencies:
Administrative Divisions of the United States of America
classDiagram
class Municipality {
name: str
population: int
}
class MinorCivilDivision {
name: str
population: int
}
class County {
name: str
population: int
municipalities: list[Municipality]
minor_civil_divisions: list[MinorCivilDivision]
}
class CountyEquivalant {
name: str
population: int
}
class State {
name: str
population: int
counties: list[County]
county_equivalants: list[CountyEquivalant]
}
class FederalDistrict {
name: str
population: int
}
class InhabitedTerritory {
name: str
population: int
}
class HabitedTerritory {
name: str
population: int
}
class Federal {
name: str
population: int
federal_distric: FederalDistrict
states: list[State]
Inhabited_territories: list[InhabitedTerritory]
Habited_territories: list[HabitedTerritory]
}
County ..> MinorCivilDivision
County ..> Municipality
State ..> CountyEquivalant
State ..> County
Federal ..> InhabitedTerritory
Federal ..> HabitedTerritory
Federal ..> State
Federal ..> FederalDistrict
For details, check examples/ folder.
Metadata
Release files for pydantic-2-mermaid 0.7.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| pydantic_2_mermaid-0.7.3.tar.gz | 8.9 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pydantic_2_mermaid-0.7.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 18.8 kB
Release files / pydantic_2_mermaid-0.7.3.tar.gz
| Download URL | pydantic_2_mermaid-0.7.3.tar.gz |
|---|---|
| Size | 8.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b4ba43942b0df2ba48eb7b2c7d09e57648973252025ddf1fce9fe9fa6125ae35
|
|
BLAKE2b-256 checksum How to use checksums |
f4eaa63fada15ea962122972c2ff86e042418562b852a6967c7ce43b46a5ed9a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.12.3
|
Release files / pydantic_2_mermaid-0.7.3-py3-none-any.whl
| Download URL | pydantic_2_mermaid-0.7.3-py3-none-any.whl |
|---|---|
| Size | 9.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
665ed9d5f23c251bcc8eef2d9e9f1af4ea3c978e99676fecc0fbccb2d1aead62
|
|
BLAKE2b-256 checksum How to use checksums |
eb8f4f64f4e7929a49bb87698152f0a925854de865d319e8f5b5e5e948663d62
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.12.3
|
Security for pydantic-2-mermaid 0.7.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.