Download Latest Version 2.0.46 source code.tar.gz (5.1 MB)
Email in envelope

Get an email when there's a new version of SQLAlchemy

Home / rel_2_0_45
Name Modified Size InfoDownloads / Week
Parent folder
sqlalchemy-2.0.45-cp313-cp313t-macosx_11_0_arm64.whl 2025-12-10 2.2 MB
sqlalchemy-2.0.45-cp39-cp39-macosx_11_0_arm64.whl 2025-12-10 2.2 MB
sqlalchemy-2.0.45-cp38-cp38-macosx_11_0_arm64.whl 2025-12-10 2.2 MB
sqlalchemy-2.0.45-cp314-cp314t-macosx_11_0_arm64.whl 2025-12-10 2.2 MB
sqlalchemy-2.0.45-cp311-cp311-macosx_11_0_arm64.whl 2025-12-10 2.2 MB
sqlalchemy-2.0.45-cp310-cp310-macosx_11_0_arm64.whl 2025-12-10 2.2 MB
sqlalchemy-2.0.45-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl 2025-12-10 3.5 MB
sqlalchemy-2.0.45-cp314-cp314t-musllinux_1_2_x86_64.whl 2025-12-10 3.5 MB
SQLAlchemy-2.0.45-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 2025-12-10 3.0 MB
SQLAlchemy-2.0.45-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 2025-12-10 3.0 MB
SQLAlchemy-2.0.45-cp37-cp37m-musllinux_1_2_aarch64.whl 2025-12-10 3.0 MB
SQLAlchemy-2.0.45-cp37-cp37m-musllinux_1_2_x86_64.whl 2025-12-10 3.0 MB
SQLAlchemy-2.0.45-cp37-cp37m-win32.whl 2025-12-10 2.1 MB
SQLAlchemy-2.0.45-cp37-cp37m-win_amd64.whl 2025-12-10 2.1 MB
sqlalchemy-2.0.45-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl 2025-12-10 3.3 MB
sqlalchemy-2.0.45-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl 2025-12-10 3.3 MB
sqlalchemy-2.0.45-cp38-cp38-musllinux_1_2_aarch64.whl 2025-12-10 3.2 MB
sqlalchemy-2.0.45-cp38-cp38-musllinux_1_2_x86_64.whl 2025-12-10 3.2 MB
sqlalchemy-2.0.45-cp38-cp38-win32.whl 2025-12-10 2.1 MB
sqlalchemy-2.0.45-cp38-cp38-win_amd64.whl 2025-12-10 2.1 MB
sqlalchemy-2.0.45-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl 2025-12-10 3.2 MB
sqlalchemy-2.0.45-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl 2025-12-10 3.2 MB
sqlalchemy-2.0.45-cp39-cp39-musllinux_1_2_aarch64.whl 2025-12-10 3.2 MB
sqlalchemy-2.0.45-cp39-cp39-musllinux_1_2_x86_64.whl 2025-12-10 3.2 MB
sqlalchemy-2.0.45-cp39-cp39-win32.whl 2025-12-10 2.1 MB
sqlalchemy-2.0.45-cp39-cp39-win_amd64.whl 2025-12-10 2.1 MB
sqlalchemy-2.0.45-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl 2025-12-10 3.5 MB
sqlalchemy-2.0.45-cp313-cp313t-musllinux_1_2_x86_64.whl 2025-12-10 3.5 MB
sqlalchemy-2.0.45-cp314-cp314-musllinux_1_2_x86_64.whl 2025-12-09 3.2 MB
sqlalchemy-2.0.45-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl 2025-12-09 3.3 MB
sqlalchemy-2.0.45-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl 2025-12-09 3.3 MB
sqlalchemy-2.0.45-cp313-cp313-musllinux_1_2_x86_64.whl 2025-12-09 3.3 MB
sqlalchemy-2.0.45-cp312-cp312-musllinux_1_2_x86_64.whl 2025-12-09 3.3 MB
sqlalchemy-2.0.45-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl 2025-12-09 3.3 MB
sqlalchemy-2.0.45-cp314-cp314-musllinux_1_2_aarch64.whl 2025-12-09 3.2 MB
sqlalchemy-2.0.45-cp313-cp313-musllinux_1_2_aarch64.whl 2025-12-09 3.2 MB
sqlalchemy-2.0.45-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl 2025-12-09 3.3 MB
sqlalchemy-2.0.45-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl 2025-12-09 3.3 MB
sqlalchemy-2.0.45-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl 2025-12-09 3.3 MB
sqlalchemy-2.0.45-cp312-cp312-musllinux_1_2_aarch64.whl 2025-12-09 3.3 MB
sqlalchemy-2.0.45-cp311-cp311-musllinux_1_2_aarch64.whl 2025-12-09 3.3 MB
sqlalchemy-2.0.45-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl 2025-12-09 3.3 MB
sqlalchemy-2.0.45-cp310-cp310-musllinux_1_2_aarch64.whl 2025-12-09 3.2 MB
sqlalchemy-2.0.45-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl 2025-12-09 3.2 MB
sqlalchemy-2.0.45-cp311-cp311-musllinux_1_2_x86_64.whl 2025-12-09 3.3 MB
sqlalchemy-2.0.45-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl 2025-12-09 3.3 MB
sqlalchemy-2.0.45-cp310-cp310-musllinux_1_2_x86_64.whl 2025-12-09 3.2 MB
sqlalchemy-2.0.45-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl 2025-12-09 3.2 MB
sqlalchemy-2.0.45-py3-none-any.whl 2025-12-09 1.9 MB
sqlalchemy-2.0.45-cp314-cp314-win_amd64.whl 2025-12-09 2.1 MB
sqlalchemy-2.0.45-cp313-cp313-win_amd64.whl 2025-12-09 2.1 MB
sqlalchemy-2.0.45-cp314-cp314-win32.whl 2025-12-09 2.1 MB
sqlalchemy-2.0.45-cp313-cp313-win32.whl 2025-12-09 2.1 MB
sqlalchemy-2.0.45-cp312-cp312-win_amd64.whl 2025-12-09 2.1 MB
sqlalchemy-2.0.45-cp312-cp312-win32.whl 2025-12-09 2.1 MB
sqlalchemy-2.0.45-cp311-cp311-win_amd64.whl 2025-12-09 2.1 MB
sqlalchemy-2.0.45-cp311-cp311-win32.whl 2025-12-09 2.1 MB
sqlalchemy-2.0.45-cp310-cp310-win_amd64.whl 2025-12-09 2.1 MB
sqlalchemy-2.0.45-cp310-cp310-win32.whl 2025-12-09 2.1 MB
2.0.45 source code.tar.gz 2025-12-09 5.1 MB
2.0.45 source code.zip 2025-12-09 5.7 MB
README.md 2025-12-09 6.7 kB
Totals: 62 Items   177.1 MB 0

