Skip to main content

image image PyPI badge

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)

Source distribution for ascii2graph 0.3.3
File Size Uploaded
ascii2graph-0.3.3.tar.gz 10.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ascii2graph 0.3.3
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.3.3 This release

2 release files

0.3.2

2 release files

0.3.1

1 release file

0.3.0

1 release file

0.2.0

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