SQLAlchemy 2.1.2__py3-none-any.whl → 2.1.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- sqlalchemy/__init__.py +1 -1
- sqlalchemy/orm/decl_base.py +13 -5
- sqlalchemy/sql/_annotated_cols.py +1 -1
- sqlalchemy/sql/compiler.py +4 -0
- sqlalchemy/util/__init__.py +1 -0
- {sqlalchemy-2.1.2.dist-info → sqlalchemy-2.1.3.dist-info}/METADATA +1 -1
- {sqlalchemy-2.1.2.dist-info → sqlalchemy-2.1.3.dist-info}/RECORD +11 -11
- {sqlalchemy-2.1.2.dist-info → sqlalchemy-2.1.3.dist-info}/WHEEL +0 -0
- {sqlalchemy-2.1.2.dist-info → sqlalchemy-2.1.3.dist-info}/licenses/AUTHORS +0 -0
- {sqlalchemy-2.1.2.dist-info → sqlalchemy-2.1.3.dist-info}/licenses/LICENSE +0 -0
- {sqlalchemy-2.1.2.dist-info → sqlalchemy-2.1.3.dist-info}/top_level.txt +0 -0
sqlalchemy/__init__.py
CHANGED
sqlalchemy/orm/decl_base.py
CHANGED
|
@@ -578,11 +578,13 @@ class _ClassScanAbstractConfig(_ORMClassConfigurator):
|
|
|
578
578
|
if revert:
|
|
579
579
|
# the "revert" case is used only by an unmapped mixin class
|
|
580
580
|
# that is nonetheless using Mapped construct and needs to
|
|
581
|
-
# itself be a dataclass
|
|
581
|
+
# itself be a dataclass. revert_dict includes all non-dunder
|
|
582
|
+
# attributes, not just fields, in class __dict__ order, so that
|
|
583
|
+
# the finally: block below can restore that order
|
|
582
584
|
revert_dict = {
|
|
583
|
-
name:
|
|
584
|
-
for name in (
|
|
585
|
-
if
|
|
585
|
+
name: value
|
|
586
|
+
for name, value in self.cls.__dict__.items()
|
|
587
|
+
if not util.dunders_re.match(name)
|
|
586
588
|
}
|
|
587
589
|
else:
|
|
588
590
|
revert_dict = None
|
|
@@ -679,8 +681,14 @@ class _ClassScanAbstractConfig(_ORMClassConfigurator):
|
|
|
679
681
|
if revert and revert_dict:
|
|
680
682
|
# used for mixin dataclasses; we have to restore the
|
|
681
683
|
# mapped_column(), relationship() etc. to the class so these
|
|
682
|
-
# take place for a mapped class scan
|
|
684
|
+
# take place for a mapped class scan. dataclasses has
|
|
685
|
+
# deleted the attribute for fields with no plain default and
|
|
686
|
+
# replaced it in place for the others, so delete and re-set
|
|
687
|
+
# every attribute, restoring declaration order for the scan,
|
|
688
|
+
# #13634
|
|
683
689
|
for k, v in revert_dict.items():
|
|
690
|
+
if k in self.cls.__dict__:
|
|
691
|
+
delattr(self.cls, k)
|
|
684
692
|
setattr(self.cls, k, v)
|
|
685
693
|
|
|
686
694
|
restore_anno()
|
|
@@ -22,8 +22,8 @@ from .base import ReadOnlyColumnCollection
|
|
|
22
22
|
from .. import util
|
|
23
23
|
from ..exc import ArgumentError
|
|
24
24
|
from ..exc import InvalidRequestError
|
|
25
|
+
from ..util import dunders_re
|
|
25
26
|
from ..util import typing as sa_typing
|
|
26
|
-
from ..util.langhelpers import dunders_re
|
|
27
27
|
from ..util.typing import Never
|
|
28
28
|
from ..util.typing import Self
|
|
29
29
|
from ..util.typing import TypeVar
|
sqlalchemy/sql/compiler.py
CHANGED
|
@@ -4128,6 +4128,10 @@ class SQLCompiler(Compiled):
|
|
|
4128
4128
|
):
|
|
4129
4129
|
if render_literal_value is not NO_ARG:
|
|
4130
4130
|
value = render_literal_value
|
|
4131
|
+
elif self._collect_params and bindparam.key in self._collected_params:
|
|
4132
|
+
# values passed to ExecutableStatement.params() are not
|
|
4133
|
+
# present on the bindparam itself
|
|
4134
|
+
value = self._collected_params[bindparam.key]
|
|
4131
4135
|
else:
|
|
4132
4136
|
if bindparam.value is None and bindparam.callable is None:
|
|
4133
4137
|
op = kw.get("_binary_op", None)
|
sqlalchemy/util/__init__.py
CHANGED
|
@@ -98,6 +98,7 @@ from .langhelpers import decode_slice as decode_slice
|
|
|
98
98
|
from .langhelpers import decorator as decorator
|
|
99
99
|
from .langhelpers import dictlike_iteritems as dictlike_iteritems
|
|
100
100
|
from .langhelpers import duck_type_collection as duck_type_collection
|
|
101
|
+
from .langhelpers import dunders_re as dunders_re
|
|
101
102
|
from .langhelpers import ellipses_string as ellipses_string
|
|
102
103
|
from .langhelpers import EnsureKWArg as EnsureKWArg
|
|
103
104
|
from .langhelpers import exec_code_in_env as exec_code_in_env
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
sqlalchemy/__init__.py,sha256=
|
|
1
|
+
sqlalchemy/__init__.py,sha256=qa3skGcwWR4Z4U7px2QG0OA-nKAGNHLwsJ9q_9k52AI,13562
|
|
2
2
|
sqlalchemy/events.py,sha256=vEDW04X_PMhMw5y0_95tbEzht3wua8_gnkMBJstYNRw,525
|
|
3
3
|
sqlalchemy/exc.py,sha256=CKyzx9WSeWTYxueZLAtTFpZTNKSon0YlpGt9v-C8dl8,27503
|
|
4
4
|
sqlalchemy/inspection.py,sha256=2mcgybcOVuQDB2bSIhwidrMteP9qOpEbmehyT2lrnt8,5661
|
|
@@ -138,7 +138,7 @@ sqlalchemy/orm/clsregistry.py,sha256=dmIYdM2VTyLVLYiale_x9-JGSK6GpQ0JOqsZuxfSfQE
|
|
|
138
138
|
sqlalchemy/orm/collections.py,sha256=sc-KrVjRZ1EKArBPn2lqmH9QX7HKr6d2oX0fPV5a4h8,50026
|
|
139
139
|
sqlalchemy/orm/context.py,sha256=F1poIa-NftQTO_cNUfSnbJKjbPQs9kWy6tBEyznTD_8,120868
|
|
140
140
|
sqlalchemy/orm/decl_api.py,sha256=gK5IGcbAXMdCN6SzprewMhfbXiZe1yO1Ghv2y2z3EHA,78721
|
|
141
|
-
sqlalchemy/orm/decl_base.py,sha256=
|
|
141
|
+
sqlalchemy/orm/decl_base.py,sha256=V30p5ILt8jRGhR3bv-LaQu2mZtSEys5TTMmSS9NUj8g,87679
|
|
142
142
|
sqlalchemy/orm/dependency.py,sha256=gqUUJi7LMF2RIEvq7hw_w-WfbpW8CXzSaDW5QTW5NlQ,47739
|
|
143
143
|
sqlalchemy/orm/descriptor_props.py,sha256=2R4NUuPIyinL5RrTbOAYebb3ZJNJLnT6_J2QCWy0nEM,42407
|
|
144
144
|
sqlalchemy/orm/dynamic.py,sha256=7wyr0eM7xIRqWQk6jcoHjqGYatORwImRbrysJhQaGm8,9968
|
|
@@ -171,7 +171,7 @@ sqlalchemy/pool/base.py,sha256=ATXly1JSXnLZyXG8lWJyTVCXKYj9E8LZwlaV3Fk4EBg,54619
|
|
|
171
171
|
sqlalchemy/pool/events.py,sha256=Fma2EvUl8XfbnPEYsRYmarRtumYJmpFTExxvO4bmOmk,13455
|
|
172
172
|
sqlalchemy/pool/impl.py,sha256=18axjQPyIIVr8QviQSMd05ok71j6YYj5nYgzSuCljg4,19108
|
|
173
173
|
sqlalchemy/sql/__init__.py,sha256=bQP61xcHeqWHjKiHbA-X3rNakpBKQO2cDnsZ_DSHemk,6438
|
|
174
|
-
sqlalchemy/sql/_annotated_cols.py,sha256=
|
|
174
|
+
sqlalchemy/sql/_annotated_cols.py,sha256=eWuOmteN-6Gnw-SXTrhUHzTfkrlweU9F_guRL4C3vFU,14313
|
|
175
175
|
sqlalchemy/sql/_cache_key_cy.py,sha256=EF8fzdQPTRpPdrf7OdtyqDSigZKzWkk1Om6ecvbvpBo,13552
|
|
176
176
|
sqlalchemy/sql/_dml_constructors.py,sha256=yECqkq8P88msKKJmvHqiIGeAtQECSRa9vQpC8VPzGyI,3795
|
|
177
177
|
sqlalchemy/sql/_elements_constructors.py,sha256=j3yHmWQdFrvEQQp1oWU_s5nyw0G6sQzz_zbGHCGo_q4,74697
|
|
@@ -184,7 +184,7 @@ sqlalchemy/sql/annotation.py,sha256=gkFPOq3qGo6fahIxTwXgxCdcEyiD8W4CH0q01d1E0mo,
|
|
|
184
184
|
sqlalchemy/sql/base.py,sha256=1xkh7mgC25GVZS8tczZbwDAxRvdumoaW3UPrJXbynbQ,98615
|
|
185
185
|
sqlalchemy/sql/cache_key.py,sha256=OihJqOVsdU0F_IShr0FIptTRHtIlM1UIZ_5LR8LQd0Q,28872
|
|
186
186
|
sqlalchemy/sql/coercions.py,sha256=XyV6wyiIHHD6ViGdZhLMQ8OVWNk4_LyBvv15t504UYI,39144
|
|
187
|
-
sqlalchemy/sql/compiler.py,sha256=
|
|
187
|
+
sqlalchemy/sql/compiler.py,sha256=2GLICV4e506Y65tuiULpgjWXTSwO6LMYxHL8jntG1i4,301442
|
|
188
188
|
sqlalchemy/sql/crud.py,sha256=1qtcYPM-p9DsjMaqixYgKVSPuQEK43QEsAdgmXYY_ok,61581
|
|
189
189
|
sqlalchemy/sql/ddl.py,sha256=6vfeMHtVcV6vWBQLxDZ906CHBnnadG5C8vmQNbpY5k8,65048
|
|
190
190
|
sqlalchemy/sql/default_comparator.py,sha256=MC1yWLbOArtLAsVWho_08Jk8ogP6mEgtRP-IxBYFtv4,18684
|
|
@@ -244,7 +244,7 @@ sqlalchemy/testing/suite/test_table_via_select.py,sha256=ZMJKUhAiqIzTKyK9J2cA_rv
|
|
|
244
244
|
sqlalchemy/testing/suite/test_types.py,sha256=FcKVoK0biEXoEAhmHTgLOOVrBFHYECh3zPhdmyQhLE4,76391
|
|
245
245
|
sqlalchemy/testing/suite/test_unicode_ddl.py,sha256=tVLf9RqCJe-CsyhCWL9d-WuWazDx5iWYzoBrSCbgjXs,6141
|
|
246
246
|
sqlalchemy/testing/suite/test_update_delete.py,sha256=llAnxDGvbK-C7CzEXbSNEjczhOSL1sKTLuzGyJahqV8,5195
|
|
247
|
-
sqlalchemy/util/__init__.py,sha256=
|
|
247
|
+
sqlalchemy/util/__init__.py,sha256=2DHFcXP7fB86rfMhHWvngoIZMjKU9ur3L74jd-ROGaE,8671
|
|
248
248
|
sqlalchemy/util/_collections.py,sha256=kYBmJwkf3SSOmVyAPvRULLOM_3JmfXVWnxxEkEkgrUw,19157
|
|
249
249
|
sqlalchemy/util/_collections_cy.pxd,sha256=DjGW5D9N6Dv_wXdIscNTGKttmjcJBCSdz5lTHtvbe2o,291
|
|
250
250
|
sqlalchemy/util/_collections_cy.py,sha256=cgw7RoItii0bTqTni4DaBJT7bbo-gFo1K3-hwy4KVTo,17118
|
|
@@ -260,9 +260,9 @@ sqlalchemy/util/queue.py,sha256=9cMV3Dea0l5tfWIHw3LUE0L3knt48gtUP_C8fBKLQeo,9740
|
|
|
260
260
|
sqlalchemy/util/tool_support.py,sha256=iZSwvKdF5pA8UtXuwbtln6dEDgerKJWasELSi7q6Epw,6136
|
|
261
261
|
sqlalchemy/util/topological.py,sha256=yMpaA2s0JYIekQF4XKwzJzy8lVo-8yeo8o1J2xzxq48,3451
|
|
262
262
|
sqlalchemy/util/typing.py,sha256=p3vOTJ4F7i3eqeFw7W_tayq88U0e53ZgOsCu7eNQ3lA,21125
|
|
263
|
-
sqlalchemy-2.1.
|
|
264
|
-
sqlalchemy-2.1.
|
|
265
|
-
sqlalchemy-2.1.
|
|
266
|
-
sqlalchemy-2.1.
|
|
267
|
-
sqlalchemy-2.1.
|
|
268
|
-
sqlalchemy-2.1.
|
|
263
|
+
sqlalchemy-2.1.3.dist-info/licenses/AUTHORS,sha256=3B2wtdF0Va3De2k_-OQJyagPYD5EFpWCVRjDb3hslj4,492
|
|
264
|
+
sqlalchemy-2.1.3.dist-info/licenses/LICENSE,sha256=6GK7W5BPtVE8PhQojXoloS6w7MeEegqWXTEOmpVefLk,1100
|
|
265
|
+
sqlalchemy-2.1.3.dist-info/METADATA,sha256=RV-yWu2uBDF_TUquRZTNlA2vl4dvPHsCP3vNX5o03b4,9680
|
|
266
|
+
sqlalchemy-2.1.3.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
|
|
267
|
+
sqlalchemy-2.1.3.dist-info/top_level.txt,sha256=rp-ZgB7D8G11ivXON5VGPjupT1voYmWqkciDt5Uaw_Q,11
|
|
268
|
+
sqlalchemy-2.1.3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|