Код: Выделить всё
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)
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