Asyncpg

Latest version: v0.30.0

Safety actively analyzes 710821 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 6

0.30.0

Support Python 3.13 and PostgreSQL 17.

Improvements
============

* Implement GSSAPI authentication
(by eltoder in 1d4e5680 for 1122)

* Implement SSPI authentication
(by eltoder in 1aab2094 for 1128)

* Add initial typings
(by bryanforbes in d42432bf for 1127)

* Allow building with Cython 3
(by musicinmybrain in 258d8a95 for 1101)

* docs: fix connection pool close call (1125)
(by paulovitorweb in e8488149 for 1125)

* Add support for the `sslnegotiation` parameter
(by elprans in afdb05c7 for 1187)

* Test and build on Python 3.13
(by elprans in 3aa98944 for 1188)

* Support PostgreSQL 17
(by elprans in cee97e1a for 1189)
(by MeggyCal in aa2d0e69 for 1185)

* Add `fetchmany` to execute many *and* return rows
(by rossmacarthur in 73f2209d for 1175)

* Add `connect` kwarg to Pool to better support GCP's CloudSQL
(by d1manson in 3ee19baa for 1170)

* Allow customizing connection state reset (1191)
(by elprans in f6ec755c for 1191)

Fixes
=====

* s/quote/quote_plus/ in the note about DSN part quoting
(by elprans in 1194a8a6 for 1151)

* Use asyncio.run() instead of run_until_complete()
(by eltoder in 9fcddfc1 for 1140)

* Require async_timeout for python < 3.11 (1177)
(by Pliner in 327f2a7a for 1177)

* Allow testing with uvloop on Python 3.12 (1182)
(by musicinmybrain in 597fe541 for 1182)

* Mark pool-wrapped connection coroutine methods as coroutines
(by elprans in 636420b1 for 1134)

* handle `None` parameters in `copy_from_query`, returning `NULL`
(by fobispotc in 259d16e5 for 1180)

* fix: return the pool from _async_init__ if it's already initialized (1104)
(by guacs in 7dc58728 for 1104)

* Replace obsolete, unsafe `Py_TRASHCAN_SAFE_BEGIN/END` (1150)
(by musicinmybrain in 11101c6e for 1150)

0.29.0

Minor fixes and improvements.

Improvements
============

* Python 3.12 and PostgreSQL 16 support (1084)
(by elprans in deea86ce)

* Add support for tuple-format custom codecs on composite types (1061)
(by elprans in 922fcd10)

* Support `target_session_attrs` in URL format, add tests (1073)
(by elprans in 7cb4e70d)

* Infinity numeric support (1067)
(by krokoziabla in 0c3bf600 for 1020)

* Add support for the `WHERE` clause in `copy_to` methods (941)
(by kaylynn234 in b7ffab6c)

* Add query logging callbacks and context manager (1043)
(by dcwatson in b2697ffd)

Fixes
=====

* When prepared statements are disabled, avoid relying on them harder (1065)
(by elprans in cbf64e18)

* Handle environments with HOME set to a not-a-directory (1063)
(by elprans in af922bcf)

* Fix handling of non-ASCII passwords (1062)
(by elprans in 89d5bd03)

* Disable JIT while doing type introspection (1082)
(by elprans in f21ebf64)

* Remove connection parameter caching in `Pool` (1053)
(by ermakov-oleg in 4ddb0397)

* Switch to Python 3.12-style `wait_for` (1086)
(by elprans in 4bdd8a7e)

* Update automatic PostGIS type conversion for Shapely 2.0 (1085)
(by ChimneySwift in 8b45beb4)

* Use the `timeout` context manager in the connection path (1087)
(by elprans in 313b2b2b)

* Small fix for documentation on using SSL in Connection (995)
(by ScottFred in ccc7baf9)

* Use cleanup_ctx in pool usage doc (878)
(by ir4y in 70c8bd81)

* Close cursor portals once the iterator is exhausted (1088)
(by elprans in ca9f03be)

* Cut BaseProtocol circular reference on close. (1049)
(by pteromys in 93a6f79a)

