Fix asyncio.exceptions.CancelledError error
Browse files
utils.py
CHANGED
@@ -78,6 +78,9 @@ async def async_generator(items):
|
|
78 |
for item in items:
|
79 |
yield item
|
80 |
|
|
|
|
|
|
|
81 |
async def error_handling_wrapper(generator, status_code=200):
|
82 |
try:
|
83 |
first_item = await generator.__anext__()
|
@@ -109,12 +112,14 @@ async def error_handling_wrapper(generator, status_code=200):
|
|
109 |
yield ensure_string(item)
|
110 |
except httpx.RemoteProtocolError as e:
|
111 |
logger.error(f"Remote protocol error occurred: {e}")
|
112 |
-
raise
|
113 |
|
114 |
return new_generator()
|
115 |
|
116 |
except StopAsyncIteration:
|
117 |
raise HTTPException(status_code=status_code, detail="data: {'error': 'No data returned'}")
|
|
|
|
|
118 |
|
119 |
def post_all_models(token, config, api_list):
|
120 |
all_models = []
|
|
|
78 |
for item in items:
|
79 |
yield item
|
80 |
|
81 |
+
class GeneratorStopError(Exception):
|
82 |
+
pass
|
83 |
+
|
84 |
async def error_handling_wrapper(generator, status_code=200):
|
85 |
try:
|
86 |
first_item = await generator.__anext__()
|
|
|
112 |
yield ensure_string(item)
|
113 |
except httpx.RemoteProtocolError as e:
|
114 |
logger.error(f"Remote protocol error occurred: {e}")
|
115 |
+
raise GeneratorStopError("Generator stopped due to remote protocol error")
|
116 |
|
117 |
return new_generator()
|
118 |
|
119 |
except StopAsyncIteration:
|
120 |
raise HTTPException(status_code=status_code, detail="data: {'error': 'No data returned'}")
|
121 |
+
except GeneratorStopError:
|
122 |
+
raise HTTPException(status_code=status_code, detail="data: {'error': 'No data returned'}")
|
123 |
|
124 |
def post_all_models(token, config, api_list):
|
125 |
all_models = []
|