Graphviz utility functions.
Project description
Graphviz utility functions.
Latest release 20221118:
- quote: provide escape sequence for newline.
- DOTNodeMixin: provide .dot_node_id property, default
str(id(self))
. - DOTNodeMixin.dot_node: omit [attrs] if they are empty.
- DOTNodeMixin: new .dot_node_palette_key property, new getattr for .dot_node_*color attributes, new empty default DOT_NODE_COLOR_PALETTE and DOT_NODE_FILLCOLOR_PALETTE class attributes.
- DOTNodeMixin.dot_node: include the node label in the attributes.
- Add colours to DOTNodeMixin.dot_node_attrs and fix "fontcolor".
See also the [https://www.graphviz.org/documentation/](graphviz documentation)
and particularly the [https://graphviz.org/doc/info/lang.html](DOT language specification)
and the [https://www.graphviz.org/doc/info/command.html](dot
command line tool).
Class DOTNodeMixin
A mixin providing methods for things which can be drawn as nodes in a DOT graph description.
Function gvdata(dot_s, **kw)
Convenience wrapper for gvprint
which returns the binary image data.
Function gvdataurl(dot_s, **kw)
Convenience wrapper for gvprint
which returns the binary image data
as a data:
URL.
Function gvprint(dot_s, file=None, fmt=None, layout=None, dataurl_encoding=None, **dot_kw)
Print the graph specified by dot_s
, a graph in graphViz DOT syntax,
to file
(default sys.stdout
)
in format fmt
using the engine specified by layout
(default 'dot'
).
If fmt
is unspecified it defaults to 'png'
unless file
is a terminal in which case it defaults to 'sixel'
.
In addition to being a file or file descriptor,
file
may also take the following special values:
GVCAPTURE
: causesgvprint
to return the image data asbytes
GVDATAURL
: causesgvprint
to return the image data as adata:
URL
For GVDATAURL
, the parameter dataurl_encoding
may be used
to override the default encoding, which is 'utf8'
for fmt
values 'dot'
and 'svg'
, otherwise 'base64'
.
This uses the graphviz utility dot
to draw graphs.
If printing in SIXEL format the img2sixel
utility is required,
see https://saitoha.github.io/libsixel/.
Example:
data_url = gvprint('digraph FOO {A->B}', file=GVDATAURL, fmt='svg')
Function quote(s)
Quote a string for use in DOT syntax. This implementation passes identifiers and sequences of decimal numerals through unchanged and double quotes other strings.
Release Log
Release 20221118:
- quote: provide escape sequence for newline.
- DOTNodeMixin: provide .dot_node_id property, default
str(id(self))
. - DOTNodeMixin.dot_node: omit [attrs] if they are empty.
- DOTNodeMixin: new .dot_node_palette_key property, new getattr for .dot_node_*color attributes, new empty default DOT_NODE_COLOR_PALETTE and DOT_NODE_FILLCOLOR_PALETTE class attributes.
- DOTNodeMixin.dot_node: include the node label in the attributes.
- Add colours to DOTNodeMixin.dot_node_attrs and fix "fontcolor".
Release 20220827.1: gvprint: new optional parameter dataurl_encoding to specify the data URL encoding.
Release 20220827:
- Remove dependency on cs.lex - now we need only the stdlib.
- New GVCAPTURE value for gvprint(file=) to return the binary image data as a bytes object; associated gvdata() convenience function.
- New GVDATAURL value for gvprint(file=) to return the binary image data as a data URL; associated gvdataurl() convenience function.
Release 20220805.1: New DOTNodeMixin, a mixin for classes which can be rendered as a DOT node.
Release 20220805: Initial PyPI release.
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 cs.gvutils-20221118-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d0449443d89deae90bb7a6046bacaf12b6f32a3e43a1cbc1f8aa5613a93a2d6a |
|
MD5 | 3cf4db83de26d013fbd47d19b8193018 |
|
BLAKE2b-256 | 5660e7949dc82caf839d827d89a3df682ac1087db4c7350e8b6d0ea23de15119 |