To convert Pydantic models to Mermaid charts, you can use the pydantic-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 2, please visit https://github.com/EricWebsmith/pydantic-2-mermaid
Install the pydantic-mermaid
library using pip:
pip install pydantic-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
pydantic-mermaid
module and pass in your Pydantic models as arguments.from pydantic_mermaid import MermaidGenerator
import my_module
generator = MermaidGenerator(my_module)
chart = generator.generate_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.
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.