yym68686 commited on
Commit
2af508a
·
1 Parent(s): 82cedb5

Fix asyncio.exceptions.CancelledError error

Browse files
Files changed (1) hide show
  1. utils.py +6 -1
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 StopAsyncIteration
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 = []