Skip to content

Commit 3073891

Browse files
committed
Use a match statement in _format_pprint()
1 parent 840e961 commit 3073891

File tree

1 file changed

+16
-18
lines changed

1 file changed

+16
-18
lines changed

Lib/pprint.py

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -622,25 +622,23 @@ def _format_pprint(self, object, method, context, maxlevels, level):
622622
readable = True
623623

624624
for item in method(object):
625-
if isinstance(item, tuple):
626-
if len(item) == 2:
627-
# (name, value) - always show
628-
name, value = item
629-
vrep, vreadable, _ = self.format(value, context, maxlevels, level + 1)
630-
parts.append(f"{name}={vrep}")
631-
readable = readable and vreadable
632-
elif len(item) == 3:
633-
# (name, value, default) - show only if value != default
634-
name, value, default = item
625+
match item:
626+
case (name, value, default):
627+
# Keyword argument w/default. Show only if value != default.
635628
if value != default:
636-
vrep, vreadable, _ = self.format(value, context, maxlevels, level + 1)
637-
parts.append(f"{name}={vrep}")
638-
readable = readable and vreadable
639-
else:
640-
# Positional argument
641-
vrep, vreadable, _ = self.format(item, context, maxlevels, level + 1)
642-
parts.append(vrep)
643-
readable = readable and vreadable
629+
formatted, is_readable, _ = self.format(value, context, maxlevels, level + 1)
630+
parts.append(f"{name}={formatted}")
631+
readable = readable and is_readable
632+
case (name, value):
633+
# Keyword argument. Always show.
634+
formatted, is_readable, _ = self.format(value, context, maxlevels, level + 1)
635+
parts.append(f"{name}={formatted}")
636+
readable = readable and is_readable
637+
case _:
638+
# Positional argument.
639+
formatted, is_readable, _ = self.format(item, context, maxlevels, level + 1)
640+
parts.append(formatted)
641+
readable = readable and is_readable
644642

645643
rep = f"{cls_name}({', '.join(parts)})"
646644
return rep, readable, False

0 commit comments

Comments
 (0)