Skip to content

Commit 7c29ee3

Browse files
authored
Add @deprecated decorator to openpyxl (#11535)
1 parent ca1e477 commit 7c29ee3

File tree

4 files changed

+13
-2
lines changed

4 files changed

+13
-2
lines changed
+3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1+
from typing_extensions import deprecated
2+
13
class StyleProxy:
24
def __init__(self, target) -> None: ...
35
def __getattr__(self, attr: str): ...
46
def __setattr__(self, attr: str, value) -> None: ...
57
def __copy__(self): ...
68
def __add__(self, other): ...
9+
@deprecated("Use copy(obj) or cell.obj = cell.obj + other")
710
def copy(self, **kw): ...
811
def __eq__(self, other: object) -> bool: ...
912
def __ne__(self, other: object) -> bool: ...

stubs/openpyxl/openpyxl/workbook/workbook.pyi

+6
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ from _typeshed import Incomplete, Unused
22
from collections.abc import Iterator
33
from datetime import datetime
44
from typing import Any, Final
5+
from typing_extensions import deprecated
56
from zipfile import ZipFile
67

78
from openpyxl import _Decodable, _ZipFileFileProtocol
@@ -52,22 +53,27 @@ class Workbook:
5253
) -> Any: ... # AnyOf[WriteOnlyWorksheet, Worksheet]
5354
def move_sheet(self, sheet: Worksheet | str, offset: int = 0) -> None: ...
5455
def remove(self, worksheet: Worksheet) -> None: ...
56+
@deprecated("Use wb.remove(worksheet) or del wb[sheetname]")
5557
def remove_sheet(self, worksheet: Worksheet) -> None: ...
5658
def create_chartsheet(self, title: str | _Decodable | None = None, index: int | None = None) -> Chartsheet: ...
59+
@deprecated("Use wb[sheetname]")
5760
def get_sheet_by_name(self, name: str) -> Worksheet: ...
5861
def __contains__(self, key: str) -> bool: ...
5962
def index(self, worksheet: Worksheet) -> int: ...
63+
@deprecated("Use wb.index(worksheet)")
6064
def get_index(self, worksheet: Worksheet) -> int: ...
6165
def __getitem__(self, key: str) -> Worksheet: ...
6266
def __delitem__(self, key: str) -> None: ...
6367
def __iter__(self) -> Iterator[Worksheet]: ...
68+
@deprecated("Use wb.sheetnames")
6469
def get_sheet_names(self) -> list[Worksheet]: ...
6570
@property
6671
def worksheets(self) -> list[Worksheet]: ...
6772
@property
6873
def chartsheets(self) -> list[Chartsheet]: ...
6974
@property
7075
def sheetnames(self) -> list[str]: ...
76+
@deprecated("Assign scoped named ranges directly to worksheets or global ones to the workbook. Deprecated in 3.1")
7177
def create_named_range(
7278
self, name: str, worksheet: Worksheet | None = None, value: str | Incomplete | None = None, scope: Unused = None
7379
) -> None: ...

stubs/openpyxl/openpyxl/worksheet/worksheet.pyi

+3-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ from collections.abc import Generator, Iterable, Iterator
33
from datetime import datetime
44
from types import GeneratorType
55
from typing import Any, Final, Literal, NoReturn, overload
6+
from typing_extensions import deprecated
67

78
from openpyxl import _Decodable, _VisibilityType
89
from openpyxl.cell import _CellValue
@@ -218,8 +219,9 @@ class Worksheet(_WorkbookChild):
218219
end_row: ConvertibleToInt,
219220
end_column: ConvertibleToInt,
220221
) -> None: ...
221-
# deprecated: Will always raise: TypeError: 'set' object is not subscriptable
222+
# Will always raise: TypeError: 'set' object is not subscriptable
222223
@property
224+
@deprecated("Use ws.merged_cells.ranges")
223225
def merged_cell_ranges(self) -> NoReturn: ...
224226
def unmerge_cells(
225227
self,

stubs/openpyxl/openpyxl/xml/functions.pyi

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ from _typeshed import Incomplete
22
from re import Pattern
33
from typing import Final
44

5-
# Can actually be imported from a mix of xml, lxml, et_xmlfile as defusedxml
5+
# Can actually be imported from a mix of xml, lxml, et_xmlfile and defusedxml
66
# But et_xmlfile is untyped. openpyxl does not directly depend on lxml/lxml-stubs.
77
# And forcing a dependency on defusedxml felt overkill as it just wraps xml
88
# So for typing purposes, let's pretend xml is the only dependency.

0 commit comments

Comments
 (0)