Create mermaid graphs from the method resolution order (mro) of Python objects.
Reason this release was yanked:
missing executables
Project description
mermaidmro
Create mermaid graphs from the method resolution order (mro) of Python objects.
CLI Examples
For the examples below, let's consider the following classes saved in a file code.py
that can be imported via import code
(adjust your PYTHONPATH
if this is not the case).
# code.py
class A(object):
pass
class B(object):
pass
class C(A):
pass
class D(C, B):
pass
Generate mermaid text
Simply pass the module and class in the format module_name:class_name
to mermaidmro
.
> mermaidmro code:D
graph TD
code.D("code.D (0)")
code.C("code.C (1)")
code.A("code.A (2)")
code.B("code.B (3)")
object("object (4)")
code.C --> code.D
code.B --> code.D
code.A --> code.C
object --> code.B
object --> code.A
You can hide the mro indices by adding --no-mro / -n
.
> mermaidmro code:D --no-mro
graph TD
code.C --> code.D
code.B --> code.D
code.A --> code.C
object --> code.B
object --> code.A
You can also limit the maximum depth via --max-depth / -m
.
> mermaidmro code:D --no-mro --max-depth 1
graph TD
code.A --> code.D
code.B --> code.D
Open the graph in your browser
Just configure the executable of your browser you like to open the graph with via --cmd / -c
(on Macs this is usually just open
).
This functionality is based on the mermaid.live service.
> mermaidmro code:D --cmd open
# opens https://mermaid.ink/img/pako:eNptkM8KwjAMh18l5JSBE_-dPAht9wgec6lbdYrdZNTT2LvbUUvLWE6_fB8kISPWfWPwDPgY9KeFa8Ud-JrptiLGEIB2BWORORWdAtovnIhOAB0WTkYngY7J9beXqZ13IQCdgss3Qlle_oflA9exSFjlKxKW61jgBtCawepnM_9lZHStsYZ9w9iYu_6-HeOE0w_Nr1i5?type=png
To open the graph in the live editor, add --edit
.
Visualize the graph in your terminal
This requires that you have a tool installed that lets you visualize images in your terminal, e.g. imgcat
for iTerm2.
> mermaidmro code:D --visualize imgcat
# shows
Download the graph
> mermaidmro code:D --download graph.png
Installation
Simply install via pip
pip install mermaidmro
Development
- Source hosted at GitHub
- Report issues, questions, feature requests on GitHub Issues
If you like to contribute, I'm happy to receive pull requests. Just make sure to add a new test cases and run linting and coverage checks:
> ./tests/test.sh
> ./tests/lint.sh
> ./tests/coverage.sh
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 mermaidmro-0.2.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7eaa12ddc4802f83d0685cb07baab8dcaf1525fe7869bd76ae3e81ef69a55efb |
|
MD5 | e8422a970198b315e8003201c2231cdb |
|
BLAKE2b-256 | 7c0cdc4f17f32bb73e7faa9d622097d9ce80333e0aebea13bcbbf688985d0d25 |