@@ -393,24 +393,57 @@ def __unicode__(self):
393
393
py2/py3.
394
394
"""
395
395
klass = self .__class__ .__name__
396
- space = ' ' * (len (klass ) + 1 )
397
396
data = self ._format_data ()
398
397
attrs = self ._format_attrs ()
399
- prepr = (u (",\n %s" ) % space ).join ([u ("%s=%s" ) % (k , v )
398
+ max_seq_items = get_option ('display.max_seq_items' )
399
+ if len (self ) > max_seq_items :
400
+ space = "\n %s" % (' ' * (len (klass ) + 1 ))
401
+ else :
402
+ space = " "
403
+
404
+ prepr = (u (",%s" ) % space ).join ([u ("%s=%s" ) % (k , v )
400
405
for k , v in attrs ])
401
- res = u ("%s(%s,\n %s%s)" ) % (klass ,
402
- data ,
403
- space ,
404
- prepr )
406
+ res = u ("%s(%s,%s%s)" ) % (klass ,
407
+ data ,
408
+ space ,
409
+ prepr )
405
410
406
411
return res
407
412
413
+ @property
414
+ def _formatter_func (self ):
415
+ """
416
+ Return the formatted data as a unicode string
417
+ """
418
+ return default_pprint
419
+
408
420
def _format_data (self ):
409
421
"""
410
422
Return the formatted data as a unicode string
411
423
"""
412
- return com .pprint_thing (self , escape_chars = ('\t ' , '\r ' , '\n ' ),
413
- quote_strings = True )
424
+
425
+ max_seq_items = get_option ('display.max_seq_items' )
426
+ formatter = self ._formatter_func
427
+ n = len (self )
428
+ if n == 0 :
429
+ summary = '[]'
430
+ elif n == 1 :
431
+ first = formatter (self [0 ])
432
+ summary = '[%s]' % first
433
+ elif n == 2 :
434
+ first = formatter (self [0 ])
435
+ last = formatter (self [- 1 ])
436
+ summary = '[%s, %s]' % (first , last )
437
+ elif n > max_seq_items :
438
+ n = min (max_seq_items // 2 ,2 )
439
+ head = ', ' .join ([ formatter (x ) for x in self [:n ] ])
440
+ tail = ', ' .join ([ formatter (x ) for x in self [- n :] ])
441
+ summary = '[%s, ..., %s]' % (head , tail )
442
+ else :
443
+ summary = "[%s]" % ', ' .join ([ formatter (x ) for x in self ])
444
+
445
+ return summary
446
+
414
447
415
448
def _format_attrs (self ):
416
449
"""
0 commit comments