* Allow passing hosts as tuples to `connect()` (in addition to lists) (1021)
(by lezram in d7faaff5)

Other
=====

* Drop support for Python 3.7 (1064)
(by bryanforbes in 87ab1431)

0.28.0

Minor fixes and improvements.

Changes
=======

* Do not try to cleanup statements (981)
(by fvannee in d2e710fe for 981)

* Add Pool.is_closing() method (973)
(by singingwolfboy in 9cb2c1ce for 973)

* Fix test_tls_version for LibreSSL (974)
(by CyberTailor in 7df9812a for 974)

* Handle environments without home dir (1011)
(by LeonardBesson in 172b8f69 for 1011)

* fix: salt and iterations parsing for scram (1026)
(by trigonometr in 7443a9e7 for 1026)

* Add support for target_session_attrs (987)
(by JesseDeLoore in bf74e88b for 987)

* Add support for READ UNCOMMITTED (1039)
(by benwah in 2f20bae7 for 1039)

* Update benchmarks, add psycopg3 (1042)
(by elprans in 7d4fcf04 for 1042)

0.27.0

Support Python 3.11 and PostgreSQL 15. This release also drops support
for Python 3.6.

Changes
=======

* Add arm64 mac and linux wheels
(by ddelange in 7bd6c49f for 954)

* Add Python 3.11 to the test matrix
(by elprans in 5f908e67 for 948)

* Exclude .venv from flake8 (958)
(by jparise in 40b16ea6 for 958)

* Upgrade to flake8 5.0.4 (from 3.9.2) (961)
(by jparise in 0e73fec2 for 961)

* Show an example of a custom Record class (960)
(by jparise in 84c99bfd for 960)

* Use the exact type name in Record.__repr__ (959)
(by jparise in eccdf61a for 959)

* Drop Python 3.6 support (940)
(by bryanforbes in bb0cb39d for 940)

* Test on Python 3.11 and PostgreSQL 15, fix workflow deprecations (968)
(by elprans in eab7fdf2 for 968)

0.26.0

Changes
-------

* Add support to use awaitable object in password function. (889)
(by kwarunek in fb3b6bf7 for 889)

* Support direct TLS connections (i.e. no STARTTLS) (923)
(by jackwotherspoon in f2a937d2 for 923)

Fixes
-----

* Fix invalid `pyproject.toml` (900)
(by Rongronggg9 in eddb649c for 900)

* Add `record_class` parameter Pool.fetch and Pool.fetchrow (896)
(by baltitenger in 2519cf38 for 896)

* Domain basetypes are introspected (886) (887)
(by QuantumTM in cca4a2d3 for 886)

* Properly handle exceptions raised while handling server auth messages (862)
(by elprans in bd192623 for 862)

0.25.0

Changes
-------

* Improve SSL option compatibility in URIs
(by fantix in 383c711e for 827)

* Add `Pool` methods to determine its min, max, current and idle size
(by elprans in 603e3868 for 849)

* Make it possible to specify a statement name in `Connection.prepare()`
(by elprans in 03a3d18f for 846)

* Implement support for `multirange` types
(by elprans in d64a44a1 for 851)

Fixes
-----

* Make sure timeout callbacks always get cleaned up
(by elprans in dad26913 for 831)

* Update `__all__` statements to a simpler form that is better supported by typecheckers
(by bschnurr in 0a3ae7f5 for 828)

* Fix `test_timetz_encoding` on Python 3.10
(by elprans in 3a90fef0)

* Fix a bunch of `ResourceWarnings` in the test suite
(by elprans in 2f4fe539)

* Fix `SSLContext` deprecation warnings
(by elprans in 4d39a052)

* Fix the description of the database argument to `connect()`
(by elprans in a2a92374 for 847)

* Fix parsing of IPv6 addresses in the connection URI
(by elprans in f900b737 for 845)

* Improve diagnostics of invalid `executemany()` input
(by elprans in a8fc21e0 for 848)

Page 1 of 6

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.