Когда вы вызываете `Depends` в FastAPI, он возвращает объект `Depends`, который является фабрикой для создания зависимостей. При вызове этой зависимости FastAPI автоматически разрешает зависимость, создавая экземпляр указанного типа и передавая его в зависимость.
В вашем случае, вам нужно разрешить зависимость, чтобы получить сеанс асинхронной сессии. Для этого вам нужно использовать `async with` для получения сеанса асинхронной сессии внутри асинхронного контекстного менеджера `Depends`.
Это можно сделать, изменив ваш код следующим образом:
```python
# Файл 1
async def get_user_server_repo(
session: AsyncSession = Depends(get_async_session),
) -> UserServerRepository:
return UserServerRepository(model=UserServer, session=session)
# Файл 2
engine = create_async_engine(settings.database.DATABASE_URL)
async_session_maker = sessionmaker(
engine,
class_=AsyncSession,
expire_on_commit=False,
)
async def get_async_session() -> AsyncSession:
async with async_session_maker() as session:
yield session
```
Обратите внимание, что я изменил подпись функции `get_user_server_repo` на асинхронную и удалил `Depends`, так как теперь функция сама представляет асинхронный генератор сеанса асинхронной сессии.