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 = []
|