Skip to content

Commit 0502f3e

Browse files
authored
Fixing identical code blocks
1 parent b83668e commit 0502f3e

File tree

1 file changed

+12
-21
lines changed

1 file changed

+12
-21
lines changed

Lib/annotationlib.py

Lines changed: 12 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -372,26 +372,17 @@ def __convert_to_ast(self, other):
372372
extra_names = {}
373373
elts = []
374374

375-
# For sets, we need to ensure consistent ordering
376-
if type(other) is set:
377-
# For sets of types, sort by __name__
378-
if all(isinstance(x, type) for x in other):
379-
# Sort the elements by name
380-
sorted_elts = sorted(other, key=lambda x: x.__name__)
381-
for elt in sorted_elts:
382-
new_elt, new_extra_names = self.__convert_to_ast(elt)
383-
if new_extra_names is not None:
384-
extra_names.update(new_extra_names)
385-
elts.append(new_elt)
386-
else:
387-
# For other sets, just use the original order
388-
for elt in other:
389-
new_elt, new_extra_names = self.__convert_to_ast(elt)
390-
if new_extra_names is not None:
391-
extra_names.update(new_extra_names)
392-
elts.append(new_elt)
375+
# For sets of types, sort elements by name for consistent ordering.
376+
if type(other) is set and all(isinstance(x, type) for x in other):
377+
# Sort the elements by name to ensure deterministic output.
378+
sorted_elts = sorted(other, key=lambda x: x.__name__)
379+
for elt in sorted_elts:
380+
new_elt, new_extra_names = self.__convert_to_ast(elt)
381+
if new_extra_names is not None:
382+
extra_names.update(new_extra_names)
383+
elts.append(new_elt)
393384
else:
394-
# For lists and tuples, preserve the original order
385+
# For lists, tuples, and other sets, preserve the original order.
395386
for elt in other:
396387
new_elt, new_extra_names = self.__convert_to_ast(elt)
397388
if new_extra_names is not None:
@@ -840,7 +831,7 @@ def _stringify_single(anno):
840831
elif isinstance(anno, _Template):
841832
return ast.unparse(_template_to_ast(anno))
842833
elif isinstance(anno, set) and all(isinstance(x, type) for x in anno):
843-
# Sort set elements by name to ensure consistent ordering
834+
# Sort set elements by name to ensure consistent ordering.
844835
sorted_elements = sorted(anno, key=lambda x: x.__name__)
845836
return "{" + ", ".join(x.__name__ for x in sorted_elements) + "}"
846837
else:
@@ -1053,7 +1044,7 @@ def annotations_to_string(annotations):
10531044
if isinstance(t, str):
10541045
result[n] = t
10551046
elif isinstance(t, set) and all(isinstance(x, type) for x in t):
1056-
# Sort set elements by name to ensure consistent ordering
1047+
# Sort set elements by name to ensure consistent ordering.
10571048
sorted_elements = sorted(t, key=lambda x: x.__name__)
10581049
result[n] = "{" + ", ".join(x.__name__ for x in sorted_elements) + "}"
10591050
else:

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy