asyncpg
asyncpg copied to clipboard
Compatibility Issue with asyncpg 0.30.0 in Gino 1.0.1
- asyncpg version: 0.30.0
- PostgreSQL version: 16.1
- Do you use a PostgreSQL SaaS? If so, which? Can you reproduce the issue with a local PostgreSQL install?: No
- Python version: 3.13
- Platform: MacOS
- Do you use pgbouncer?: No
- Did you install asyncpg with pip?: Yes
- If you built asyncpg locally, which version of Cython did you use?:
- Can the issue be reproduced under both asyncio and uvloop?: Yes
Hi there! I am using gino 1.0.1 and unfortunately, this project is no longer being updated. For migrating to Python 3.13 I install asyncpg 0.30.0 and found, that gino (await Model.insert().gino.all([{...}, {...}])] can't work with current version. Issue occurs when calling bind_execute_many Gino expects 4 arguments, but in version 0.30.0, a new argument return_rows was added.
How to gino using asyncpg:
def executor(state, timeout_):
if many:
return _protocol.bind_execute_many(state, args, "", timeout_)
else:
return _protocol.bind_execute(state, args, "", limit, True, timeout_)
My suggestion: add True as the default value for the return_rows argument:
async def bind_execute_many(
self,
state: PreparedStatementState,
args,
portal_name: str,
timeout,
return_rows: bool = True,
)