22 lines
673 B
Python
22 lines
673 B
Python
from inspect import isasyncgen,isgenerator
|
|
|
|
from baid_spider.utils.execptions import TransformTypeError
|
|
|
|
|
|
async def transform(func_result):
|
|
if isgenerator(func_result):
|
|
try:
|
|
for r in func_result:
|
|
yield r
|
|
except Exception:
|
|
print("同步生成器迭代过程发生异常")
|
|
raise
|
|
elif isasyncgen(func_result):
|
|
try:
|
|
async for r in func_result:
|
|
yield r
|
|
except Exception:
|
|
print("异步生成器迭代过程发生异常")
|
|
raise
|
|
else:
|
|
raise TransformTypeError('callback return value must be `generator` or `async generator`') |