def add_node(self, node, parent=None):
        # check if the widget is "ok" for a node
        if not isinstance(node, TreeViewNode):
            raise TreeViewException(
                'The node must be a subclass of TreeViewNode')
        # create node
        if parent is None and self._root:
            parent = self._root
        if parent:
            parent.is_leaf = False
            parent.nodes.append(node)
            node.parent_node = parent
            node.level = parent.level + 1
        node.fbind('size', self._trigger_layout)
        self._trigger_layout()
        return node
Attach a Tuple[3] stream to the JSON representation. Also calculates the min and max range.
dataset/ETHPy150Open kivy/kivy/kivy/uix/treeview.py/TreeView.add_node--crossover with--dataset/ETHPy150Open turbulenz/turbulenz_tools/turbulenz_tools/tools/asset2json.py/JsonAsset.__attach_v3