NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #802 most downloaded on PyPI
Various utility functions for SQLAlchemy.
Last release 9 months ago
13 Dec 2025
Release timing varies
gaps range from 8 days to 1.4 years
Nearly every release is documented
notes for 60 of the last 60 stable releases
6 versions withdrawn
withdrawn after publishing
14 years old
217 releases · first in 2013
Fix AttributeError with Sequence defaults in instant_defaults_listener by @wadinj in #793
Fix AttributeError with Sequence defaults in instant_defaults_listener (#793)
Drop support for Python 3.7 and 3.8.
ruff <https://docs.astral.sh/ruff/>_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.One column per quarter.
Fix breaking change introduced on SQLAlchemy 2.0.22 changes to attributes.AttributeImpl constructor
attributes.AttributeImpl constructor (#733)Use a custom SQL construct for refreshing materialized views in refresh_materialized_view
refresh_materialized_view (#703)Support psycopg3 for create_database() and delete_database() . ( #701 , pull request by LerikP)
create_database() and delete_database().Add comparison operator support for LTree type ( #668 , pull request by salimfadhley)
Add pre-commit hooks for uniform text checks, isort, flake8, and pyupgrade.
colour-science package is installed, which shares the same import name as the colour package that sqlalchemy-utils supports. (#637, courtesy of JayPalm)"2.0.0b3"). (Reported in #643, thanks Dinmukhamet!)Nothing published for this version
Fixed double-quoted UUID's in sqlalchemy >= 1.4.30 (#581, pull request courtesy of kurtmckee)
Fixed double-quoted UUID's in sqlalchemy >= 1.4.30 (#581, pull request courtesy of kurtmckee)
Fixed create_database() and drop_database() crashing with CockroachDB (#586, pull request courtesy of kurtmckee)
Added mixed case support for pg composite (#584, pull request courtesy of bamartin125)
Support Python 3.10.
Drop support for Python 3.4 and 3.5.
Remove the dependency on the six package. (#605)
Introduce sqlalchemy 2.0 compatibility. (#513)
Closes #571
Closes #571
Added inherit_cache=False in order to avoid SQLAlchemy warnings in cast_locale_expr (#571)
Added cache_ok=True for various different types
Added cache_ok=True for various different types
Removed CompositeArray. Instead of CompositeArray one should use ARRAY(dimensions=1)
Removed CompositeArray. Instead of CompositeArray one should use ARRAY(dimensions=1)
Made ChoicesType only convert lists to tuples internally.
Fixed base padding class abstract methods (#547, pull request courtesy of dpgaspar)
Fixed base padding class abstract methods (#547, pull request courtesy of dpgaspar)
Optimized cast_locale function (#552, pull request courtesy of tvuotila)
Allow for arbitrary Table keyword arguments in create_table_from_selectable (#551, pull request courtesy of quoimec)
Added 'zoneinfo' backend to TimezoneType (#510, pull request courtesy of huonw)
Added 'zoneinfo' backend to TimezoneType (#510, pull request courtesy of huonw)
Added identifier quoting for view functions and constructs
Added identifier quoting for view functions and constructs
Added literal processor for UUIDType
Added cache_ok=True for TSVectorType
Added cache_ok=True for TSVectorType
Fixed instant_defaults_listener to respect constructor supplied kwargs (#516, pull request courtesy of soundstripe)
Fixed instant_defaults_listener to respect constructor supplied kwargs (#516, pull request courtesy of soundstripe)
Fixed incorrect Ltree.lca behaviour (#468, pull request courtesy of slymit)
Fixed incorrect Ltree.lca behaviour (#468, pull request courtesy of slymit)
Added cache_ok=True for all custom types
Added cache_ok=True for all custom types
Added CockroachDB support for UUIDType (#526, pull request courtesy of chrishemmings)
Added python_requires to setup.py
Added python_requires to setup.py
- Removed py27 from pypi wheel
Removed py27 from pypi wheel
Fixed database_exists() on PostgreSQL
Added SQLAlchemy 1.4 support
Fixed database_exists() on PostgreSQL (#462)
Added create_database support pymssql (#486)
Removed sort_query, get_query_entities and get_query_entity_by_alias functions
Don't connect to 'postgres' data base for database existence check (#372, pull request courtesy of bernt-matthias)
Don't connect to 'postgres' data base for database existence check (#372, pull request courtesy of bernt-matthias)
Fix dynamic relationships for observables
Fix dynamic relationships for observables (#455)
Dropped support for Python 2.7 (thanks for the help graingert)
Dropped support for Python 2.7 (thanks for the help graingert)
Reverted #426 and added support for Legacy Encrypted Type (#450, pull request courtesy of rushilsrivastava)
Added psycopg2cffi support for create_database and drop_database (#447, pull request courtesy of DominicBurkart)
Added support for dictionary input in CompositeType (#435, pull request courtesy of cozos)
Added support for dictionary input in CompositeType (#435, pull request courtesy of cozos)
Added new EnrichedDateTime and EnrichedDate types (#403, pull request courtesy of yk-lab)
Using String instead of LargeBinary for impl of EncryptedType (#426, pull request courtesy of aicioara)
Added support for JSONType in EncryptedType (#439, pull request courtesy of rushilsrivastava)
Added jsonb_sql function (#377, pull request courtesy of getglad)
Added jsonb_sql function (#377, pull request courtesy of getglad)
Drop py27 support
Added hash method for PhoneNumberType (#428, pull request courtesy of hanc1208)
Added hash method for PhoneNumberType (#428, pull request courtesy of hanc1208)
Added repr for UUIDType (#424, pull request courtesy of ziima)
Added repr for UUIDType (#424, pull request courtesy of ziima)
Added support for CASCADE option when dropping views (#406, pull request courtesy of amicks)
Added support for CASCADE option when dropping views (#406, pull request courtesy of amicks)
Added aliases parameter to create_materialized_view function.
Removed explain and explain_analyze due to the internal changes in SQLAlchemy version 1.3.
Removed explain and explain_analyze due to the internal changes in SQLAlchemy version 1.3.
Removed some deprecation warnings
Removed some deprecation warnings
Added Int8RangeType (#401, pull request courtesy of lpsinger)
Remove ABC deprecation warnings (#386, pull request courtesy of VizualAbstract)
Remove ABC deprecation warnings (#386, pull request courtesy of VizualAbstract)
Remove deprecation warnings (#379, pull request courtesy of Le-Stagiaire)
Remove deprecation warnings (#379, pull request courtesy of Le-Stagiaire)
Drop py34 support
Removed deprecation warnings (#373, pull request courtesy of pbasista)
Removed array_agg compilation which was never a good idea and collided with the latest version of SA. (#374)
Removed deprecation warnings (#373, pull request courtesy of pbasista)
Added support for creating and dropping a PostgreSQL database when using pg8000 driver (#303, pull request courtesy of mohaseeb)
Added support for creating and dropping a PostgreSQL database when using pg8000 driver (#303, pull request courtesy of mohaseeb)
Removed optional dependency to Flask-Babel. Now using Babel instead. (#333, pull request courtesy of aveuiller)
Removed optional dependency to Flask-Babel. Now using Babel instead. (#333, pull request courtesy of aveuiller)
Fixed SQLite database_exists to check for correct file format (#306, pull request courtesy of jomasti)
Fixed SQLite database_exists to check for correct file format (#306, pull request courtesy of jomasti)
Added support of short-code in PhoneNumberType (#348, pull request courtesy of anandtripathi5)
Added support of short-code in PhoneNumberType (#348, pull request courtesy of anandtripathi5)
Fixed passlib compatibility issue (again)
Fixed passlib compatibility issue (again) (#342)
Added support for SQL VIEWs
Added optional attr parameter for locale calleble in TranslationHybrid
Added optional attr parameter for locale calleble in TranslationHybrid
Fixed an issue with PasswordType so that it is compatible with older versions of passlib (#342)
Made PasswordType use hash function instead of deprecated encrypt function (#341, pull request courtesy of libre-man)
Made PasswordType use hash function instead of deprecated encrypt function (#341, pull request courtesy of libre-man)
Added new AesGcmEngine (#322, pull request courtesy of manishahluwalia)
Added new AesGcmEngine (#322, pull request courtesy of manishahluwalia)
Added support for universal wheels (#312, pull request courtesy of nsoranzo)
Added support for universal wheels (#312, pull request courtesy of nsoranzo)
Fixed usage of template0 and template1 with postgres database functions. (#286, pull request courtesy of funkybob)
Fixed EncryptedType for Oracle padding attack (#316, pull request courtesy of manishahluwalia)
Fixed EncryptedType for Oracle padding attack (#316, pull request courtesy of manishahluwalia)
Added support for materialized views in PostgreSQL
Added support for materialized views in PostgreSQL
Added Ltree.descendant_of and Ltree.ancestor_of (#311, pull request courtesy of kageurufu)
Dropped Python 3.3 support
Fixed EncryptedType padding (#301, pull request courtesy of konstantinoskostis)
Close connections on exists, create and drop database functions (#295, pull request courtesy of Terseus)
Close connections on exists, create and drop database functions (#295, pull request courtesy of Terseus)
Fixed select_correlated_expression order by for intermediate table aliases
Fixed select_correlated_expression order by for intermediate table aliases
Made aggregated attributes to work with subclass objects (#287, pull request courtesy of fayazkhan)
Made aggregated attributes to work with subclass objects (#287, pull request courtesy of fayazkhan)
Added support for MSSQL uniqueidentifier type (#283, pull request courtesy of nHurD)
Added support for MSSQL uniqueidentifier type (#283, pull request courtesy of nHurD)
Added more hints when decrypting AES with an invalid key (#275, pull request courtesy of xrmx)
Added more hints when decrypting AES with an invalid key (#275, pull request courtesy of xrmx)
Added better handling of date types for EncryptedType (#184, pull request courtesy of konstantinoskostis)
Added better handling of date types for EncryptedType (#184, pull request courtesy of konstantinoskostis)
Fixed drop_database version comparison
Fixed drop_database version comparison
Fixed a DeprecationWarning by using LargeBinary instead of Binary (#263, pull request courtesy of jacquerie)
Fixed a DeprecationWarning by using LargeBinary instead of Binary (#263, pull request courtesy of jacquerie)
- Added generic_repr decorator
Added generic_repr decorator
TimeZoneType support for static timezones (#244, pull request courtesy of fuhrysteve)
TimeZoneType support for static timezones (#244, pull request courtesy of fuhrysteve)
Added SQLite support for PasswordType (#254, pull request courtesy of frol)
Added support for multi-column observers (#231, pull request courtesy of quantus)
Added support for multi-column observers (#231, pull request courtesy of quantus)
Fixed EmailType to respect constructor args (#230, pull request courtesy of quantus)
Fixed EmailType to respect constructor args (#230, pull request courtesy of quantus)
Made PhoneNumber exceptions inherit SQLAlchemy's DontWrapMixin (#219, pull request courtesy of JackWink)
Made PhoneNumber exceptions inherit SQLAlchemy's DontWrapMixin (#219, pull request courtesy of JackWink)
Added support for timezones with ArrowType (#218, pull request courtesy of jmagnusson)
Added support for timezones with ArrowType (#218, pull request courtesy of jmagnusson)
Your coding agent can read these notes before it upgrades. Set up the MCP server →