Spaces:
Running
Running
| from __future__ import annotations | |
| def normalize_async_database_url(value: str) -> str: | |
| """Use the installed asyncpg dialect for bare PostgreSQL URLs. | |
| Operators frequently supply a standard ``postgresql://`` URL. SQLAlchemy | |
| otherwise selects synchronous psycopg2 for that form, which fails inside | |
| this async application and can tempt deployments to add an unnecessary | |
| synchronous driver. Explicit dialect URLs remain unchanged. | |
| """ | |
| normalized = value.strip() | |
| if normalized.startswith("postgresql://"): | |
| return "postgresql+asyncpg://" + normalized.removeprefix("postgresql://") | |
| if normalized.startswith("postgres://"): | |
| return "postgresql+asyncpg://" + normalized.removeprefix("postgres://") | |
| return normalized | |