https://github.com/sambrightman/asciidag
Draw DAGs (directed acyclic graphs) as ASCII art, à la Git
https://github.com/sambrightman/asciidag
ascii ascii-art dag directed-acyclic-graph gitgraph python python2 python3 tree
Last synced: 6 months ago
JSON representation
Draw DAGs (directed acyclic graphs) as ASCII art, à la Git
- Host: GitHub
- URL: https://github.com/sambrightman/asciidag
- Owner: sambrightman
- License: gpl-2.0
- Created: 2016-09-18T17:31:11.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2022-06-03T20:23:25.000Z (over 3 years ago)
- Last Synced: 2025-04-03T14:44:52.659Z (7 months ago)
- Topics: ascii, ascii-art, dag, directed-acyclic-graph, gitgraph, python, python2, python3, tree
- Language: Python
- Homepage:
- Size: 186 KB
- Stars: 36
- Watchers: 2
- Forks: 8
- Open Issues: 5
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGELOG.rst
- License: LICENSE
Awesome Lists containing this project
README
asciidag - draw DAGs as ASCII art
=================================|build-status| |win-build-status| |coveralls-coverage| |codecov-coverage| |pypi-version| |pypi-wheel|
.. |build-status| image:: https://travis-ci.org/sambrightman/asciidag.svg?branch=master
:target: https://travis-ci.org/sambrightman/asciidag
:alt: Travis CI status.. |win-build-status| image:: https://ci.appveyor.com/api/projects/status/t4dv71xsfcifk8mg/branch/master?svg=true
:target: https://ci.appveyor.com/project/sambrightman/asciidag
:alt: AppVeyor CI status.. |coveralls-coverage| image:: https://coveralls.io/repos/github/sambrightman/asciidag/badge.svg?branch=master
:target: https://coveralls.io/github/sambrightman/asciidag?branch=master
:alt: Coveralls coverage.. |codecov-coverage| image:: https://codecov.io/gh/sambrightman/asciidag/branch/master/graph/badge.svg?token=tHv0ZDOJKA
:target: https://codecov.io/gh/sambrightman/asciidag
:alt: Codecov coverage.. |pypi-version| image:: https://img.shields.io/pypi/v/asciidag
:target: https://pypi.org/project/asciidag/
:alt: PyPI version.. |pypi-wheel| image:: https://img.shields.io/pypi/wheel/asciidag
:alt: PyPI wheelOverview
--------This is a direct port of the `Git`_ log graphing code, which draws
directed acyclic commit graphs as ASCII art. It was done very
mechanically and quickly, so the code is not Pythonic. Dependencies on
`Git`_ specifics should be gone but look and feel remains.This project is alpha quality and subject to breaking API changes.
.. note::
💡
If you are thinking about doing a large refactoring, please submit
an issue for discussion first; I consider it potentially worthwhile
to stay close to the `Git`_ source.Installation
------------Available for install/upgrade from `PyPI`_:
.. code-block:: bash
pip install -U asciidag
As usual, it is best to install your packages into a `virtual environment`_.
Usage
-----``examples/demo.py`` is included in the installation directory and is
executable. The core functionality is:.. code:: python
from asciidag.graph import Graph
from asciidag.node import Node
graph = Graph()
root = Node('root')
grandpa = Node('grandpa', parents=[root])
tips = [
Node('child', parents=[
Node('mom', parents=[
Node('grandma', parents=[
Node('greatgrandma', parents=[]),
]),
grandpa,
]),
Node('dad', parents=[
Node('bill', parents=[
Node('martin'),
Node('james'),
Node('paul'),
Node('jon'),
])]),
Node('stepdad', parents=[grandpa]),
]),
Node('foo', [Node('bar')]),
]
graph.show_nodes(tips)Output:
.. image:: images/demo.png?raw=true
:alt: Demonstration screenshot:copyright: © 2016 Sam Brightman
:license: GNU General Public License v2.0, see LICENSE for more details... _virtual environment: http://docs.python-guide.org/en/latest/dev/virtualenvs
.. _Git: https://git-scm.com
.. _PyPI: https://pypi.python.org