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 CHANGED
@@ -285,7 +285,7 @@ from .types import Uuid as Uuid
285
285
  from .types import VARBINARY as VARBINARY
286
286
  from .types import VARCHAR as VARCHAR
287
287
 
288
- __version__ = "2.1.2"
288
+ __version__ = "2.1.3"
289
289
 
290
290
 
291
291
  def __go(lcls: Any) -> None:
@@ -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: self.cls.__dict__[name]
584
- for name in (item[0] for item in field_list)
585
- if name in self.cls.__dict__
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
@@ -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)
@@ -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,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: SQLAlchemy
3
- Version: 2.1.2
3
+ Version: 2.1.3
4
4
  Summary: Database Abstraction Library
5
5
  Author-email: Mike Bayer <mike_mp@zzzcomputing.com>
6
6
  License-Expression: MIT
@@ -1,4 +1,4 @@
1
- sqlalchemy/__init__.py,sha256=a98E8U3Jzq6Azuj1TuogXfDwwS-E6sdZ0fN7CJtpbMI,13562
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=IQzfu1cySobZg0-Boy3HQs11rO-hYrU1D6q6ERIXOPc,87150
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=L4v7fvItWD4VEE_BXIzrFKoDTqBJlgHlCbz7phbZc10,14325
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=QeAr0EqaALN8quYk5TxFzYwdG9XT48VN_es5v3R_Puk,301191
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=9e3x2jLp1offzq2pWK5xIHLVQXkQtBIGDmqP9ePNS_4,8621
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.2.dist-info/licenses/AUTHORS,sha256=3B2wtdF0Va3De2k_-OQJyagPYD5EFpWCVRjDb3hslj4,492
264
- sqlalchemy-2.1.2.dist-info/licenses/LICENSE,sha256=6GK7W5BPtVE8PhQojXoloS6w7MeEegqWXTEOmpVefLk,1100
265
- sqlalchemy-2.1.2.dist-info/METADATA,sha256=Xp199HX08aDuAL5bEa9MyC5IK9wrc6Dby8VKw7Higs0,9680
266
- sqlalchemy-2.1.2.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
267
- sqlalchemy-2.1.2.dist-info/top_level.txt,sha256=rp-ZgB7D8G11ivXON5VGPjupT1voYmWqkciDt5Uaw_Q,11
268
- sqlalchemy-2.1.2.dist-info/RECORD,,
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,,