@@ -411,24 +411,57 @@ def __unicode__(self):
411
411
py2/py3.
412
412
"""
413
413
klass = self .__class__ .__name__
414
- space = ' ' * (len (klass ) + 1 )
415
414
data = self ._format_data ()
416
415
attrs = self ._format_attrs ()
417
- prepr = (u (",\n %s" ) % space ).join ([u ("%s=%s" ) % (k , v )
416
+ max_seq_items = get_option ('display.max_seq_items' )
417
+ if len (self ) > max_seq_items :
418
+ space = "\n %s" % (' ' * (len (klass ) + 1 ))
419
+ else :
420
+ space = " "
421
+
422
+ prepr = (u (",%s" ) % space ).join ([u ("%s=%s" ) % (k , v )
418
423
for k , v in attrs ])
419
- res = u ("%s(%s,\n %s%s)" ) % (klass ,
420
- data ,
421
- space ,
422
- prepr )
424
+ res = u ("%s(%s,%s%s)" ) % (klass ,
425
+ data ,
426
+ space ,
427
+ prepr )
423
428
424
429
return res
425
430
431
+ @property
432
+ def _formatter_func (self ):
433
+ """
434
+ Return the formatted data as a unicode string
435
+ """
436
+ return default_pprint
437
+
426
438
def _format_data (self ):
427
439
"""
428
440
Return the formatted data as a unicode string
429
441
"""
430
- return com .pprint_thing (self , escape_chars = ('\t ' , '\r ' , '\n ' ),
431
- quote_strings = True )
442
+
443
+ max_seq_items = get_option ('display.max_seq_items' )
444
+ formatter = self ._formatter_func
445
+ n = len (self )
446
+ if n == 0 :
447
+ summary = '[]'
448
+ elif n == 1 :
449
+ first = formatter (self [0 ])
450
+ summary = '[%s]' % first
451
+ elif n == 2 :
452
+ first = formatter (self [0 ])
453
+ last = formatter (self [- 1 ])
454
+ summary = '[%s, %s]' % (first , last )
455
+ elif n > max_seq_items :
456
+ n = min (max_seq_items // 2 ,2 )
457
+ head = ', ' .join ([ formatter (x ) for x in self [:n ] ])
458
+ tail = ', ' .join ([ formatter (x ) for x in self [- n :] ])
459
+ summary = '[%s, ..., %s]' % (head , tail )
460
+ else :
461
+ summary = "[%s]" % ', ' .join ([ formatter (x ) for x in self ])
462
+
463
+ return summary
464
+
432
465
433
466
def _format_attrs (self ):
434
467
"""
0 commit comments