Skip to main content

Print tree in bash manner

Project description

treeviz

Visualize tree structure in bash manner using python

install

pip install treeviz

Structure

.
├── MANIFEST
├── MANIFEST.in
├── README.md
├── setup.py
├── test.py
└── treeviz
    ├── __init__.py
    └── treeviz.py

# showcases of usage
python test.py

Usage

Create Your tree structure

from treeviz.treeviz import Node
root = Node("Jason")
child1 = Node("Mary")
child2 = Node("John")
grandson1 = Node("Kevin")
grandson2 = Node("Doris")
grandson3 = Node("James")
grandson4 = Node("Momo")
grandgrandson1 = Node("Baby")

root.add_child(child1)
root.add_child(child2)
child1.add_child(grandson1)
child1.add_child(grandson2)
child2.add_child(grandson3)
child2.add_child(grandson4)
grandson1.add_child(grandgrandson1)
root.visualize()
Jason
├── Mary
│   ├── Kevin
│   │   └── Baby
│   └── Doris
└── John
    ├── James
    └── Momo

You can also print the sub-tree structure

child1.visualize()
Mary
├── Kevin
│   └── Baby
└── Doris

Two options are provided, to print in terminal or print to file

# print to file
# Giving path as the first parameter
root.visualize(".")

# If path is empty, then print to terminal
root.visualize()

# Default name is treeviz.txt, if the filename already exists, a number will be appended to it.

New Features

(2019.11.1) Adding max_len parameter to visualize(), which splits the message into multiple lines.

from treeviz.treeviz import Node
root = Node("Jason is our grandfather")
child1 = Node("Mary is Kevin's mother")
child2 = Node("John is James and Momo's father")
grandson1 = Node("Kevin")
grandson2 = Node("Doris")
grandson3 = Node("James")
grandson4 = Node("Momo")
grandgrandson1 = Node("Baby")

root.add_child(child1)
root.add_child(child2)
child1.add_child(grandson1)
child1.add_child(grandson2)
child2.add_child(grandson3)
child2.add_child(grandson4)
grandson1.add_child(grandgrandson1)
root.visualize(max_len=10)
Jason is our grandfather
├── Mary is Ke
│   vin's moth
│   er
│   ├── Kevin
│   │   └── Baby
│   └── Doris
└── John is Ja
    mes and Mo
    mo's fathe
    r
    ├── James
    └── Momo

(2019.11.2) Adding line_space parameter to visualize(), which enables to set space between each branch

root.visualize(line_space=2)
Jason is our grandfather
├── Mary is Kevin's mother
│   │
│   │
│   ├── Kevin
│   │   │
│   │   │
│   │   └── Baby
│   │
│   │
│   └── Doris


└── John is James and Momo's father
    │
    │
    ├── James
    │
    │
    └── Momo

(2019.11.4) Adding 'filename' parameter to visualize, which enables users to defince own filename

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

treeviz-1.1.tar.gz (3.3 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page