summaryrefslogtreecommitdiff
path: root/tools/generate_proxy_methods.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2022-04-07 12:37:23 -0400
committermike bayer <mike_mp@zzzcomputing.com>2022-04-12 02:09:50 +0000
commitaa9cd878e8249a4a758c7f968e929e92fede42a5 (patch)
tree1be1c9dc24dd247a150be55d65bfc56ebaf111bc /tools/generate_proxy_methods.py
parent98eae4e181cb2d1bbc67ec834bfad29dcba7f461 (diff)
downloadsqlalchemy-aa9cd878e8249a4a758c7f968e929e92fede42a5.tar.gz
pep-484: session, instancestate, etc
Also adds some fixes to annotation-based mapping that have come up, as well as starts to add more pep-484 test cases Change-Id: Ia722bbbc7967a11b23b66c8084eb61df9d233fee
Diffstat (limited to 'tools/generate_proxy_methods.py')
-rw-r--r--tools/generate_proxy_methods.py26
1 files changed, 20 insertions, 6 deletions
diff --git a/tools/generate_proxy_methods.py b/tools/generate_proxy_methods.py
index eec4d878a..ffc470972 100644
--- a/tools/generate_proxy_methods.py
+++ b/tools/generate_proxy_methods.py
@@ -149,13 +149,27 @@ def process_class(
iscoroutine = inspect.iscoroutinefunction(fn)
- if spec.defaults:
- new_defaults = tuple(
- _repr_sym("util.EMPTY_DICT") if df is util.EMPTY_DICT else df
- for df in spec.defaults
- )
+ if spec.defaults or spec.kwonlydefaults:
elem = list(spec)
- elem[3] = tuple(new_defaults)
+
+ if spec.defaults:
+ new_defaults = tuple(
+ _repr_sym("util.EMPTY_DICT")
+ if df is util.EMPTY_DICT
+ else df
+ for df in spec.defaults
+ )
+ elem[3] = new_defaults
+
+ if spec.kwonlydefaults:
+ new_kwonlydefaults = {
+ name: _repr_sym("util.EMPTY_DICT")
+ if df is util.EMPTY_DICT
+ else df
+ for name, df in spec.kwonlydefaults.items()
+ }
+ elem[5] = new_kwonlydefaults
+
spec = compat.FullArgSpec(*elem)
caller_argspec = format_argspec_plus(spec, grouped=False)