SkillAgentSearch skills...

Nutree

A Python library for tree data structures with an intuitive, yet powerful API.

Install / Use

/learn @mar10/Nutree
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

logo nutree

Latest Version Tests codecov License Documentation Status Released with: Yabs StackOverflow: nutree

Nutree is a Python library for tree data structures with an intuitive, yet powerful, API.

Nutree Facts

Handle multiple references of single objects ('clones') <br> Search by name pattern, id, or object reference <br> Compare two trees and calculate patches <br> Unobtrusive handling of arbitrary objects <br> Save as DOT file and graphwiz diagram <br> Nodes can be plain strings or objects <br> (De)Serialize to (compressed) JSON <br> Save as Mermaid flow diagram <br> Different traversal methods <br> Generate random trees <br> Convert to RDF graph <br> Fully type annotated <br> Typed child nodes <br> Pretty print <br> Navigation <br> Filtering <br> Fast <br>

Example

A simple tree, with text nodes

from nutree import Tree, Node

tree = Tree("Store")

n = tree.add("Records")

n.add("Let It Be")
n.add("Get Yer Ya-Ya's Out!")

n = tree.add("Books")
n.add("The Little Prince")

tree.print()
Tree<'Store'>
├─── 'Records'
│    ├─── 'Let It Be'
│    ╰─── "Get Yer Ya-Ya's Out!"
╰─── 'Books'
     ╰─── 'The Little Prince'

Tree nodes wrap the data and also expose methods for navigation, searching, iteration, ...

records_node = tree["Records"]
assert isinstance(records_node, Node)
assert records_node.name == "Records"

print(records_node.first_child())
Node<'Let It Be', data_id=510268653885439170>

Nodes may be strings or arbitrary objects:

alice = Person("Alice", age=23, guid="{123-456}")
tree.add(alice)

# Lookup nodes by object, data_id, name pattern, ...
assert isinstance(tree[alice].data, Person)

del tree[alice]

Read the Docs for more.

View on GitHub
GitHub Stars54
CategoryDevelopment
Updated10d ago
Forks4

Languages

Python

Security Score

100/100

Audited on Mar 23, 2026

No findings