diff --git a/pandas/core/indexes/base.py b/pandas/core/indexes/base.py index 5259bbc38c2f22..ecdef214bbdd1a 100644 --- a/pandas/core/indexes/base.py +++ b/pandas/core/indexes/base.py @@ -8,9 +8,9 @@ Callable, FrozenSet, Hashable, + List, Optional, Union, - List, ) import warnings diff --git a/pandas/core/indexes/datetimelike.py b/pandas/core/indexes/datetimelike.py index f25426e4f8786c..52b4d3251d517c 100644 --- a/pandas/core/indexes/datetimelike.py +++ b/pandas/core/indexes/datetimelike.py @@ -339,7 +339,7 @@ def argmax(self, axis=None, skipna=True, *args, **kwargs): # Rendering Methods def format( - self, name: bool = False, formatter=None, date_format=None, na_rep="NaT" + self, name: bool = False, formatter=None, na_rep="NaT", date_format=None ) -> List[str]: """ Render a string representation of the Index. diff --git a/pandas/core/indexes/multi.py b/pandas/core/indexes/multi.py index 018b6806c5603d..0878b9344a2f1c 100644 --- a/pandas/core/indexes/multi.py +++ b/pandas/core/indexes/multi.py @@ -1231,13 +1231,17 @@ def _format_native_types(self, na_rep="nan", **kwargs): def format( self, + name=None, + formatter=None, + na_rep=None, + names=False, space=2, sparsify=None, adjoin=True, - names=False, - na_rep=None, - formatter=None, ) -> list: + if name is not None: + names = name + if len(self) == 0: return [] @@ -1265,13 +1269,13 @@ def format( stringified_levels.append(formatted) result_levels = [] - for lev, name in zip(stringified_levels, self.names): + for lev, lev_name in zip(stringified_levels, self.names): level = [] if names: level.append( - pprint_thing(name, escape_chars=("\t", "\r", "\n")) - if name is not None + pprint_thing(lev_name, escape_chars=("\t", "\r", "\n")) + if lev_name is not None else "" ) diff --git a/pandas/io/formats/format.py b/pandas/io/formats/format.py index 22cdd8e235e0b0..b5d5f930f881d1 100644 --- a/pandas/io/formats/format.py +++ b/pandas/io/formats/format.py @@ -330,9 +330,8 @@ def _get_footer(self) -> str: def _get_formatted_index(self) -> Tuple[List[str], bool]: index = self.tr_series.index - is_multi = isinstance(index, MultiIndex) - if is_multi: + if isinstance(index, MultiIndex): have_header = any(name for name in index.names) fmt_index = index.format(names=True) else: diff --git a/pandas/io/formats/html.py b/pandas/io/formats/html.py index 7ea2417ceb24b4..13f0ab1e8a52ce 100644 --- a/pandas/io/formats/html.py +++ b/pandas/io/formats/html.py @@ -442,6 +442,7 @@ def _write_hierarchical_rows( frame = self.fmt.tr_frame nrows = len(frame) + assert isinstance(frame.index, MultiIndex) idx_values = frame.index.format(sparsify=False, adjoin=False, names=False) idx_values = list(zip(*idx_values))