def parser(generator_func: typing.Callable) -> typing.Callable: "decorator function to wrap a generator" def create_parser(*args, **kwargs) -> Parser: return Parser(generator_func(*args, **kwargs)) generator_func.parser = create_parser return generator_func