treevalue.tree.common¶
BaseTree¶
-
class
treevalue.tree.common.base.
BaseTree
[source]¶ - Overview:
Base abstract structure of a tree data class.
-
abstract
__delitem__
(key)[source]¶ - Overview:
Delete item from this tree node.
- Arguments:
key (
str
): Key of the sub tree node.
- Example:
>>> t = Tree({'a': 1, 'b': 2, 'x': {'c': 3, 'd': 4}}) >>> del t['a'] >>> t # Tree({'b': 2, 'x': {'c': 3, 'd': 4}}) >>> del t['x']['c'] >>> t # Tree({'b': 2, 'x': {'d': 4}})
-
abstract
__getitem__
(key)[source]¶ - Overview:
Get item from this tree node, raw value and tree node returns.
- Arguments:
key (
str
): Key of the sub tree node.
- Returns:
return (
Any
): Tree node or raw value (if the sub node is value node).
- Example:
>>> t = Tree({'a': 1, 'b': 2, 'x': {'c': 3, 'd': 4}}) >>> t['a'] # 1 >>> t['x'] # Tree({'c': 3, 'd': 4}) >>> t['x']['c'] # 3
-
abstract
__setitem__
(key, value)[source]¶ - Overview:
Set item to this tree node, raw value and tree node supported.
- Arguments:
key (
str
): Key of the sub tree node.value (
Any
): Given mode or value to be set.
- Example:
>>> t = Tree({'a': 1, 'b': 2, 'x': {'c': 3, 'd': 4}}) >>> t['a'] = 3 >>> t # Tree({'a': 3, 'b': 2, 'x': {'c': 3, 'd': 4}}) >>> t['x']['e'] = 10 >>> t # Tree({'a': 3, 'b': 2, 'x': {'c': 3, 'd': 4, 'e': 10}})
-
__str__
()[source]¶ - Overview:
Return tree-formatted string.
- Returns:
string (
str
): Tree-formatted string.
- Example:
>>> t = Tree({'a': 1, 'b': 2, 'x': {'c': 3, 'd': 4}, 'z': [1, 2], 'v': raw({'1': '2'})}) >>> print(t)
The output will be
>>> <Tree 0x7f9fa48b9588 keys: ['a', 'b', 'v', 'x', 'z']> >>> ├── 'a' --> 1 >>> ├── 'b' --> 2 >>> ├── 'v' --> {'1': '2'} >>> ├── 'x' --> <Tree 0x7f9fa48b95c0 keys: ['c', 'd']> >>> │ ├── 'c' --> 3 >>> │ └── 'd' --> 4 >>> └── 'z' --> [1, 2]
-
abstract
actual
()[source]¶ - Overview:
Get actual tree node of current tree object. If this is a Tree object, just return itself. If this is a TreeView object, it will return the actually viewed tree node.
- Returns:
actual (
Tree
): Actual tree node.
-
abstract
clone
(copy_value: Union[None, bool, Callable, Any] = None)[source]¶ - Overview:
Fully clone this tree.
- Arguments:
copy_value (
Union[None, bool, Callable, Any]
): Deep copy value or not, default is None which means do not deep copy the values. If deep copy is required, just set it to True.
- Returns:
cloned (
Tree
): Cloned new tree.
- Example:
>>> t = Tree({'a': 1, 'b': 2, 'x': {'c': 3, 'd': 4}}) >>> t2 = t.clone() >>> t2 # Tree({'a': 1, 'b': 2, 'x': {'c': 3, 'd': 4}}) >>> t2 is t # False >>> t2['x'] is t['x'] # False
-
abstract
items
()[source]¶ - Overview:
Get item iterator of this tree node.
- Returns:
iter (
iter
): Item iterator of this tree node.
- Example:
>>> t = Tree({'a': 1, 'b': 2, 'x': {'c': 3, 'd': 4}}) >>> for key, value in t.items(): >>> print(key, value)
The output should be
>>> a 1 >>> b 2 >>> x <Tree 0x7f74f6daaf60 keys: ['c', 'd']>
-
json
()[source]¶ - Overview:
Get full json data of this tree.
- Returns:
json (
dict
): Json data
- Example:
>>> t = Tree({'a': 1, 'b': 2, 'x': {'c': 3, 'd': 4}}) >>> t.json() # {'a': 1, 'b': 2, 'x': {'c': 3, 'd': 4}}
-
abstract
keys
()[source]¶ - Overview:
Get key iterator of this tree node.
- Returns:
iter (
iter
): Key iterator of this tree node.
- Example:
>>> t = Tree({'a': 1, 'b': 2, 'x': {'c': 3, 'd': 4}}) >>> for key in t.keys(): >>> print(key)
The output should be
>>> a >>> b >>> x
-
abstract
values
()[source]¶ - Overview:
Get value iterator of this tree node.
- Returns:
iter (
iter
): Value iterator of this tree node.
- Example:
>>> t = Tree({'a': 1, 'b': 2, 'x': {'c': 3, 'd': 4}}) >>> for value in t.values(): >>> print(value)
The output should be
>>> 1 >>> 2 >>> <Tree 0x7f74f6daaf60 keys: ['c', 'd']>
-
abstract
view
(path: List[str])[source]¶ - Overview:
Get view of the current tree.
- Arguments:
path (
List[str]
): Viewing path.
- Returns:
viewed_tree (
TreeView
): Viewed tree.
- Example:
>>> t = Tree({'a': 1, 'b': 2, 'x': {'c': 3, 'd': 4}}) >>> t1 = t['x'] >>> t2 = t.view(["x"]) >>> >>> t1['c'] # 3 >>> t2['c'] # 3 >>> >>> t.x = Tree({'c': 5, 'd': 6}) >>> t1['c'] # 3 >>> t2['c'] # 5
Tree¶
-
class
treevalue.tree.common.tree.
Tree
(*args, **kwargs)[source]¶ - Overview:
Tree node data model, based on BaseTree.
-
__delitem__
(key)[source]¶ - Overview:
Delete item from this tree node.
- Arguments:
key (
str
): Key of the sub tree node.
- Example:
>>> t = Tree({'a': 1, 'b': 2, 'x': {'c': 3, 'd': 4}}) >>> del t['a'] >>> t # Tree({'b': 2, 'x': {'c': 3, 'd': 4}}) >>> del t['x']['c'] >>> t # Tree({'b': 2, 'x': {'d': 4}})
-
__eq__
(other)¶ Return self==value.
-
__getitem__
(key)[source]¶ - Overview:
Get item from this tree node, raw value and tree node returns.
- Arguments:
key (
str
): Key of the sub tree node.
- Returns:
return (
Any
): Tree node or raw value (if the sub node is value node).
- Example:
>>> t = Tree({'a': 1, 'b': 2, 'x': {'c': 3, 'd': 4}}) >>> t['a'] # 1 >>> t['x'] # Tree({'c': 3, 'd': 4}) >>> t['x']['c'] # 3
-
__hash__
()¶ Return hash(self).
-
__init__
(data: Union[Dict[str, Union[Tree, Any]], Tree])[source]¶ - Overview:
Constructor of Tree, can be dict, Tree, TreeView. When dict passed in, a new tree structure will be created once. When Tree or TreeView passed in, a fully copy will be constructed in this object.
- Arguments:
data (
Union[Dict[str, Union['Tree', Any]], 'Tree']
): Any data can be parsed into Tree.
- Example:
>>> t = Tree({'a': 1, 'b': 2, 'x': {'c': 3, 'd': 4}}) # t is a new tree structure >>> t2 = Tree(t) # t2 is a full copy of t1 >>> t3 = Tree({'a': t, 'b': t2}) # t3 is a tree with subtree of t and t2 (not copy)
-
__repr__
()¶ Return repr(self).
-
__setitem__
(key, value)[source]¶ - Overview:
Set item to this tree node, raw value and tree node supported.
- Arguments:
key (
str
): Key of the sub tree node.value (
Any
): Given mode or value to be set.
- Example:
>>> t = Tree({'a': 1, 'b': 2, 'x': {'c': 3, 'd': 4}}) >>> t['a'] = 3 >>> t # Tree({'a': 3, 'b': 2, 'x': {'c': 3, 'd': 4}}) >>> t['x']['e'] = 10 >>> t # Tree({'a': 3, 'b': 2, 'x': {'c': 3, 'd': 4, 'e': 10}})
-
__str__
()¶ - Overview:
Return tree-formatted string.
- Returns:
string (
str
): Tree-formatted string.
- Example:
>>> t = Tree({'a': 1, 'b': 2, 'x': {'c': 3, 'd': 4}, 'z': [1, 2], 'v': raw({'1': '2'})}) >>> print(t)
The output will be
>>> <Tree 0x7f9fa48b9588 keys: ['a', 'b', 'v', 'x', 'z']> >>> ├── 'a' --> 1 >>> ├── 'b' --> 2 >>> ├── 'v' --> {'1': '2'} >>> ├── 'x' --> <Tree 0x7f9fa48b95c0 keys: ['c', 'd']> >>> │ ├── 'c' --> 3 >>> │ └── 'd' --> 4 >>> └── 'z' --> [1, 2]
-
actual
()[source]¶ - Overview:
Get actual tree node of current tree object. If this is a Tree object, just return itself. If this is a TreeView object, it will return the actually viewed tree node.
- Returns:
actual (
Tree
): Actual tree node.
-
clone
(copy_value: Union[None, bool, Callable, Any] = None)[source]¶ - Overview:
Fully clone this tree.
- Arguments:
copy_value (
Union[None, bool, Callable, Any]
): Deep copy value or not, default is None which means do not deep copy the values. If deep copy is required, just set it to True.
- Returns:
cloned (
Tree
): Cloned new tree.
- Example:
>>> t = Tree({'a': 1, 'b': 2, 'x': {'c': 3, 'd': 4}}) >>> t2 = t.clone() >>> t2 # Tree({'a': 1, 'b': 2, 'x': {'c': 3, 'd': 4}}) >>> t2 is t # False >>> t2['x'] is t['x'] # False
-
items
()[source]¶ - Overview:
Get item iterator of this tree node.
- Returns:
iter (
iter
): Item iterator of this tree node.
- Example:
>>> t = Tree({'a': 1, 'b': 2, 'x': {'c': 3, 'd': 4}}) >>> for key, value in t.items(): >>> print(key, value)
The output should be
>>> a 1 >>> b 2 >>> x <Tree 0x7f74f6daaf60 keys: ['c', 'd']>
-
json
()¶ - Overview:
Get full json data of this tree.
- Returns:
json (
dict
): Json data
- Example:
>>> t = Tree({'a': 1, 'b': 2, 'x': {'c': 3, 'd': 4}}) >>> t.json() # {'a': 1, 'b': 2, 'x': {'c': 3, 'd': 4}}
-
keys
()[source]¶ - Overview:
Get key iterator of this tree node.
- Returns:
iter (
iter
): Key iterator of this tree node.
- Example:
>>> t = Tree({'a': 1, 'b': 2, 'x': {'c': 3, 'd': 4}}) >>> for key in t.keys(): >>> print(key)
The output should be
>>> a >>> b >>> x
-
values
()[source]¶ - Overview:
Get value iterator of this tree node.
- Returns:
iter (
iter
): Value iterator of this tree node.
- Example:
>>> t = Tree({'a': 1, 'b': 2, 'x': {'c': 3, 'd': 4}}) >>> for value in t.values(): >>> print(value)
The output should be
>>> 1 >>> 2 >>> <Tree 0x7f74f6daaf60 keys: ['c', 'd']>
-
view
(path: List[str])[source]¶ - Overview:
Get view of the current tree.
- Arguments:
path (
List[str]
): Viewing path.
- Returns:
viewed_tree (
TreeView
): Viewed tree.
- Example:
>>> t = Tree({'a': 1, 'b': 2, 'x': {'c': 3, 'd': 4}}) >>> t1 = t['x'] >>> t2 = t.view(["x"]) >>> >>> t1['c'] # 3 >>> t2['c'] # 3 >>> >>> t.x = Tree({'c': 5, 'd': 6}) >>> t1['c'] # 3 >>> t2['c'] # 5
raw¶
-
treevalue.tree.common.tree.
raw
(value) → treevalue.tree.common.tree._RawWrapped[source]¶ - Overview:
Wrap raw value to init tree or set item, can be used for dict. Can only performs when value is a dict object, otherwise just return the original value.
- Arguments:
value (:obj:): Original value.
- Returns:
wrapped (
_RawWrapped
): Wrapped value.
- Example:
>>> t = Tree({ >>> 'a': raw({'a': 1, 'b': 2}), >>> 'b': raw({'a': 3, 'b': 4}), >>> 'x': { >>> 'c': raw({'a': 5, 'b': 6}), >>> 'd': raw({'a': 7, 'b': 8}), >>> } >>> }) >>> >>> t['a'] # {'a': 1, 'b': 2} >>> t['b'] # {'a': 3, 'b': 4} >>> t['x']['c'] # {'a': 5, 'b': 6} >>> t['x']['d'] # {'a': 7, 'b': 8} >>> >>> t['a'] = raw({'a': 9, 'b': 10}) >>> t['a'] # {'a': 9, 'b': 10} >>> t['a'] = {'a': 9, 'b': 10} >>> t['a'] # should be a Tree object when raw not used
TreeView¶
-
class
treevalue.tree.common.view.
TreeView
(tree: treevalue.tree.common.tree.Tree, path: List[str])[source]¶ - Overview:
Tree view data model, based on BaseTree.
-
__delitem__
(key)[source]¶ - Overview:
Delete item from this tree node.
- Arguments:
key (
str
): Key of the sub tree node.
- Example:
>>> t = Tree({'a': 1, 'b': 2, 'x': {'c': 3, 'd': 4}}) >>> del t['a'] >>> t # Tree({'b': 2, 'x': {'c': 3, 'd': 4}}) >>> del t['x']['c'] >>> t # Tree({'b': 2, 'x': {'d': 4}})
-
__eq__
(other)¶ Return self==value.
-
__getitem__
(key)[source]¶ - Overview:
Get item from this tree node, raw value and tree node returns.
- Arguments:
key (
str
): Key of the sub tree node.
- Returns:
return (
Any
): Tree node or raw value (if the sub node is value node).
- Example:
>>> t = Tree({'a': 1, 'b': 2, 'x': {'c': 3, 'd': 4}}) >>> t['a'] # 1 >>> t['x'] # Tree({'c': 3, 'd': 4}) >>> t['x']['c'] # 3
-
__hash__
()¶ Return hash(self).
-
__init__
(tree: treevalue.tree.common.tree.Tree, path: List[str])[source]¶ - Overview:
Constructor of TreeValue.
- Arguments:
tree (
Tree
): Based tree.path (
List[str]
): Viewing path.
- Example:
>>> t = Tree({'a': 1, 'b': 2, 'x': {'c': 3, 'd': 4}}) >>> tv = t.view(["x"]) # tv should be equal to Tree({'c': 3, 'd': 4}) >>> t['x'] = Tree({'c': 5, 'd': 6}) >>> tv # tv should be equal to Tree({'c': 5, 'd': 6})
-
__repr__
()¶ Return repr(self).
-
__setitem__
(key, value)[source]¶ - Overview:
Set item to this tree node, raw value and tree node supported.
- Arguments:
key (
str
): Key of the sub tree node.value (
Any
): Given mode or value to be set.
- Example:
>>> t = Tree({'a': 1, 'b': 2, 'x': {'c': 3, 'd': 4}}) >>> t['a'] = 3 >>> t # Tree({'a': 3, 'b': 2, 'x': {'c': 3, 'd': 4}}) >>> t['x']['e'] = 10 >>> t # Tree({'a': 3, 'b': 2, 'x': {'c': 3, 'd': 4, 'e': 10}})
-
__str__
()¶ - Overview:
Return tree-formatted string.
- Returns:
string (
str
): Tree-formatted string.
- Example:
>>> t = Tree({'a': 1, 'b': 2, 'x': {'c': 3, 'd': 4}, 'z': [1, 2], 'v': raw({'1': '2'})}) >>> print(t)
The output will be
>>> <Tree 0x7f9fa48b9588 keys: ['a', 'b', 'v', 'x', 'z']> >>> ├── 'a' --> 1 >>> ├── 'b' --> 2 >>> ├── 'v' --> {'1': '2'} >>> ├── 'x' --> <Tree 0x7f9fa48b95c0 keys: ['c', 'd']> >>> │ ├── 'c' --> 3 >>> │ └── 'd' --> 4 >>> └── 'z' --> [1, 2]
-
actual
()[source]¶ - Overview:
Get actual tree node of current tree object. If this is a Tree object, just return itself. If this is a TreeView object, it will return the actually viewed tree node.
- Returns:
actual (
Tree
): Actual tree node.
-
clone
(copy_value: Union[None, bool, Callable, Any] = None)[source]¶ - Overview:
Fully clone this tree.
- Arguments:
copy_value (
Union[None, bool, Callable, Any]
): Deep copy value or not, default is None which means do not deep copy the values. If deep copy is required, just set it to True.
- Returns:
cloned (
Tree
): Cloned new tree.
- Example:
>>> t = Tree({'a': 1, 'b': 2, 'x': {'c': 3, 'd': 4}}) >>> t2 = t.clone() >>> t2 # Tree({'a': 1, 'b': 2, 'x': {'c': 3, 'd': 4}}) >>> t2 is t # False >>> t2['x'] is t['x'] # False
-
items
()[source]¶ - Overview:
Get item iterator of this tree node.
- Returns:
iter (
iter
): Item iterator of this tree node.
- Example:
>>> t = Tree({'a': 1, 'b': 2, 'x': {'c': 3, 'd': 4}}) >>> for key, value in t.items(): >>> print(key, value)
The output should be
>>> a 1 >>> b 2 >>> x <Tree 0x7f74f6daaf60 keys: ['c', 'd']>
-
json
()¶ - Overview:
Get full json data of this tree.
- Returns:
json (
dict
): Json data
- Example:
>>> t = Tree({'a': 1, 'b': 2, 'x': {'c': 3, 'd': 4}}) >>> t.json() # {'a': 1, 'b': 2, 'x': {'c': 3, 'd': 4}}
-
keys
()[source]¶ - Overview:
Get key iterator of this tree node.
- Returns:
iter (
iter
): Key iterator of this tree node.
- Example:
>>> t = Tree({'a': 1, 'b': 2, 'x': {'c': 3, 'd': 4}}) >>> for key in t.keys(): >>> print(key)
The output should be
>>> a >>> b >>> x
-
values
()[source]¶ - Overview:
Get value iterator of this tree node.
- Returns:
iter (
iter
): Value iterator of this tree node.
- Example:
>>> t = Tree({'a': 1, 'b': 2, 'x': {'c': 3, 'd': 4}}) >>> for value in t.values(): >>> print(value)
The output should be
>>> 1 >>> 2 >>> <Tree 0x7f74f6daaf60 keys: ['c', 'd']>
-
view
(path: List[str])[source]¶ - Overview:
Get view of the current tree.
- Arguments:
path (
List[str]
): Viewing path.
- Returns:
viewed_tree (
TreeView
): Viewed tree.
- Example:
>>> t = Tree({'a': 1, 'b': 2, 'x': {'c': 3, 'd': 4}}) >>> t1 = t['x'] >>> t2 = t.view(["x"]) >>> >>> t1['c'] # 3 >>> t2['c'] # 3 >>> >>> t.x = Tree({'c': 5, 'd': 6}) >>> t1['c'] # 3 >>> t2['c'] # 5