Skip to content

Commit a00659a

Browse files
simonjayhawkinsjreback
authored andcommitted
REF: remove ExtensionArrayFormatter (pandas-dev#26833)
1 parent e8132a2 commit a00659a

File tree

2 files changed

+15
-31
lines changed

2 files changed

+15
-31
lines changed

pandas/core/indexes/interval.py

+3-5
Original file line numberDiff line numberDiff line change
@@ -1061,11 +1061,9 @@ def _format_with_header(self, header, **kwargs):
10611061

10621062
def _format_native_types(self, na_rep='NaN', quoting=None, **kwargs):
10631063
""" actually format my specific types """
1064-
from pandas.io.formats.format import ExtensionArrayFormatter
1065-
return ExtensionArrayFormatter(values=self,
1066-
na_rep=na_rep,
1067-
justify='all',
1068-
leading_space=False).get_result()
1064+
from pandas.io.formats.format import format_array
1065+
return format_array(values=self, na_rep=na_rep, justify='all',
1066+
leading_space=False)
10691067

10701068
def _format_data(self, name=None):
10711069

pandas/io/formats/format.py

+12-26
Original file line numberDiff line numberDiff line change
@@ -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-
12071193
def format_percentiles(percentiles):
12081194
"""
12091195
Outputs rounded and formatted percentiles.

0 commit comments

Comments
 (0)