Skip to content

Commit bb2e56a

Browse files
committed
Extract ReadEngine and WriteEngine types for Excel
1 parent c74a250 commit bb2e56a

File tree

1 file changed

+15
-7
lines changed

1 file changed

+15
-7
lines changed

pandas-stubs/io/excel/_base.pyi

+15-7
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,10 @@ from odf.opendocument import OpenDocument
1616
from openpyxl.workbook.workbook import Workbook
1717
from pandas.core.frame import DataFrame
1818
import pyxlsb.workbook
19-
from typing_extensions import Self
19+
from typing_extensions import (
20+
Self,
21+
TypeAlias,
22+
)
2023
from xlrd.book import Book
2124

2225
from pandas._libs.lib import NoDefault
@@ -32,6 +35,8 @@ from pandas._typing import (
3235
WriteExcelBuffer,
3336
)
3437

38+
ReadEngine: TypeAlias = Literal["xlrd", "openpyxl", "odf", "pyxlsb"]
39+
3540
@overload
3641
def read_excel(
3742
io: (
@@ -50,7 +55,7 @@ def read_excel(
5055
index_col: int | Sequence[int] | None = ...,
5156
usecols: str | UsecolsArgType = ...,
5257
dtype: str | Dtype | Mapping[str, str | Dtype] | None = ...,
53-
engine: Literal["xlrd", "openpyxl", "odf", "pyxlsb"] | None = ...,
58+
engine: ReadEngine | None = ...,
5459
converters: Mapping[int | str, Callable[[object], object]] | None = ...,
5560
true_values: Iterable[Hashable] | None = ...,
5661
false_values: Iterable[Hashable] | None = ...,
@@ -92,7 +97,7 @@ def read_excel(
9297
index_col: int | Sequence[int] | None = ...,
9398
usecols: str | UsecolsArgType = ...,
9499
dtype: str | Dtype | Mapping[str, str | Dtype] | None = ...,
95-
engine: Literal["xlrd", "openpyxl", "odf", "pyxlsb"] | None = ...,
100+
engine: ReadEngine | None = ...,
96101
converters: Mapping[int | str, Callable[[object], object]] | None = ...,
97102
true_values: Iterable[Hashable] | None = ...,
98103
false_values: Iterable[Hashable] | None = ...,
@@ -135,7 +140,7 @@ def read_excel( # type: ignore[misc]
135140
index_col: int | Sequence[int] | None = ...,
136141
usecols: str | UsecolsArgType = ...,
137142
dtype: str | Dtype | Mapping[str, str | Dtype] | None = ...,
138-
engine: Literal["xlrd", "openpyxl", "odf", "pyxlsb"] | None = ...,
143+
engine: ReadEngine | None = ...,
139144
converters: Mapping[int | str, Callable[[object], object]] | None = ...,
140145
true_values: Iterable[Hashable] | None = ...,
141146
false_values: Iterable[Hashable] | None = ...,
@@ -177,7 +182,7 @@ def read_excel(
177182
index_col: int | Sequence[int] | None = ...,
178183
usecols: str | UsecolsArgType = ...,
179184
dtype: str | Dtype | Mapping[str, str | Dtype] | None = ...,
180-
engine: Literal["xlrd", "openpyxl", "odf", "pyxlsb"] | None = ...,
185+
engine: ReadEngine | None = ...,
181186
converters: Mapping[int | str, Callable[[object], object]] | None = ...,
182187
true_values: Iterable[Hashable] | None = ...,
183188
false_values: Iterable[Hashable] | None = ...,
@@ -202,11 +207,14 @@ def read_excel(
202207
dtype_backend: DtypeBackend | NoDefault = ...,
203208
) -> DataFrame: ...
204209

210+
211+
WriteEngine: TypeAlias = Literal["openpyxl", "odf", "xlsxwriter"]
212+
205213
class ExcelWriter:
206214
def __init__(
207215
self,
208216
path: FilePath | WriteExcelBuffer | ExcelWriter,
209-
engine: Literal["auto", "openpyxl", "odf", "xlsxwriter"] | None = ...,
217+
engine: WriteEngine | Literal["auto"] | None = ...,
210218
date_format: str | None = ...,
211219
datetime_format: str | None = ...,
212220
mode: Literal["w", "a"] = ...,
@@ -217,7 +225,7 @@ class ExcelWriter:
217225
@property
218226
def supported_extensions(self) -> tuple[str, ...]: ...
219227
@property
220-
def engine(self) -> Literal["openpyxl", "odf", "xlsxwriter"]: ...
228+
def engine(self) -> WriteEngine: ...
221229
@property
222230
def sheets(self) -> dict[str, Any]: ...
223231
@property

0 commit comments

Comments
 (0)