in debug.py [0:0]
def log_stream(message: str) -> processor.Processor:
"""Return a function that logs every part of a stream."""
@processor.processor_function
async def p(
content: AsyncIterable[ProcessorPart],
) -> AsyncIterable[ProcessorPart]:
async for part in content:
logging.info('%s: %s', message, debug_string(part))
yield part
logging.info('%s: done', message)
return p