MCPcopy
hub / github.com/pandas-dev/pandas / _validate_names

Method _validate_names

pandas/core/indexes/base.py:1817–1847  ·  view source on GitHub ↗

Handles the quirks of having a singular 'name' parameter for general Index and plural 'names' parameter for MultiIndex.

(
        self, name=None, names=None, deep: bool = False
    )

Source from the content-addressed store, hash-verified

1815
1816 @final
1817 def _validate_names(
1818 self, name=None, names=None, deep: bool = False
1819 ) -> list[Hashable]:
1820 """
1821 Handles the quirks of having a singular 'name' parameter for general
1822 Index and plural 'names' parameter for MultiIndex.
1823 """
1824 from copy import deepcopy
1825
1826 if names is not None and name is not None:
1827 raise TypeError("Can only provide one of `names` and `name`")
1828 if names is None and name is None:
1829 new_names = deepcopy(self.names) if deep else self.names
1830 elif names is not None:
1831 if not is_list_like(names):
1832 raise TypeError("Must pass list-like as `names`.")
1833 new_names = names
1834 elif not is_list_like(name):
1835 new_names = [name]
1836 else:
1837 new_names = name
1838
1839 if len(new_names) != len(self.names):
1840 raise ValueError(
1841 f"Length of new names must be {len(self.names)}, got {len(new_names)}"
1842 )
1843
1844 # All items in 'new_names' need to be hashable
1845 validate_all_hashable(*new_names, error_name=f"{type(self).__name__}.name")
1846
1847 return new_names
1848
1849 def _get_default_index_names(
1850 self, names: Hashable | Sequence[Hashable] | None = None, default=None

Callers 3

copyMethod · 0.95
copyMethod · 0.45
copyMethod · 0.45

Calls 1

validate_all_hashableFunction · 0.90

Tested by

no test coverage detected