Package concurrent_tree_crawler :: Module simple_dfs_crawler
[hide private]
[frames] | no frames]

Source Code for Module concurrent_tree_crawler.simple_dfs_crawler

 1  from concurrent_tree_crawler.abstract_tree_navigator import \ 
 2          AbstractTreeNavigator 
 3   
4 -class SimpleDFSCrawler:
5 - def __init__(self, navigator):
6 """@type navigator: C{AbstractTreeNavigator}""" 7 self.__navigator = navigator
8
9 - def run(self):
10 self.__navigator.start_in_root() 11 self.__process_current_node()
12
13 - def __process_current_node(self):
14 is_leaf = None 15 try: 16 is_leaf = self.__navigator.process_node_and_check_if_is_leaf() 17 except Exception as _: 18 pass 19 if not is_leaf: 20 children = self.__navigator.get_children() 21 for child in children: 22 self.__navigator.move_to_child(child) 23 self.__process_current_node() 24 self.__navigator.move_to_parent()
25