コード例 #1
0
    def traverse_up_down(self, proc):
        # TODO: infinite recursion prevention
        parent_process_id = get_parent_process_id(proc)
        process_id = get_process_id(proc)

        total = []
        # get parents
        if parent_process_id:
            total.extend(self.traverse_up(parent_process_id))

        total.extend(self.traverse_down(process_id))

        for proc in total:
            yield proc
コード例 #2
0
    def traverse_up(self, guid):
        # TODO: this prompts a larger issue of - how do we handle process segments?
        total = []

        for proc in self.input.get_process_docs('unique_id:%s' % (guid,)):
            process_id = get_process_id(proc)
            if process_id not in self.input_proc_guids:
                self.input_proc_guids.add(process_id)
                total.append(proc)

            parent_process_id = get_parent_process_id(proc)
            if parent_process_id and parent_process_id not in self.input_proc_guids:
                total.extend(self.traverse_up(parent_process_id))

        return total