Возврат ждать Anext (Gen) от функции приводит к исключениюPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Возврат ждать Anext (Gen) от функции приводит к исключению

Сообщение Anonymous »

При рефактории функции перехвата промежуточного программного обеспечения я переместил этот код для получения сеанса DB: < /p>

Код: Выделить всё

if get_async_session in request.app.dependency_overrides:
get_session = request.app.dependency_overrides[get_async_session]
db_session = get_session()
else:
get_session = get_async_session
gen = get_session()
db_session = await anext(gen)
< /code>
в функцию: < /p>
async def get_session_from_request_dependencies_or_generator(
request: Request,
) -> AsyncSession:
if get_async_session in request.app.dependency_overrides:
get_session = request.app.dependency_overrides[get_async_session]
return get_session()
else:
get_session = get_async_session
gen = get_session()
return await anext(gen)
Обратите внимание, что get_async_session является генератором:
async def get_async_session() -> AsyncGenerator[AsyncSession, None]:
async with async_session_maker() as session:
yield session
< /code>
Теперь, когда я запускаю программу, я получаю исключение: < /p>
ERROR:asyncio:Task exception was never retrieved future:


Traceback (most recent call last):
File "/Users/myrto/PythonProjects/iam/.venv/lib/python3.11/site-packages/mm_db/db.py",
line 73, in get_async_session
yield session GeneratorExit
< /code>
Программа все еще работает нормально, несмотря на исключение, но я не думаю, что мы должны просто оставить исключение там. Что я делаю не так? Почему это исключение брошено?>

Подробнее здесь: https://stackoverflow.com/questions/797 ... -exception
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»