def get_all_lanes(self):
done = set()<EOL>lanes = set()<EOL>def recursive_find(task_spec):<EOL><INDENT>if task_spec in done:<EOL><INDENT>return<EOL><DEDENT>done.add(task_spec)<EOL>if hasattr(task_spec, '<STR_LIT>') and task_spec.lane:<EOL><INDENT>lanes.add(task_spec.lane)<EOL><DEDENT>if hasattr(task_spec, '<STR_LIT>'):<EOL><INDENT>recursive_find(task_spec.spec.start)<EOL><DEDENT>for t in task_spec.outputs:<EOL><INDENT>recursive_find(t)<EOL><DEDENT><DEDENT>recursive_find(self.start)<EOL>return lanes<EOL>
Returns a set of the distinct lane names used in the process (including
called activities)