Skip to content

Commit ff85a4a

Browse files
authored
Typ columns setter as Hashable (#233)
* Typ columns setter as Hashable * Add tests * Change type and add tests * Adjust
1 parent 07f9398 commit ff85a4a

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

pandas-stubs/core/frame.pyi

+3-1
Original file line numberDiff line numberDiff line change
@@ -1189,7 +1189,9 @@ class DataFrame(NDFrame, OpsMixin):
11891189
@property
11901190
def columns(self) -> Index: ...
11911191
@columns.setter # setter needs to be right next to getter; otherwise mypy complains
1192-
def columns(self, cols: list[_str] | Index[_str]) -> None: ... # type: ignore[type-arg]
1192+
def columns(
1193+
self, cols: AnyArrayLike | list[HashableT] | tuple[HashableT, ...]
1194+
) -> None: ...
11931195
@property
11941196
def dtypes(self) -> Series: ...
11951197
@property

tests/test_frame.py

+8
Original file line numberDiff line numberDiff line change
@@ -1408,6 +1408,14 @@ def test_set_columns() -> None:
14081408
# https://github.com/python/mypy/issues/3004
14091409
# pyright doesn't need the ignore
14101410
df.columns = ["c", "d"] # type: ignore[assignment]
1411+
df.columns = [1, 2] # type: ignore[assignment]
1412+
df.columns = [1, "a"] # type: ignore[assignment]
1413+
df.columns = np.array([1, 2]) # type: ignore[assignment]
1414+
df.columns = pd.Series([1, 2]) # type: ignore[assignment]
1415+
df.columns = np.array([1, "a"]) # type: ignore[assignment]
1416+
df.columns = pd.Series([1, "a"]) # type: ignore[assignment]
1417+
df.columns = (1, 2) # type: ignore[assignment]
1418+
df.columns = (1, "a") # type: ignore[assignment]
14111419

14121420

14131421
def test_frame_index_numpy() -> None:

0 commit comments

Comments
 (0)