rel_2_0_29
版本发布时间: 2024-03-24 05:53:32
sqlalchemy/sqlalchemy最新发布版本:rel_2_0_36(2024-10-16 03:41:54)
2.0.29
Released: March 23, 2024
orm
-
[orm] [usecase] Added support for the PEP 695
TypeAliasType
construct as well as the python 3.12 nativetype
keyword to work with ORM Annotated Declarative form when using these constructs to link to a PEP 593Annotated
container, allowing the resolution of theAnnotated
to proceed when these constructs are used in a_orm.Mapped
typing container.References: #11130
-
[orm] [bug] Fixed Declarative issue where typing a relationship using
_orm.Relationship
rather than_orm.Mapped
would inadvertently pull in the "dynamic" relationship loader strategy for that attribute.References: #10611
-
[orm] [bug] Fixed issue in ORM annotated declarative where using
_orm.mapped_column()
with an_orm.mapped_column.index
or_orm.mapped_column.unique
setting of False would be overridden by an incomingAnnotated
element that featured that parameter set toTrue
, even though the immediate_orm.mapped_column()
element is more specific and should take precedence. The logic to reconcile the booleans has been enhanced to accommodate a local value ofFalse
as still taking precedence over an incomingTrue
value from the annotated element.References: #11091
-
[orm] [bug] [regression] Fixed regression from version 2.0.28 caused by the fix for #11085 where the newer method of adjusting post-cache bound parameter values would interefere with the implementation for the
_orm.subqueryload()
loader option, which has some more legacy patterns in use internally, when the additional loader criteria feature were used with this loader option.References: #11173
engine
-
[engine] [bug] Fixed issue in
engine_insertmanyvalues
feature where using a primary key column with an "inline execute" default generator such as an explicitSequence
with an explcit schema name, while at the same time using the_engine.Connection.execution_options.schema_translate_map
feature would fail to render the sequence or the parameters properly, leading to errors.References: #11157
-
[engine] [bug] Made a change to the adjustment made in version 2.0.10 for #9618, which added the behavior of reconciling RETURNING rows from a bulk INSERT to the parameters that were passed to it. This behavior included a comparison of already-DB-converted bound parameter values against returned row values that was not always "symmetrical" for SQL column types such as UUIDs, depending on specifics of how different DBAPIs receive such values versus how they return them, necessitating the need for additional "sentinel value resolver" methods on these column types. Unfortunately this broke third party column types such as UUID/GUID types in libraries like SQLModel which did not implement this special method, raising an error "Can't match sentinel values in result set to parameter sets". Rather than attempt to further explain and document this implementation detail of the "insertmanyvalues" feature including a public version of the new method, the approach is intead revised to no longer need this extra conversion step, and the logic that does the comparison now works on the pre-converted bound parameter value compared to the post-result-processed value, which should always be of a matching datatype. In the unusual case that a custom SQL column type that also happens to be used in a "sentinel" column for bulk INSERT is not receiving and returning the same value type, the "Can't match" error will be raised, however the mitigation is straightforward in that the same Python datatype should be passed as that returned.
References: #11160
sql
-
[sql] [bug] [regression] Fixed regression from the 1.4 series where the refactor of the
_types.TypeEngine.with_variant()
method introduced atchange_6980
failed to accommodate for the.copy()
method, which will lose the variant mappings that are set up. This becomes an issue for the very specific case of a "schema" type, which includes types such asEnum
andARRAY
, when they are then used in the context of an ORM Declarative mapping with mixins where copying of types comes into play. The variant mapping is now copied as well.References: #11176
typing
-
[typing] [bug] Fixed typing issue allowing asyncio
run_sync()
methods to correctly type the parameters according to the callable that was passed, making use of PEP 612ParamSpec
variables. Pull request courtesy Francisco R. Del Roio.References: #11055
postgresql
-
[postgresql] [usecase] The PostgreSQL dialect now returns
_postgresql.DOMAIN
instances when reflecting a column that has a domain as type. Previously, the domain data type was returned instead. As part of this change, the domain reflection was improved to also return the collation of the text types. Pull request courtesy of Thomas Stephenson.References: #10693
tests
-
[tests] [bug] Backported to SQLAlchemy 2.0 an improvement to the test suite with regards to how asyncio related tests are run, now using the newer Python 3.11
asyncio.Runner
or a backported equivalent, rather than relying on the previous implementation based onasyncio.get_running_loop()
. This should hopefully prevent issues with large suite runs on CPU loaded hardware where the event loop seems to become corrupted, leading to cascading failures.References: #11187
1、 SQLAlchemy-2.0.29-cp310-cp310-macosx_10_9_x86_64.whl 1.99MB
2、 SQLAlchemy-2.0.29-cp310-cp310-macosx_11_0_arm64.whl 1.98MB
3、 SQLAlchemy-2.0.29-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 2.91MB
4、 SQLAlchemy-2.0.29-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 2.92MB
5、 SQLAlchemy-2.0.29-cp310-cp310-musllinux_1_1_aarch64.whl 2.95MB
6、 SQLAlchemy-2.0.29-cp310-cp310-musllinux_1_1_x86_64.whl 2.95MB
7、 SQLAlchemy-2.0.29-cp310-cp310-win32.whl 1.96MB
8、 SQLAlchemy-2.0.29-cp310-cp310-win_amd64.whl 1.98MB
9、 SQLAlchemy-2.0.29-cp311-cp311-macosx_10_9_x86_64.whl 1.99MB
10、 SQLAlchemy-2.0.29-cp311-cp311-macosx_11_0_arm64.whl 1.98MB
11、 SQLAlchemy-2.0.29-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 3.04MB
12、 SQLAlchemy-2.0.29-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 3.04MB
13、 SQLAlchemy-2.0.29-cp311-cp311-musllinux_1_1_aarch64.whl 3.05MB
14、 SQLAlchemy-2.0.29-cp311-cp311-musllinux_1_1_x86_64.whl 3.04MB
15、 SQLAlchemy-2.0.29-cp311-cp311-win32.whl 1.95MB
16、 SQLAlchemy-2.0.29-cp311-cp311-win_amd64.whl 1.98MB
17、 SQLAlchemy-2.0.29-cp312-cp312-macosx_10_9_x86_64.whl 1.99MB
18、 SQLAlchemy-2.0.29-cp312-cp312-macosx_11_0_arm64.whl 1.98MB
19、 SQLAlchemy-2.0.29-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 3.08MB
20、 SQLAlchemy-2.0.29-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 3.09MB
21、 SQLAlchemy-2.0.29-cp312-cp312-musllinux_1_1_aarch64.whl 3.08MB
22、 SQLAlchemy-2.0.29-cp312-cp312-musllinux_1_1_x86_64.whl 3.08MB
23、 SQLAlchemy-2.0.29-cp312-cp312-win32.whl 1.95MB
24、 SQLAlchemy-2.0.29-cp312-cp312-win_amd64.whl 1.98MB
25、 SQLAlchemy-2.0.29-cp37-cp37m-macosx_10_9_x86_64.whl 1.99MB
26、 SQLAlchemy-2.0.29-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 2.83MB
27、 SQLAlchemy-2.0.29-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 2.84MB
28、 SQLAlchemy-2.0.29-cp37-cp37m-musllinux_1_1_aarch64.whl 2.85MB
29、 SQLAlchemy-2.0.29-cp37-cp37m-musllinux_1_1_x86_64.whl 2.85MB
30、 SQLAlchemy-2.0.29-cp37-cp37m-win32.whl 1.96MB
31、 SQLAlchemy-2.0.29-cp37-cp37m-win_amd64.whl 1.98MB
32、 SQLAlchemy-2.0.29-cp38-cp38-macosx_10_9_x86_64.whl 1.99MB
33、 SQLAlchemy-2.0.29-cp38-cp38-macosx_11_0_arm64.whl 1.98MB
34、 SQLAlchemy-2.0.29-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 2.94MB
35、 SQLAlchemy-2.0.29-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 2.94MB
36、 SQLAlchemy-2.0.29-cp38-cp38-musllinux_1_1_aarch64.whl 2.99MB
37、 SQLAlchemy-2.0.29-cp38-cp38-musllinux_1_1_x86_64.whl 2.99MB
38、 SQLAlchemy-2.0.29-cp38-cp38-win32.whl 1.96MB
39、 SQLAlchemy-2.0.29-cp38-cp38-win_amd64.whl 1.98MB
40、 SQLAlchemy-2.0.29-cp39-cp39-macosx_10_9_x86_64.whl 1.99MB
41、 SQLAlchemy-2.0.29-cp39-cp39-macosx_11_0_arm64.whl 1.98MB
42、 SQLAlchemy-2.0.29-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 2.93MB
43、 SQLAlchemy-2.0.29-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 2.93MB
44、 SQLAlchemy-2.0.29-cp39-cp39-musllinux_1_1_aarch64.whl 2.97MB
45、 SQLAlchemy-2.0.29-cp39-cp39-musllinux_1_1_x86_64.whl 2.97MB
46、 SQLAlchemy-2.0.29-cp39-cp39-win32.whl 1.96MB
47、 SQLAlchemy-2.0.29-cp39-cp39-win_amd64.whl 1.98MB
48、 SQLAlchemy-2.0.29-py3-none-any.whl 1.78MB