mirror of
https://github.com/python/cpython.git
synced 2025-09-25 09:50:37 +00:00
gh-108494: Argument Clinic: fix option group for Limited C API (#108574)
Use PyTuple_Size() instead of PyTuple_GET_SIZE().
This commit is contained in:
parent
0d140b8c5e
commit
e675e515ae
1 changed files with 9 additions and 3 deletions
|
@ -1664,7 +1664,8 @@ class CLanguage(Language):
|
||||||
def render_option_group_parsing(
|
def render_option_group_parsing(
|
||||||
self,
|
self,
|
||||||
f: Function,
|
f: Function,
|
||||||
template_dict: TemplateDict
|
template_dict: TemplateDict,
|
||||||
|
limited_capi: bool,
|
||||||
) -> None:
|
) -> None:
|
||||||
# positional only, grouped, optional arguments!
|
# positional only, grouped, optional arguments!
|
||||||
# can be optional on the left or right.
|
# can be optional on the left or right.
|
||||||
|
@ -1712,7 +1713,11 @@ class CLanguage(Language):
|
||||||
count_min = sys.maxsize
|
count_min = sys.maxsize
|
||||||
count_max = -1
|
count_max = -1
|
||||||
|
|
||||||
add("switch (PyTuple_GET_SIZE(args)) {\n")
|
if limited_capi:
|
||||||
|
nargs = 'PyTuple_Size(args)'
|
||||||
|
else:
|
||||||
|
nargs = 'PyTuple_GET_SIZE(args)'
|
||||||
|
add(f"switch ({nargs}) {{\n")
|
||||||
for subset in permute_optional_groups(left, required, right):
|
for subset in permute_optional_groups(left, required, right):
|
||||||
count = len(subset)
|
count = len(subset)
|
||||||
count_min = min(count_min, count)
|
count_min = min(count_min, count)
|
||||||
|
@ -1869,7 +1874,8 @@ class CLanguage(Language):
|
||||||
template_dict['unpack_max'] = str(unpack_max)
|
template_dict['unpack_max'] = str(unpack_max)
|
||||||
|
|
||||||
if has_option_groups:
|
if has_option_groups:
|
||||||
self.render_option_group_parsing(f, template_dict)
|
self.render_option_group_parsing(f, template_dict,
|
||||||
|
limited_capi=clinic.limited_capi)
|
||||||
|
|
||||||
# buffers, not destination
|
# buffers, not destination
|
||||||
for name, destination in clinic.destination_buffers.items():
|
for name, destination in clinic.destination_buffers.items():
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue