colour.utilities.TreeNode#
- class colour.utilities.TreeNode(*args: Any, **kwargs: Any)[source]#
Bases:
object
Represent a basic node supporting the creation of basic node trees.
- Parameters:
- Return type:
Self
Attributes
Methods
Examples
>>> node_a = TreeNode("Node A") >>> node_b = TreeNode("Node B", node_a) >>> node_c = TreeNode("Node C", node_a) >>> node_d = TreeNode("Node D", node_b) >>> node_e = TreeNode("Node E", node_b) >>> node_f = TreeNode("Node F", node_d) >>> node_g = TreeNode("Node G", node_f) >>> node_h = TreeNode("Node H", node_g) >>> [node.name for node in node_a.leaves] ['Node H', 'Node E', 'Node C'] >>> print(node_h.root.name) Node A >>> len(node_a) 7
Return a new instance of the
colour.utilities.Node
class.- static __new__(cls, *args: Any, **kwargs: Any) Self [source]#
Return a new instance of the
colour.utilities.Node
class.
- __init__(name: str | None = None, parent: Self | None = None, children: List[Self] | None = None, data: Any | None = None) None [source]#
- property name: str#
Getter and setter property for the name.
- Parameters:
value – Value to set the name with.
- Returns:
Node name.
- Return type:
- property parent: Self | None#
Getter and setter property for the node parent.
- Parameters:
value – Parent to set the node with.
- Returns:
Node parent.
- Return type:
Node
orNone
- property children: List[Self]#
Getter and setter property for the node children.
- Parameters:
value – Children to set the node with.
- Returns:
Node children.
- Return type:
- property siblings: Generator#
Getter property for the node siblings.
- Returns:
Node siblings.
- Return type:
- __str__() str [source]#
Return a formatted string representation of the node.
- Returns:
Formatted string representation.
- Return type:
class`str`
- __len__() int [source]#
Return the number of children of the node.
- Returns:
Number of children of the node.
- Return type:
- is_root() bool [source]#
Return whether the node is a root node.
- Returns:
Whether the node is a root node.
- Return type:
Examples
>>> node_a = TreeNode("Node A") >>> node_b = TreeNode("Node B", node_a) >>> node_c = TreeNode("Node C", node_b) >>> node_a.is_root() True >>> node_b.is_root() False
- is_inner() bool [source]#
Return whether the node is an inner node.
- Returns:
Whether the node is an inner node.
- Return type:
Examples
>>> node_a = TreeNode("Node A") >>> node_b = TreeNode("Node B", node_a) >>> node_c = TreeNode("Node C", node_b) >>> node_a.is_inner() False >>> node_b.is_inner() True
- is_leaf() bool [source]#
Return whether the node is a leaf node.
- Returns:
Whether the node is a leaf node.
- Return type:
Examples
>>> node_a = TreeNode("Node A") >>> node_b = TreeNode("Node B", node_a) >>> node_c = TreeNode("Node C", node_b) >>> node_a.is_leaf() False >>> node_c.is_leaf() True
- walk_hierarchy(ascendants: bool = False) Generator [source]#
Return a generator used to walk into
colour.utilities.Node
tree.- Parameters:
ascendants (bool) – Whether to walk up the node tree.
- Yields:
Generator – Node tree walker.
- Return type:
Examples
>>> node_a = TreeNode("Node A") >>> node_b = TreeNode("Node B", node_a) >>> node_c = TreeNode("Node C", node_a) >>> node_d = TreeNode("Node D", node_b) >>> node_e = TreeNode("Node E", node_b) >>> node_f = TreeNode("Node F", node_d) >>> node_g = TreeNode("Node G", node_f) >>> node_h = TreeNode("Node H", node_g) >>> for node in node_a.walk_hierarchy(): ... print(node.name) Node B Node D Node F Node G Node H Node E Node C
- render(tab_level: int = 0)[source]#
Render the current node and its children as a string.
- Parameters:
tab_level (int) – Initial indentation level
- Returns:
Rendered node tree.
- Return type:
Examples
>>> node_a = TreeNode("Node A") >>> node_b = TreeNode("Node B", node_a) >>> node_c = TreeNode("Node C", node_a) >>> print(node_a.render()) |----"Node A" |----"Node B" |----"Node C"
- __weakref__#
list of weak references to the object