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+.
This commit is contained in:
Alex Waygood 2023-05-20 11:24:00 +01:00 committed by GitHub
parent 06eeee97e3
commit 02b60035ce
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -2060,8 +2060,8 @@ impl_definition block
self.printer = printer or BlockPrinter(language) self.printer = printer or BlockPrinter(language)
self.verify = verify self.verify = verify
self.filename = filename self.filename = filename
self.modules = collections.OrderedDict() self.modules = {}
self.classes = collections.OrderedDict() self.classes = {}
self.functions = [] self.functions = []
self.line_prefix = self.line_suffix = '' self.line_prefix = self.line_suffix = ''
@ -2074,18 +2074,18 @@ impl_definition block
self.add_destination("file", "file", "{dirname}/clinic/{basename}.h") self.add_destination("file", "file", "{dirname}/clinic/{basename}.h")
d = self.get_destination_buffer d = self.get_destination_buffer
self.destination_buffers = collections.OrderedDict(( self.destination_buffers = {
('cpp_if', d('file')), 'cpp_if': d('file'),
('docstring_prototype', d('suppress')), 'docstring_prototype': d('suppress'),
('docstring_definition', d('file')), 'docstring_definition': d('file'),
('methoddef_define', d('file')), 'methoddef_define': d('file'),
('impl_prototype', d('file')), 'impl_prototype': d('file'),
('parser_prototype', d('suppress')), 'parser_prototype': d('suppress'),
('parser_definition', d('file')), 'parser_definition': d('file'),
('cpp_endif', d('file')), 'cpp_endif': d('file'),
('methoddef_ifndef', d('file', 1)), 'methoddef_ifndef': d('file', 1),
('impl_definition', d('block')), 'impl_definition': d('block'),
)) }
self.destination_buffers_stack = [] self.destination_buffers_stack = []
self.ifndef_symbols = set() self.ifndef_symbols = set()
@ -2098,7 +2098,7 @@ impl_definition block
continue continue
name, value, *options = line.split() name, value, *options = line.split()
if name == 'preset': if name == 'preset':
self.presets[value] = preset = collections.OrderedDict() self.presets[value] = preset = {}
continue continue
if len(options): if len(options):
@ -2301,8 +2301,8 @@ class Module:
self.name = name self.name = name
self.module = self.parent = module self.module = self.parent = module
self.modules: ModuleDict = collections.OrderedDict() self.modules: ModuleDict = {}
self.classes: ClassDict = collections.OrderedDict() self.classes: ClassDict = {}
self.functions: list[Function] = [] self.functions: list[Function] = []
def __repr__(self) -> str: def __repr__(self) -> str:
@ -2327,7 +2327,7 @@ class Class:
self.type_object = type_object self.type_object = type_object
self.parent = cls or module self.parent = cls or module
self.classes: ClassDict = collections.OrderedDict() self.classes: ClassDict = {}
self.functions: list[Function] = [] self.functions: list[Function] = []
def __repr__(self) -> str: def __repr__(self) -> str:
@ -2428,7 +2428,7 @@ class Function:
return_converter, return_annotation=inspect.Signature.empty, return_converter, return_annotation=inspect.Signature.empty,
docstring=None, kind=CALLABLE, coexist=False, docstring=None, kind=CALLABLE, coexist=False,
docstring_only=False): docstring_only=False):
self.parameters = parameters or collections.OrderedDict() self.parameters = parameters or {}
self.return_annotation = return_annotation self.return_annotation = return_annotation
self.name = name self.name = name
self.full_name = full_name self.full_name = full_name
@ -2489,12 +2489,10 @@ class Function:
} }
kwargs.update(overrides) kwargs.update(overrides)
f = Function(**kwargs) f = Function(**kwargs)
f.parameters = {
parameters = collections.OrderedDict() name: value.copy(function=f)
for name, value in f.parameters.items(): for name, value in f.parameters.items()
value = value.copy(function=f) }
parameters[name] = value
f.parameters = parameters
return f return f