@@ -849,7 +849,7 @@ def _get_column_name_list(self):
849849# Array formatters 
850850
851851
852- def  format_array (values , formatter , float_format = None , na_rep = 'NaN' ,
852+ def  format_array (values , formatter = None , float_format = None , na_rep = 'NaN' ,
853853                 digits = None , space = None , justify = 'right' , decimal = '.' ,
854854                 leading_space = None ):
855855    """ 
@@ -879,14 +879,23 @@ def format_array(values, formatter, float_format=None, na_rep='NaN',
879879    List[str] 
880880    """ 
881881
882+     if  is_extension_array_dtype (values .dtype ):
883+         if  isinstance (values , (ABCIndexClass , ABCSeries )):
884+             values  =  values ._values 
885+ 
886+         if  is_categorical_dtype (values .dtype ):
887+             # Categorical is special for now, so that we can preserve tzinfo 
888+             values  =  values .get_values ()
889+ 
890+         if  not  is_datetime64tz_dtype (values .dtype ):
891+             values  =  np .asarray (values )
892+ 
882893    if  is_datetime64_dtype (values .dtype ):
883894        fmt_klass  =  Datetime64Formatter 
884895    elif  is_datetime64tz_dtype (values ):
885896        fmt_klass  =  Datetime64TZFormatter 
886897    elif  is_timedelta64_dtype (values .dtype ):
887898        fmt_klass  =  Timedelta64Formatter 
888-     elif  is_extension_array_dtype (values .dtype ):
889-         fmt_klass  =  ExtensionArrayFormatter 
890899    elif  is_float_dtype (values .dtype ) or  is_complex_dtype (values .dtype ):
891900        fmt_klass  =  FloatArrayFormatter 
892901    elif  is_integer_dtype (values .dtype ):
@@ -1181,29 +1190,6 @@ def _format_strings(self):
11811190        return  fmt_values .tolist ()
11821191
11831192
1184- class  ExtensionArrayFormatter (GenericArrayFormatter ):
1185-     def  _format_strings (self ):
1186-         values  =  self .values 
1187-         if  isinstance (values , (ABCIndexClass , ABCSeries )):
1188-             values  =  values ._values 
1189- 
1190-         formatter  =  values ._formatter (boxed = True )
1191- 
1192-         if  is_categorical_dtype (values .dtype ):
1193-             # Categorical is special for now, so that we can preserve tzinfo 
1194-             array  =  values .get_values ()
1195-         else :
1196-             array  =  np .asarray (values )
1197- 
1198-         fmt_values  =  format_array (array ,
1199-                                   formatter ,
1200-                                   float_format = self .float_format ,
1201-                                   na_rep = self .na_rep , digits = self .digits ,
1202-                                   space = self .space , justify = self .justify ,
1203-                                   leading_space = self .leading_space )
1204-         return  fmt_values 
1205- 
1206- 
12071193def  format_percentiles (percentiles ):
12081194    """ 
12091195    Outputs rounded and formatted percentiles. 
0 commit comments