1
1
from _typeshed import ConvertibleToInt , Incomplete
2
2
from collections .abc import Generator , Iterable , Iterator
3
- from datetime import datetime
4
3
from types import GeneratorType
5
4
from typing import Any , Final , Literal , NoReturn , overload
6
5
from typing_extensions import deprecated
7
6
8
7
from openpyxl import _Decodable , _VisibilityType
9
- from openpyxl .cell import _CellOrMergedCell , _CellValue
8
+ from openpyxl .cell import _AnyCellValue , _CellGetValue , _CellOrMergedCell , _CellSetValue
10
9
from openpyxl .cell .cell import Cell
11
10
from openpyxl .chart ._chart import ChartBase
12
11
from openpyxl .drawing .image import Image
@@ -87,7 +86,11 @@ class Worksheet(_WorkbookChild):
87
86
def freeze_panes (self ) -> str | None : ...
88
87
@freeze_panes .setter
89
88
def freeze_panes (self , topLeftCell : str | Cell | None = None ) -> None : ...
90
- def cell (self , row : int , column : int , value : _CellValue | None = None ) -> _CellOrMergedCell : ...
89
+ # A MergedCell value should be kept to None
90
+ @overload
91
+ def cell (self , row : int , column : int , value : None = None ) -> _CellOrMergedCell : ...
92
+ @overload
93
+ def cell (self , row : int , column : int , value : _CellSetValue = None ) -> Cell : ...
91
94
# An int is necessarily a row selection
92
95
@overload
93
96
def __getitem__ (self , key : int ) -> tuple [_CellOrMergedCell , ...]: ...
@@ -99,7 +102,7 @@ class Worksheet(_WorkbookChild):
99
102
def __getitem__ (
100
103
self , key : str
101
104
) -> Any : ... # AnyOf[_CellOrMergedCell, tuple[_CellOrMergedCell, ...], tuple[tuple[_CellOrMergedCell, ...], ...]]
102
- def __setitem__ (self , key : str , value : _CellValue ) -> None : ...
105
+ def __setitem__ (self , key : str , value : _CellSetValue ) -> None : ...
103
106
def __iter__ (self ) -> Iterator [tuple [_CellOrMergedCell , ...]]: ...
104
107
def __delitem__ (self , key : str ) -> None : ...
105
108
@property
@@ -116,7 +119,7 @@ class Worksheet(_WorkbookChild):
116
119
@overload
117
120
def iter_rows (
118
121
self , min_row : int | None , max_row : int | None , min_col : int | None , max_col : int | None , values_only : Literal [True ]
119
- ) -> Generator [tuple [str | float | datetime | None , ...], None , None ]: ...
122
+ ) -> Generator [tuple [_CellGetValue , ...], None , None ]: ...
120
123
@overload
121
124
def iter_rows (
122
125
self ,
@@ -126,7 +129,7 @@ class Worksheet(_WorkbookChild):
126
129
max_col : int | None = None ,
127
130
* ,
128
131
values_only : Literal [True ],
129
- ) -> Generator [tuple [str | float | datetime | None , ...], None , None ]: ...
132
+ ) -> Generator [tuple [_CellGetValue , ...], None , None ]: ...
130
133
@overload
131
134
def iter_rows (
132
135
self ,
@@ -139,9 +142,7 @@ class Worksheet(_WorkbookChild):
139
142
@overload
140
143
def iter_rows (
141
144
self , min_row : int | None , max_row : int | None , min_col : int | None , max_col : int | None , values_only : bool
142
- ) -> (
143
- Generator [tuple [_CellOrMergedCell , ...], None , None ] | Generator [tuple [str | float | datetime | None , ...], None , None ]
144
- ): ...
145
+ ) -> Generator [tuple [_CellOrMergedCell , ...], None , None ] | Generator [tuple [_CellGetValue , ...], None , None ]: ...
145
146
@overload
146
147
def iter_rows (
147
148
self ,
@@ -151,17 +152,15 @@ class Worksheet(_WorkbookChild):
151
152
max_col : int | None = None ,
152
153
* ,
153
154
values_only : bool ,
154
- ) -> (
155
- Generator [tuple [_CellOrMergedCell , ...], None , None ] | Generator [tuple [str | float | datetime | None , ...], None , None ]
156
- ): ...
155
+ ) -> Generator [tuple [_CellOrMergedCell , ...], None , None ] | Generator [tuple [_CellGetValue , ...], None , None ]: ...
157
156
@property
158
157
def rows (self ) -> Generator [tuple [_CellOrMergedCell , ...], None , None ]: ...
159
158
@property
160
- def values (self ) -> Generator [tuple [_CellValue | None , ...]]: ...
159
+ def values (self ) -> Generator [tuple [_CellGetValue , ...]]: ...
161
160
@overload
162
161
def iter_cols (
163
162
self , min_col : int | None , max_col : int | None , min_row : int | None , max_row : int | None , values_only : Literal [True ]
164
- ) -> Generator [tuple [str | float | datetime | None , ...], None , None ]: ...
163
+ ) -> Generator [tuple [_CellGetValue , ...], None , None ]: ...
165
164
@overload
166
165
def iter_cols (
167
166
self ,
@@ -171,7 +170,7 @@ class Worksheet(_WorkbookChild):
171
170
max_row : int | None = None ,
172
171
* ,
173
172
values_only : Literal [True ],
174
- ) -> Generator [tuple [str | float | datetime | None , ...], None , None ]: ...
173
+ ) -> Generator [tuple [_CellGetValue , ...], None , None ]: ...
175
174
@overload
176
175
def iter_cols (
177
176
self ,
@@ -184,9 +183,7 @@ class Worksheet(_WorkbookChild):
184
183
@overload
185
184
def iter_cols (
186
185
self , min_col : int | None , max_col : int | None , min_row : int | None , max_row : int | None , values_only : bool
187
- ) -> (
188
- Generator [tuple [_CellOrMergedCell , ...], None , None ] | Generator [tuple [str | float | datetime | None , ...], None , None ]
189
- ): ...
186
+ ) -> Generator [tuple [_CellOrMergedCell , ...], None , None ] | Generator [tuple [_CellGetValue , ...], None , None ]: ...
190
187
@overload
191
188
def iter_cols (
192
189
self ,
@@ -196,9 +193,7 @@ class Worksheet(_WorkbookChild):
196
193
max_row : int | None = None ,
197
194
* ,
198
195
values_only : bool ,
199
- ) -> (
200
- Generator [tuple [_CellOrMergedCell , ...], None , None ] | Generator [tuple [str | float | datetime | None , ...], None , None ]
201
- ): ...
196
+ ) -> Generator [tuple [_CellOrMergedCell , ...], None , None ] | Generator [tuple [_CellGetValue , ...], None , None ]: ...
202
197
@property
203
198
def columns (self ) -> Generator [tuple [_CellOrMergedCell , ...], None , None ]: ...
204
199
@property
@@ -252,11 +247,11 @@ class Worksheet(_WorkbookChild):
252
247
def append (
253
248
self ,
254
249
iterable : (
255
- list [Any ] # lists are invariant, but any subtype or union will do
256
- | tuple [_CellOrMergedCell | str | float | datetime | None , ...]
250
+ list [_AnyCellValue ]
251
+ | tuple [_CellOrMergedCell | _CellGetValue , ...]
257
252
| range
258
- | GeneratorType [_CellOrMergedCell | str | float | datetime | None , object , object ]
259
- | dict [int | str , str | float | datetime | None ]
253
+ | GeneratorType [_CellOrMergedCell | _CellGetValue , object , object ]
254
+ | dict [int | str , _AnyCellValue ]
260
255
),
261
256
) -> None : ...
262
257
def insert_rows (self , idx : int , amount : int = 1 ) -> None : ...
0 commit comments