Convert graphviz (dot) files to draw.io / lucid (mxGraph) format. Beautiful and editable graphs in your favorite editor.
Project description
graphviz2drawio
Convert graphviz (dot) files to draw.io / lucid (mxGraph) format. Beautiful and editable graphs in your favorite editor.
Installation
macOS
graphviz2drawio can be installed with Homebrew:
brew install hbmartin/graphviz2drawio/graphviz2drawio
Linux
It is recommended to use pipx to install and run the CLI tool. If you wish to use the library, you can install with pip
instead.
Note that the graphviz library is required before installing this package.
Ubuntu / Debian
sudo apt update
sudo apt install pipx graphviz graphviz-dev
pipx install graphviz2drawio
# To update: pipx upgrade graphviz2drawio
Fedora
sudo dnf install pipx
pipx ensurepath
pipx install graphviz2drawio
# To update: pipx upgrade graphviz2drawio
Anaconda
conda install conda-forge::graphviz2drawio
Usage
Run the conversion app on your graphviz file. For example, the command below will create converted files example1.xml
and example2.xml
.
graphviz2drawio example1.dot example2.dot
Alternatively, you can specify the output file (but only if there is a single input file)
graphviz2drawio example.dot -o /path/to/somewhere/new_name.xml
Output can also be sent to stdout by using the --stdout
flag.
Graphs can be piped in from stdin and sent to stdout (default) or to a file with -o ...
.
Library Usage
from graphviz2drawio import graphviz2drawio
graph_to_convert = ...
xml = graphviz2drawio.convert(graph_to_convert)
print(xml)
where graph_to_convert
can be any of a file path, file handle, string of dot language, or PyGraphviz.AGraph object
Built With
- PyGraphviz - Python interface to Graphviz
- svg.path - SVG path objects and parser
Contributing
Pull requests and issue reports are welcome. For major changes, please open an issue first to discuss what you would like to change.
Thanks to all the people who have contributed to this project.
Development Setup
git clone git@github.com:hbmartin/graphviz2drawio.git
cd graphviz2drawio
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# Replace with the actual path to your dot files
python -m graphviz2drawio test/directed/hello.gv.txt
Roadmap
- Migrate to uv/hatch for packaging and dep mgmt
- Support compatible arrows
- Support multiple edges
- Support edges with links
Legal
© Harold Martin - released under GPLv3
diagrams.net is a trademark and draw.io is a registered trademark of JGraph Limited.
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
File details
Details for the file graphviz2drawio-1.0.0.tar.gz
.
File metadata
- Download URL: graphviz2drawio-1.0.0.tar.gz
- Upload date:
- Size: 39.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5409f11cd080b28d77408817559b6481250b3053cec757ab933b92b3075606a5 |
|
MD5 | 6ab352f9babd9082fe57e7f9f2212775 |
|
BLAKE2b-256 | 2dc5bb43966bc97368fc7eed9d8a79f0bc7eba8484cf6066f687720b616e957a |
File details
Details for the file graphviz2drawio-1.0.0-py3-none-any.whl
.
File metadata
- Download URL: graphviz2drawio-1.0.0-py3-none-any.whl
- Upload date:
- Size: 40.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a22e5cdd7011520e70d6272211b3592835e06ed268361eefb7cb20aaf547bfdb |
|
MD5 | 063addaa40a3bd462328ec56e2e01ad6 |
|
BLAKE2b-256 | 6ce16fe9913960575366ff5bc97f46832c71228cdf1fed591daaae44a02da194 |