Access kroki from python
Project description
kroki
Access kroki from python.
To install: pip install kroki
The kroki
python package is a convenience package for you to be able to generate diagrams,
through kroki, getting your images as bytes or as ipython objects via python
functions or doing some "cell magic" in your jupyter notebooks.
I suggest you have a look at the kroki's excellent homepage where you'll be able to try different diagram types out. Don't miss the nice cheatsheet there.
Overview
You can get the bytes of an image of a diagram like so:
from kroki import diagram_image_bytes
svn_bytes = diagram_image_bytes('Bob->Alice : Hello!')
# which you can then save in a file...
When in a jupyter notebook though, you have a more convenient function that will put those bytes into an IPython display object, which you can then display (will automatically call display if it's the last command of the cell), amongst other things.
from kroki import diagram_image
diagram_image('Bob->Alice : Hello!')
In both those functions, the default is diagram_type='plantuml'
and output_format='svg'
.
But you have other choices.
diagram_image('digraph D {Alice -> Bob, Charles -> Darwin}', diagram_type='graphviz')
png_bytes = diagram_image_bytes('Bob->Alice : Hello!', output_format='png')
png_bytes[:7]
b'\x89PNG\r\n\x1a'
And then, there's magic, which will allow you to write your diagram source directly in a notebook's cell.
%load_ext kroki
%%kroki
Bob->Alice : Hello!
The default diagram_type
is still plantuml
, but you can specify another type if you want.
%%kroki graphviz
digraph D {
Alice -> Bob, Charles -> Darwin
}
To see what diagram types kroki
supports through the diagram_types
variable.
from kroki import diagram_types
print(diagram_types)
{'svgbob', 'vega', 'packetdiag', 'mermaid', 'structurizr', 'bytefield', 'vegalite', 'c4plantuml', 'pikchr', 'rackdiag', 'ditaa', 'wavedrom', 'nwdiag', 'graphviz', 'excalidraw', 'plantuml', 'erd', 'umlet', 'actdiag', 'nomnoml', 'bpmn', 'seqdiag', 'blockdiag'}
Not all output_format
values are supported for all diagram types. To which are supported for which types, you can have a look at the output_formats
dictionary, which which contains both the choices of diagram_type (as keys) and the corresponding output_format each support (as values).
from kroki import output_formats
output_formats['plantuml']
['png', 'svg', 'jpeg', 'base64']
output_formats['mermaid']
['svg']
output_formats['seqdiag']
['png', 'svg', 'pdf']
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.