Skip to content

Commit 02b6003

Browse files
authored
gh-104683: Argument clinic: use dict over OrderedDict (#104647)
For code readability. Instances of `builtins.dict` have been ordered since 3.6, and have been guaranteed by the language to be ordered since Python 3.7. Argument Clinic now requires Python 3.10+.
1 parent 06eeee9 commit 02b6003

File tree

1 file changed

+23
-25
lines changed

1 file changed

+23
-25
lines changed

Tools/clinic/clinic.py

+23-25
Original file line numberDiff line numberDiff line change
@@ -2060,8 +2060,8 @@ def __init__(self, language, printer=None, *, verify=True, filename=None):
20602060
self.printer = printer or BlockPrinter(language)
20612061
self.verify = verify
20622062
self.filename = filename
2063-
self.modules = collections.OrderedDict()
2064-
self.classes = collections.OrderedDict()
2063+
self.modules = {}
2064+
self.classes = {}
20652065
self.functions = []
20662066

20672067
self.line_prefix = self.line_suffix = ''
@@ -2074,18 +2074,18 @@ def __init__(self, language, printer=None, *, verify=True, filename=None):
20742074
self.add_destination("file", "file", "{dirname}/clinic/{basename}.h")
20752075

20762076
d = self.get_destination_buffer
2077-
self.destination_buffers = collections.OrderedDict((
2078-
('cpp_if', d('file')),
2079-
('docstring_prototype', d('suppress')),
2080-
('docstring_definition', d('file')),
2081-
('methoddef_define', d('file')),
2082-
('impl_prototype', d('file')),
2083-
('parser_prototype', d('suppress')),
2084-
('parser_definition', d('file')),
2085-
('cpp_endif', d('file')),
2086-
('methoddef_ifndef', d('file', 1)),
2087-
('impl_definition', d('block')),
2088-
))
2077+
self.destination_buffers = {
2078+
'cpp_if': d('file'),
2079+
'docstring_prototype': d('suppress'),
2080+
'docstring_definition': d('file'),
2081+
'methoddef_define': d('file'),
2082+
'impl_prototype': d('file'),
2083+
'parser_prototype': d('suppress'),
2084+
'parser_definition': d('file'),
2085+
'cpp_endif': d('file'),
2086+
'methoddef_ifndef': d('file', 1),
2087+
'impl_definition': d('block'),
2088+
}
20892089

20902090
self.destination_buffers_stack = []
20912091
self.ifndef_symbols = set()
@@ -2098,7 +2098,7 @@ def __init__(self, language, printer=None, *, verify=True, filename=None):
20982098
continue
20992099
name, value, *options = line.split()
21002100
if name == 'preset':
2101-
self.presets[value] = preset = collections.OrderedDict()
2101+
self.presets[value] = preset = {}
21022102
continue
21032103

21042104
if len(options):
@@ -2301,8 +2301,8 @@ def __init__(
23012301
self.name = name
23022302
self.module = self.parent = module
23032303

2304-
self.modules: ModuleDict = collections.OrderedDict()
2305-
self.classes: ClassDict = collections.OrderedDict()
2304+
self.modules: ModuleDict = {}
2305+
self.classes: ClassDict = {}
23062306
self.functions: list[Function] = []
23072307

23082308
def __repr__(self) -> str:
@@ -2327,7 +2327,7 @@ def __init__(
23272327
self.type_object = type_object
23282328
self.parent = cls or module
23292329

2330-
self.classes: ClassDict = collections.OrderedDict()
2330+
self.classes: ClassDict = {}
23312331
self.functions: list[Function] = []
23322332

23332333
def __repr__(self) -> str:
@@ -2428,7 +2428,7 @@ def __init__(self, parameters=None, *, name,
24282428
return_converter, return_annotation=inspect.Signature.empty,
24292429
docstring=None, kind=CALLABLE, coexist=False,
24302430
docstring_only=False):
2431-
self.parameters = parameters or collections.OrderedDict()
2431+
self.parameters = parameters or {}
24322432
self.return_annotation = return_annotation
24332433
self.name = name
24342434
self.full_name = full_name
@@ -2489,12 +2489,10 @@ def copy(self, **overrides):
24892489
}
24902490
kwargs.update(overrides)
24912491
f = Function(**kwargs)
2492-
2493-
parameters = collections.OrderedDict()
2494-
for name, value in f.parameters.items():
2495-
value = value.copy(function=f)
2496-
parameters[name] = value
2497-
f.parameters = parameters
2492+
f.parameters = {
2493+
name: value.copy(function=f)
2494+
for name, value in f.parameters.items()
2495+
}
24982496
return f
24992497

25002498

0 commit comments

Comments
 (0)