Skip to main content

mermaidmro

Build status Package version Python version Documentation status Code coverge License

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

code:D graph

Download the graph

> mermaidmro code:D --download graph.png

Installation

Simply install via pip

pip install mermaidmro

Development

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

Metadata

Release files for mermaidmro 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mermaidmro 0.2.1
File Size Uploaded
mermaidmro-0.2.1.tar.gz 15.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mermaidmro 0.2.1
File Interpreter ABI Platform
mermaidmro-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 26.1 kB

Release files / mermaidmro-0.2.1.tar.gz

Download URL mermaidmro-0.2.1.tar.gz
Size 15.4 kB
Tags Source
SHA-256 checksum
How to use checksums
e471b0103aaf36182a86ba2a2d5ec68c8b28488a981624d863a2bb0a8abac41b
BLAKE2b-256 checksum
How to use checksums
b1c6a1e118d23e5b6957a30e21a09e41405ada155320250e20f2b59b0b10e036
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.18

Release files / mermaidmro-0.2.1-py3-none-any.whl

Download URL mermaidmro-0.2.1-py3-none-any.whl
Size 10.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9c71fd110f4bc7333ee24fc718102928aa92ae0f62cfde6cd6f3c86de1bdf877
BLAKE2b-256 checksum
How to use checksums
38c16d72c65ab56e020f20ec6ad8152b6db0ae1650b829f5d9da6ba639b299ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.18

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.2.0

2 release files

0.1.2

1 release file

0.1.1

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page