def find_path(self, start_el, actual_el, visited_el, queue, direction, el_list, *, is_first): if direction == self.Direction.Horizontal: tmp_direction = actual_el.supplier.row else: tmp_direction = actual_el.receiver.col for el in tmp_direction: if el is start_el and not is_first: return el_list elif el.delta is None and el not in visited_el: tmp_list = list(el_list) tmp_list.append(el) queue.append((el, self.opposing_direction[direction], tmp_list)) visited_el.append(el) return None