Skip to content

Commit f5e8e98

Browse files
committed
Extract ReadEngine and WriteEngine types for Excel
1 parent ae7e473 commit f5e8e98

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

pandas-stubs/io/excel/_base.pyi

+12-6
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ from types import TracebackType
99
from typing import (
1010
Any,
1111
Literal,
12+
TypeAlias,
1213
overload,
1314
)
1415

@@ -32,6 +33,8 @@ from pandas._typing import (
3233
WriteExcelBuffer,
3334
)
3435

36+
ReadEngine: TypeAlias = Literal["xlrd", "openpyxl", "odf", "pyxlsb"]
37+
3538
@overload
3639
def read_excel(
3740
io: (
@@ -50,7 +53,7 @@ def read_excel(
5053
index_col: int | Sequence[int] | None = ...,
5154
usecols: str | UsecolsArgType = ...,
5255
dtype: str | Dtype | Mapping[str, str | Dtype] | None = ...,
53-
engine: Literal["xlrd", "openpyxl", "odf", "pyxlsb"] | None = ...,
56+
engine: ReadEngine | None = ...,
5457
converters: Mapping[int | str, Callable[[object], object]] | None = ...,
5558
true_values: Iterable[Hashable] | None = ...,
5659
false_values: Iterable[Hashable] | None = ...,
@@ -92,7 +95,7 @@ def read_excel(
9295
index_col: int | Sequence[int] | None = ...,
9396
usecols: str | UsecolsArgType = ...,
9497
dtype: str | Dtype | Mapping[str, str | Dtype] | None = ...,
95-
engine: Literal["xlrd", "openpyxl", "odf", "pyxlsb"] | None = ...,
98+
engine: ReadEngine | None = ...,
9699
converters: Mapping[int | str, Callable[[object], object]] | None = ...,
97100
true_values: Iterable[Hashable] | None = ...,
98101
false_values: Iterable[Hashable] | None = ...,
@@ -135,7 +138,7 @@ def read_excel( # type: ignore[misc]
135138
index_col: int | Sequence[int] | None = ...,
136139
usecols: str | UsecolsArgType = ...,
137140
dtype: str | Dtype | Mapping[str, str | Dtype] | None = ...,
138-
engine: Literal["xlrd", "openpyxl", "odf", "pyxlsb"] | None = ...,
141+
engine: ReadEngine | None = ...,
139142
converters: Mapping[int | str, Callable[[object], object]] | None = ...,
140143
true_values: Iterable[Hashable] | None = ...,
141144
false_values: Iterable[Hashable] | None = ...,
@@ -177,7 +180,7 @@ def read_excel(
177180
index_col: int | Sequence[int] | None = ...,
178181
usecols: str | UsecolsArgType = ...,
179182
dtype: str | Dtype | Mapping[str, str | Dtype] | None = ...,
180-
engine: Literal["xlrd", "openpyxl", "odf", "pyxlsb"] | None = ...,
183+
engine: ReadEngine | None = ...,
181184
converters: Mapping[int | str, Callable[[object], object]] | None = ...,
182185
true_values: Iterable[Hashable] | None = ...,
183186
false_values: Iterable[Hashable] | None = ...,
@@ -202,11 +205,14 @@ def read_excel(
202205
dtype_backend: DtypeBackend | NoDefault = ...,
203206
) -> DataFrame: ...
204207

208+
209+
WriteEngine: TypeAlias = Literal["openpyxl", "odf", "xlsxwriter"]
210+
205211
class ExcelWriter:
206212
def __init__(
207213
self,
208214
path: FilePath | WriteExcelBuffer | ExcelWriter,
209-
engine: Literal["auto", "openpyxl", "odf", "xlsxwriter"] | None = ...,
215+
engine: WriteEngine | Literal["auto"] | None = ...,
210216
date_format: str | None = ...,
211217
datetime_format: str | None = ...,
212218
mode: Literal["w", "a"] = ...,
@@ -217,7 +223,7 @@ class ExcelWriter:
217223
@property
218224
def supported_extensions(self) -> tuple[str, ...]: ...
219225
@property
220-
def engine(self) -> Literal["openpyxl", "odf", "xlsxwriter"]: ...
226+
def engine(self) -> WriteEngine: ...
221227
@property
222228
def sheets(self) -> dict[str, Any]: ...
223229
@property

0 commit comments

Comments
 (0)