Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def element(self, _type, index=0):
- if isinstance(index, int):
- index = f'{_type.lower()}{index}'
- elif isinstance(index, tuple):
- index = list(index)
- def walk(parent):
- nodes = parent.get_nodes()
- if isinstance(index, int) and index in nodes:
- return nodes[index]
- def get_element(_nodes):
- for node in _nodes.values():
- if node.type == _type and index == node.id:
- return node
- if node.has_children:
- node = walk(node)
- if node:
- return node
- return None
- if not isinstance(index, list) and index in nodes:
- return nodes[index]
- elif isinstance(index, list) and '/' in _type:
- elements = _type.split('/')
- el = self.element(elements[0])
- return el.element(elements[1])
- elif '/' in _type:
- elements = _type.split('/')
- el = self.element(elements[0])
- return el.element(elements[1])
- return get_element(nodes)
- return walk(self)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement