import sys from typing import Iterator, List, Optional from .. import Middleware, MiddlewareInterface, Engine class TeeEngine(Engine): def execute(self, data): if isinstance(data, Iterator): def _(): for item in data: sys.stdout.write(str(item)) sys.stdout.flush() yield item sys.stdout.write('\n') sys.stdout.flush() ret = _() else: ret = data print(data) return ret