fix(deps): явно ставить greenlet в dev-окружении через sqlalchemy[asyncio]

SQLAlchemy не объявляет greenlet без extra asyncio. На arm64 (macOS)
и на Python >= 3.13 greenlet не ставится, и async-движок падает с
"the greenlet library is required". Тест фиксирует наличие greenlet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Andrey Epifancev 2026-10-28 18:11:10 +04:00
parent 2a287480b6
commit b0dcc0b0f5
2 changed files with 12 additions and 1 deletions

View File

@ -3,7 +3,7 @@ uvicorn[standard]==0.30.1
pydantic==2.11.7
pydantic[email]
pydantic-settings==2.10.1
sqlalchemy>=2.0.32,<2.1
sqlalchemy[asyncio]>=2.0.32,<2.1
python-jose[cryptography]==3.3.0
argon2-cffi==23.1.0
python-multipart==0.0.9

View File

@ -0,0 +1,11 @@
import sqlalchemy.util.concurrency as concurrency
def test_greenlet_is_installed_for_async_sqlalchemy():
# Async engine (create_async_engine + run_sync в alembic/env.py) требует greenlet.
# SQLAlchemy не ставит его сам на arm64 и на Python >= 3.13, поэтому зависимость
# объявлена явно через extra sqlalchemy[asyncio] в requirements-dev.txt.
assert concurrency.have_greenlet, (
"greenlet не установлен: async-движок SQLAlchemy не будет работать. "
"Установите зависимости через api/requirements-dev.txt (extra sqlalchemy[asyncio])."
)