ascii2graph
Converts ASCII text to a graph (represented as a dictionary of connections and angles). It can represent directed and undirected graphs.
Installation
$ pip install ascii2graph
Example
from ascii2graph import graph
text = r'''
a->boo
^ | x
| v /
c<--d-e
| |
f-g'''
result = graph(text)
print(result)
This produces the following graph (dictionary):
result = {(1, 4, 'a'): [(1, 7, 'boo', 90)],
(4, 4, 'c'): [(1, 4, 'a', 0)],
(4, 8, 'd'): [(4, 4, 'c', 270), (4, 10, 'e', 90), (6, 8, 'f', 180)],
(4, 10, 'e'): [(2, 12, 'x', 45), (4, 8, 'd', 270), (6, 10, 'g', 180)],
(2, 12, 'x'): [(4, 10, 'e', 225)],
(6, 8, 'f'): [(6, 10, 'g', 90), (4, 8, 'd', 0)],
(6, 10, 'g'): [(6, 8, 'f', 270), (4, 10, 'e', 0)],
(1, 7, 'boo'): [(4, 8, 'd', 180)]}
Nodes can be anything that is not one of these characters:
- | / \ v ^ < >
There is one exception (sorry!): If "/" is part of [sometext/foo], then it is not interpreted
as an edge. The reason is that I needed this to visualize Git branches and Git history where I needed
[origin/somebranch].
Use case
I use it in https://github.com/bast/gitink to create SVG graphics for teaching Git DAGs from plain text files because it is so easy to change a text file and simply generate a new SVG image. This module helps me to obtain a graph representation that I can use somewhere else to generate graphics.
Metadata
Release files for ascii2graph 0.3.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ascii2graph-0.3.3.tar.gz | 10.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ascii2graph-0.3.3-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details |
Total release size: 20.5 kB
Release files / ascii2graph-0.3.3.tar.gz
| Download URL | ascii2graph-0.3.3.tar.gz |
|---|---|
| Size | 10.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3214dc0f0ee057dcc5c6ab9b67dc8bb912954680d6515eb01747f770417159bc
|
|
BLAKE2b-256 checksum How to use checksums |
cfbf2f4a38e3fc6079442ae1591fa78a90f6a6315ed346c75a9b0774a68877ed
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
python-requests/2.31.0
|
Release files / ascii2graph-0.3.3-py2.py3-none-any.whl
| Download URL | ascii2graph-0.3.3-py2.py3-none-any.whl |
|---|---|
| Size | 10.5 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
28b84afffdd9dd4a379ea66bd8d7238238076e720e5a22d3221af5641a78036c
|
|
BLAKE2b-256 checksum How to use checksums |
04a20e55ec2e24fbd9710cd85e9d6cef915a5e8b66f6b96b8ae73b5fdab65e46
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
python-requests/2.31.0
|