@@ -653,6 +653,40 @@ def _safe_repr(self, object, context, maxlevels, level):
653
653
del context [objid ]
654
654
return "{%s}" % ", " .join (components ), readable , recursive
655
655
656
+ if (issubclass (typ , list ) and r is list .__repr__ ) or \
657
+ (issubclass (typ , tuple ) and r is tuple .__repr__ ):
658
+ if issubclass (typ , list ):
659
+ if not object :
660
+ return "[]" , True , False
661
+ format = "[%s]"
662
+ elif len (object ) == 1 :
663
+ format = "(%s,)"
664
+ else :
665
+ if not object :
666
+ return "()" , True , False
667
+ format = "(%s)"
668
+ objid = id (object )
669
+ if maxlevels and level >= maxlevels :
670
+ return format % "..." , False , objid in context
671
+ if objid in context :
672
+ return _recursion (object ), False , True
673
+ context [objid ] = 1
674
+ readable = True
675
+ recursive = False
676
+ components = []
677
+ append = components .append
678
+ level += 1
679
+ for o in object :
680
+ orepr , oreadable , orecur = self .format (
681
+ o , context , maxlevels , level )
682
+ append (orepr )
683
+ if not oreadable :
684
+ readable = False
685
+ if orecur :
686
+ recursive = True
687
+ del context [objid ]
688
+ return format % ", " .join (components ), readable , recursive
689
+
656
690
if issubclass (typ , _collections .abc .MappingView ) and r in self ._view_reprs :
657
691
objid = id (object )
658
692
if maxlevels and level >= maxlevels :
@@ -689,40 +723,6 @@ def _safe_repr(self, object, context, maxlevels, level):
689
723
del context [objid ]
690
724
return typ .__name__ + '([%s])' % ", " .join (components ), readable , recursive
691
725
692
- if (issubclass (typ , list ) and r is list .__repr__ ) or \
693
- (issubclass (typ , tuple ) and r is tuple .__repr__ ):
694
- if issubclass (typ , list ):
695
- if not object :
696
- return "[]" , True , False
697
- format = "[%s]"
698
- elif len (object ) == 1 :
699
- format = "(%s,)"
700
- else :
701
- if not object :
702
- return "()" , True , False
703
- format = "(%s)"
704
- objid = id (object )
705
- if maxlevels and level >= maxlevels :
706
- return format % "..." , False , objid in context
707
- if objid in context :
708
- return _recursion (object ), False , True
709
- context [objid ] = 1
710
- readable = True
711
- recursive = False
712
- components = []
713
- append = components .append
714
- level += 1
715
- for o in object :
716
- orepr , oreadable , orecur = self .format (
717
- o , context , maxlevels , level )
718
- append (orepr )
719
- if not oreadable :
720
- readable = False
721
- if orecur :
722
- recursive = True
723
- del context [objid ]
724
- return format % ", " .join (components ), readable , recursive
725
-
726
726
rep = repr (object )
727
727
return rep , (rep and not rep .startswith ('<' )), False
728
728
0 commit comments