2.0.45

Released: December 9, 2025

orm

  • [orm] [bug] Fixed issue where calling Mapper.add_property() within mapper event hooks such as MapperEvents.instrument_class(), MapperEvents.after_mapper_constructed(), or MapperEvents.before_mapper_configured() would raise an AttributeError because the mapper's internal property collections were not yet initialized. The Mapper.add_property() method now handles early-stage property additions correctly, allowing properties including column properties, deferred columns, and relationships to be added during mapper initialization events. Pull request courtesy G Allajmi.

    References: #12858

  • [orm] [bug] Fixed issue in Python 3.14 where dataclass transformation would fail when a mapped class using MappedAsDataclass included a relationship() referencing a class that was not available at runtime (e.g., within a TYPE_CHECKING block). This occurred when using Python 3.14's PEP 649 deferred annotations feature, which is the default behavior without a from __future__ import annotations directive.

    References: #12952

examples

  • [examples] [bug] Fixed the "short_selects" performance example where the cache was being used in all the examples, making it impossible to compare performance with and without the cache. Less important comparisons like "lambdas" and "baked queries" have been removed.

sql

  • [sql] [bug] Some improvements to the _sql.ClauseElement.params() method to replace bound parameters in a query were made, however the ultimate issue in #12915 involving ORM _orm.aliased() cannot be fixed fully until 2.1, where the method is being rewritten to work without relying on Core cloned traversal.

    References: #12915

  • [sql] [bug] Fixed issue where using the ColumnOperators.in_() operator with a nested CompoundSelect statement (e.g. an INTERSECT of UNION queries) would raise a NotImplementedError when the nested compound select was the first argument to the outer compound select. The _scalar_type() internal method now properly handles nested compound selects.

    References: #12987

