@@ -236,6 +236,12 @@ def _strlen(x):
236236
237237
238238class TableFormatter (object ):
239+ is_truncated = False
240+ show_dimensions = None
241+
242+ @property
243+ def should_show_dimensions (self ):
244+ return self .show_dimensions is True or (self .show_dimensions == 'truncate' and self .is_truncated )
239245
240246 def _get_formatter (self , i ):
241247 if isinstance (self .formatters , (list , tuple )):
@@ -315,9 +321,9 @@ def _to_str_columns(self):
315321 _strlen = _strlen_func ()
316322
317323 cols_to_show = self .columns [:self .max_cols ]
318- truncate_h = self .max_cols and (len (self .columns ) > self .max_cols )
319- truncate_v = self .max_rows and (len (self .frame ) > self .max_rows )
320- self .truncated_v = truncate_v
324+ self . truncated_h = truncate_h = self .max_cols and (len (self .columns ) > self .max_cols )
325+ self . truncated_v = truncate_v = self .max_rows and (len (self .frame ) > self .max_rows )
326+ self .is_truncated = self . truncated_h or self . truncated_v
321327 if truncate_h :
322328 cols_to_show = self .columns [:self .max_cols ]
323329 else :
@@ -380,7 +386,7 @@ def to_string(self):
380386
381387 self .buf .writelines (text )
382388
383- if self .show_dimensions :
389+ if self .should_show_dimensions :
384390 self .buf .write ("\n \n [%d rows x %d columns]"
385391 % (len (frame ), len (frame .columns )))
386392
@@ -634,6 +640,8 @@ def __init__(self, formatter, classes=None, max_rows=None, max_cols=None):
634640
635641 self .max_rows = max_rows or len (self .fmt .frame )
636642 self .max_cols = max_cols or len (self .fmt .columns )
643+ self .show_dimensions = self .fmt .show_dimensions
644+ self .is_truncated = self .max_rows < len (self .fmt .frame ) or self .max_cols < len (self .fmt .columns )
637645
638646 def write (self , s , indent = 0 ):
639647 rs = com .pprint_thing (s )
@@ -709,7 +717,7 @@ def write_result(self, buf):
709717 indent = self ._write_body (indent )
710718
711719 self .write ('</table>' , indent )
712- if self .fmt . show_dimensions :
720+ if self .should_show_dimensions :
713721 by = chr (215 ) if compat .PY3 else unichr (215 ) # ×
714722 self .write (u ('<p>%d rows %s %d columns</p>' ) %
715723 (len (frame ), by , len (frame .columns )))
0 commit comments