Skip to main content

Powerful and Lightweight Python Tree Data Structure with various plugins.

Project description

https://badge.fury.io/py/anytree.svg https://travis-ci.org/c0fec0de/anytree.svg?branch=master https://coveralls.io/repos/github/c0fec0de/anytree/badge.svg https://readthedocs.org/projects/anytree/badge/?version=latest

anytree

Powerful and Lightweight Python Tree Data Structure with various plugins.

Documentation

The Documentation is hosted on http://anytree.readthedocs.io/en/latest/

Getting started

Usage is simple.

Construction

>>> from anytree import Node, RenderTree
>>> udo = Node("Udo")
>>> marc = Node("Marc", parent=udo)
>>> lian = Node("Lian", parent=marc)
>>> dan = Node("Dan", parent=udo)
>>> jet = Node("Jet", parent=dan)
>>> jan = Node("Jan", parent=dan)
>>> joe = Node("Joe", parent=dan)

Node

>>> print(udo)
Node('Udo')
>>> print(joe)
Node('Udo/Dan/Joe')

Tree

>>> for pre, fill, node in RenderTree(udo):
...     print("%s%s" % (pre, node.name))
Udo
├── Marc
│   └── Lian
└── Dan
    ├── Jet
    ├── Jan
    └── Joe

Manipulation

A second tree:

>>> mary = Node("Mary")
>>> urs = Node("Urs", parent=mary)
>>> chris = Node("Chris", parent=mary)
>>> marta = Node("Marta", parent=mary)
>>> print(RenderTree(mary))
Node('Mary')
├── Node('Mary/Urs')
├── Node('Mary/Chris')
└── Node('Mary/Marta')

Append:

>>> udo.parent = mary
>>> print(RenderTree(mary))
Node('Mary')
├── Node('Mary/Urs')
├── Node('Mary/Chris')
├── Node('Mary/Marta')
└── Node('Mary/Udo')
    ├── Node('Mary/Udo/Marc')
    │   └── Node('Mary/Udo/Marc/Lian')
    └── Node('Mary/Udo/Dan')
        ├── Node('Mary/Udo/Dan/Jet')
        ├── Node('Mary/Udo/Dan/Jan')
        └── Node('Mary/Udo/Dan/Joe')

Subtree rendering:

>>> print(RenderTree(marc))
Node('Mary/Udo/Marc')
└── Node('Mary/Udo/Marc/Lian')

Cut:

>>> dan.parent = None
>>> print(RenderTree(dan))
Node('Dan')
├── Node('Dan/Jet')
├── Node('Dan/Jan')
└── Node('Dan/Joe')

Installation

To install the anytree module run:

pip install anytree

If you do not have write-permissions to the python installation, try:

pip install anytree --user

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

anytree-1.0.0.tar.gz (6.6 kB view details)

Uploaded Source

File details

Details for the file anytree-1.0.0.tar.gz.

File metadata

  • Download URL: anytree-1.0.0.tar.gz
  • Upload date:
  • Size: 6.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for anytree-1.0.0.tar.gz
Algorithm Hash digest
SHA256 f4589a55066af7db6efa6e269ae30521b5f8a5e69f8335bf0d6d8ed74f40168a
MD5 ae192e6a574fb6b43cb83abf68f06af2
BLAKE2b-256 2f0d06a6a1b42979e3b05ed551e5eac6fb57717fcbb84f496fc92ebe98e5ccc0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page