typing

  • [typing] [bug] Fixed typing issue where Select.with_for_update() would not support lists of ORM entities or other FROM clauses in the Select.with_for_update.of parameter. Pull request courtesy Shamil.

    References: #12730

  • [typing] [bug] Fixed typing issue where coalesce would not return the correct return type when a nullable form of that argument were passed, even though this function is meant to select the non-null entry among possibly null arguments. Pull request courtesy Yannick PÉROUX.

postgresql

  • [postgresql] [usecase] Added support for reflection of collation in types for PostgreSQL. The collation will be set only if different from the default one for the type. Pull request courtesy Denis Laxalde.

    References: #6511

  • [postgresql] [bug] Fixed issue where PostgreSQL dialect options such as postgresql_include on PrimaryKeyConstraint and UniqueConstraint were rendered in the wrong position when combined with constraint deferrability options like deferrable=True. Pull request courtesy G Allajmi.

    References: #12867

  • [postgresql] [bug] Fixed the structure of the SQL string used for the engine_insertmanyvalues feature when an explicit sequence with nextval() is used. The SQL function invocation for the sequence has been moved from being rendered inline within each tuple inside of VALUES to being rendered once in the SELECT that reads from VALUES. This change ensures the function is invoked in the correct order as rows are processed, rather than assuming PostgreSQL will execute inline function calls within VALUES in a particular order. While current PostgreSQL versions appear to handle the previous approach correctly, the database does not guarantee this behavior for future versions.

    References: #13015

mysql

  • [mysql] [usecase] Added support for MySQL 8.0.1 + FOR SHARE to be emitted for the Select.with_for_update() method, which offers compatibility with NOWAIT and SKIP LOCKED. The new syntax is used only for MySQL when version 8.0.1 or higher is detected. Pull request courtesy JetDrag.

    References: #12964

sqlite

  • [sqlite] [bug] [reflection] A series of improvements have been made for reflection of CHECK constraints on SQLite. The reflection logic now correctly handles table names containing the strings "CHECK" or "CONSTRAINT", properly supports all four SQLite identifier quoting styles (double quotes, single quotes, brackets, and backticks) for constraint names, and accurately parses CHECK constraint expressions containing parentheses within string literals using balanced parenthesis matching with string context tracking. Big thanks to GruzdevAV for new test cases and implementation ideas.

    References: #12924

  • [sqlite] [bug] Fixed issue where SQLite dialect would fail to reflect constraint names that contained uppercase letters or other characters requiring quoting. The regular expressions used to parse primary key, foreign key, and unique constraint names from the CREATE TABLE statement have been updated to properly handle both quoted and unquoted constraint names.

    References: #12954

tests

  • [tests] [change] A noxfile.py has been added to allow testing with nox. This is a direct port of 2.1's move to nox, however leaves the tox.ini file in place and retains all test documentation in terms of tox. Version 2.1 will move to nox fully, including deprecation warnings for tox and new testing documentation.
Source: README.md, updated 2025-12-09