Convert pydantic 2.0.3+ classes to markdown mermaid class charts
Project description
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-mermaid
module 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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for pydantic_2_mermaid-0.7.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 331373a9faadc4674419ad3a88c2547f4af82f69e6813a200bad7f465e8c73a8 |
|
MD5 | d4eb42f40e0eacb5e4f0df50f82e2747 |
|
BLAKE2b-256 | 5961722369afa937308e75d5ef4d22e3cd087d8925c4e43301c5eebca30a6f85 |