Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Action:
- def handle(self, to_process):
- raise NotImplementedError
- class Yield(Action):
- def __init__(self, item):
- self.item = item
- def handle(self, _to_process):
- yield self.item
- class Extend(Action):
- def __init__(self, iterable):
- self.iterable = iterable
- def handle(self, to_process):
- to_process.extend(self.iterable)
- yield from ()
- def handle(action, to_process):
- if action is not None:
- yield from action.handle(to_process)
- def stack_iter(first, process):
- to_process = [first]
- while to_process:
- yield from handle(process(to_process.pop()), to_process)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement