Возврат ждать 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>

Ошибка: Asyncio: Исключение задачи никогда не было получено в будущем: () исключитель nelecteTeTemate_athrow. 'Close ()' не может быть вызван здесь; />"/users/myrto/pythonprojects/iam/.venv/lib/python3.11/site-packages/mm_db/db.py",
Line 73, в get_async_session
session generatoarexit
wrinkbotote> мы все еще не должны работать, но мы все еще не должны работать, но мы все еще не должны работать, но мы все еще не должны работать, но мы все еще не должны работать, но мы все еще не должны работать. Исключение там. Что я делаю не так? Почему это исключение брошено?

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

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

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

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

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

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

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