diff --git a/stubs/openpyxl/@tests/stubtest_allowlist.txt b/stubs/openpyxl/@tests/stubtest_allowlist.txt index ff101fde030a..30fed9019b14 100644 --- a/stubs/openpyxl/@tests/stubtest_allowlist.txt +++ b/stubs/openpyxl/@tests/stubtest_allowlist.txt @@ -41,9 +41,8 @@ openpyxl\.descriptors\.(base\.)?MinMax\.allow_none openpyxl\.descriptors\.(base\.)?String\.allow_none openpyxl\.descriptors\.(base\.)?Typed\.allow_none -# Inconsistent methods because -# - using the default value results in an error because of the runtime type-guards -# - or, keyword arguments are explicitly specified +# "has a default value but stub argument does not" +# Runtime has default arguments that would fail openpyxl.cell.text.PhoneticProperties.__init__ openpyxl.cell.text.PhoneticText.__init__ openpyxl.chart.axis._BaseAxis.__init__ @@ -110,7 +109,6 @@ openpyxl.drawing.text.GeomGuide.__init__ openpyxl.drawing.text.PresetTextShape.__init__ openpyxl.drawing.text.TextField.__init__ openpyxl.drawing.text.TextNormalAutofit.__init__ -openpyxl.packaging.relationship.get_rel openpyxl.packaging.relationship.Relationship.__init__ openpyxl.packaging.workbook.ChildSheet.__init__ openpyxl.packaging.workbook.PivotCache.__init__ diff --git a/stubs/openpyxl/openpyxl/drawing/image.pyi b/stubs/openpyxl/openpyxl/drawing/image.pyi index 3bd545df3254..3864d30df85b 100644 --- a/stubs/openpyxl/openpyxl/drawing/image.pyi +++ b/stubs/openpyxl/openpyxl/drawing/image.pyi @@ -1,20 +1,9 @@ -from _typeshed import SupportsRead -from pathlib import Path -from types import ModuleType -from typing import Any -from typing_extensions import Literal, TypeAlias - -# Is actually PIL.Image.Image -_PILImageImage: TypeAlias = Any -# same as first parameter of PIL.Image.open -_PILImageFilePath: TypeAlias = str | bytes | Path | SupportsRead[bytes] - -PILImage: ModuleType | Literal[False] +from _typeshed import Incomplete class Image: anchor: str - ref: _PILImageImage | _PILImageFilePath - format: str - def __init__(self, img: _PILImageImage | _PILImageFilePath) -> None: ... + ref: Incomplete + format: Incomplete + def __init__(self, img) -> None: ... @property - def path(self) -> str: ... + def path(self): ... diff --git a/stubs/openpyxl/openpyxl/packaging/relationship.pyi b/stubs/openpyxl/openpyxl/packaging/relationship.pyi index 8a0aea2f71e3..09165e7bb179 100644 --- a/stubs/openpyxl/openpyxl/packaging/relationship.pyi +++ b/stubs/openpyxl/openpyxl/packaging/relationship.pyi @@ -1,17 +1,10 @@ from _typeshed import Incomplete, Unused from collections.abc import Generator -from typing import ClassVar, TypeVar, overload +from typing import ClassVar, overload from typing_extensions import Literal -from zipfile import ZipFile from openpyxl.descriptors.base import Alias, String from openpyxl.descriptors.serialisable import Serialisable -from openpyxl.pivot.cache import CacheDefinition -from openpyxl.pivot.record import RecordList -from openpyxl.pivot.table import TableDefinition - -_SerialisableT = TypeVar("_SerialisableT", bound=Serialisable) -_SerialisableRelTypeT = TypeVar("_SerialisableRelTypeT", bound=CacheDefinition | RecordList | TableDefinition) class Relationship(Serialisable): tagname: ClassVar[str] @@ -44,20 +37,5 @@ class RelationshipList(Serialisable): def to_tree(self): ... def get_rels_path(path): ... -def get_dependents(archive: ZipFile, filename: str) -> RelationshipList: ... - -# If `id` is None, `cls` needs to have ClassVar `rel_type`. -# The `deps` attribute used at runtime is for internal use immediatly after the return. -# `cls` cannot be None -@overload -def get_rel( - archive: ZipFile, deps: RelationshipList, id: None = None, *, cls: type[_SerialisableRelTypeT] -) -> _SerialisableRelTypeT | None: ... -@overload -def get_rel( - archive: ZipFile, deps: RelationshipList, id: None, cls: type[_SerialisableRelTypeT] -) -> _SerialisableRelTypeT | None: ... -@overload -def get_rel(archive: ZipFile, deps: RelationshipList, id: str, *, cls: type[_SerialisableT]) -> _SerialisableT: ... -@overload -def get_rel(archive: ZipFile, deps: RelationshipList, id: str, cls: type[_SerialisableT]) -> _SerialisableT: ... +def get_dependents(archive, filename): ... +def get_rel(archive, deps, id: Incomplete | None = None, cls: Incomplete | None = None): ... diff --git a/stubs/openpyxl/openpyxl/reader/drawings.pyi b/stubs/openpyxl/openpyxl/reader/drawings.pyi index f2bf8cd0863f..4334877fc2b0 100644 --- a/stubs/openpyxl/openpyxl/reader/drawings.pyi +++ b/stubs/openpyxl/openpyxl/reader/drawings.pyi @@ -1,6 +1 @@ -from zipfile import ZipFile - -from openpyxl.chart._chart import ChartBase -from openpyxl.drawing.image import Image - -def find_images(archive: ZipFile, path: str) -> tuple[list[ChartBase], list[Image]]: ... +def find_images(archive, path): ... diff --git a/stubs/openpyxl/openpyxl/reader/excel.pyi b/stubs/openpyxl/openpyxl/reader/excel.pyi index 894b397a972e..7464059aa03a 100644 --- a/stubs/openpyxl/openpyxl/reader/excel.pyi +++ b/stubs/openpyxl/openpyxl/reader/excel.pyi @@ -1,5 +1,4 @@ -from _typeshed import Incomplete, StrPath -from typing import IO +from _typeshed import Incomplete, StrPath, SupportsRead from typing_extensions import Final, Literal, TypeAlias from zipfile import ZipFile @@ -27,7 +26,7 @@ class ExcelReader: def __init__( self, - fn: StrPath | IO[bytes], + fn: SupportsRead[bytes] | str, read_only: bool = False, keep_vba: bool = False, data_only: bool = False, @@ -45,7 +44,7 @@ class ExcelReader: def read(self) -> None: ... def load_workbook( - filename: StrPath | IO[bytes], + filename: SupportsRead[bytes] | StrPath, read_only: bool = False, keep_vba: bool = False, data_only: bool = False, diff --git a/stubs/openpyxl/openpyxl/reader/workbook.pyi b/stubs/openpyxl/openpyxl/reader/workbook.pyi index eadcf9402b49..0638a3b2b461 100644 --- a/stubs/openpyxl/openpyxl/reader/workbook.pyi +++ b/stubs/openpyxl/openpyxl/reader/workbook.pyi @@ -1,5 +1,5 @@ +from _typeshed import Incomplete from collections.abc import Generator, Iterable -from zipfile import ZipFile from openpyxl.packaging.relationship import Relationship, RelationshipList from openpyxl.packaging.workbook import ChildSheet, PivotCache @@ -7,12 +7,12 @@ from openpyxl.pivot.cache import CacheDefinition from openpyxl.workbook import Workbook class WorkbookParser: - archive: ZipFile + archive: Incomplete workbook_part_name: str wb: Workbook keep_links: bool sheets: list[ChildSheet] - def __init__(self, archive: ZipFile, workbook_part_name: str, keep_links: bool = True) -> None: ... + def __init__(self, archive, workbook_part_name: str, keep_links: bool = True) -> None: ... @property def rels(self) -> RelationshipList: ... caches: Iterable[PivotCache] diff --git a/stubs/openpyxl/openpyxl/styles/stylesheet.pyi b/stubs/openpyxl/openpyxl/styles/stylesheet.pyi index 3141a3c2b944..b3c1465ad6ad 100644 --- a/stubs/openpyxl/openpyxl/styles/stylesheet.pyi +++ b/stubs/openpyxl/openpyxl/styles/stylesheet.pyi @@ -1,7 +1,6 @@ from _typeshed import Incomplete, Unused -from typing import ClassVar, TypeVar +from typing import ClassVar from typing_extensions import Literal, Self -from zipfile import ZipFile from openpyxl.descriptors.base import Typed from openpyxl.descriptors.excel import ExtensionList @@ -11,9 +10,6 @@ from openpyxl.styles.colors import ColorList from openpyxl.styles.named_styles import _NamedCellStyleList from openpyxl.styles.numbers import NumberFormatList from openpyxl.styles.table import TableStyleList -from openpyxl.workbook.workbook import Workbook - -_WorkbookT = TypeVar("_WorkbookT", bound=Workbook) class Stylesheet(Serialisable): tagname: ClassVar[str] @@ -54,5 +50,5 @@ class Stylesheet(Serialisable): def custom_formats(self): ... def to_tree(self, tagname: str | None = None, idx: Incomplete | None = None, namespace: str | None = None): ... -def apply_stylesheet(archive: ZipFile, wb: _WorkbookT) -> _WorkbookT | None: ... +def apply_stylesheet(archive, wb): ... def write_stylesheet(wb): ... diff --git a/stubs/openpyxl/openpyxl/workbook/external_link/external.pyi b/stubs/openpyxl/openpyxl/workbook/external_link/external.pyi index ad7cdcca4def..fcd66e68bdff 100644 --- a/stubs/openpyxl/openpyxl/workbook/external_link/external.pyi +++ b/stubs/openpyxl/openpyxl/workbook/external_link/external.pyi @@ -1,7 +1,6 @@ from _typeshed import Incomplete, Unused from typing import ClassVar from typing_extensions import Literal, TypeAlias -from zipfile import ZipFile from openpyxl.descriptors.base import Bool, Integer, NoneSet, String, Typed, _ConvertibleToBool, _ConvertibleToInt from openpyxl.descriptors.nested import NestedText @@ -77,4 +76,4 @@ class ExternalLink(Serialisable): @property def path(self): ... -def read_external_link(archive: ZipFile, book_path: str) -> ExternalLink: ... +def read_external_link(archive, book_path): ... diff --git a/stubs/openpyxl/openpyxl/workbook/workbook.pyi b/stubs/openpyxl/openpyxl/workbook/workbook.pyi index 06cd0794f177..f6c2571d2395 100644 --- a/stubs/openpyxl/openpyxl/workbook/workbook.pyi +++ b/stubs/openpyxl/openpyxl/workbook/workbook.pyi @@ -3,7 +3,6 @@ from _typeshed import Incomplete, StrPath from collections.abc import Iterator from typing import IO from typing_extensions import Final -from zipfile import ZipFile from openpyxl import _Decodable from openpyxl.chartsheet.chartsheet import Chartsheet @@ -23,7 +22,7 @@ class Workbook: security: Incomplete shared_strings: Incomplete loaded_theme: Incomplete - vba_archive: ZipFile | None + vba_archive: Incomplete is_template: bool code_name: Incomplete encoding: str diff --git a/stubs/openpyxl/openpyxl/writer/excel.pyi b/stubs/openpyxl/openpyxl/writer/excel.pyi index 24ec70d874d0..624a3c4c05bd 100644 --- a/stubs/openpyxl/openpyxl/writer/excel.pyi +++ b/stubs/openpyxl/openpyxl/writer/excel.pyi @@ -1,17 +1,12 @@ -from _typeshed import StrPath -from typing import IO -from zipfile import ZipFile - -from openpyxl.packaging.manifest import Manifest -from openpyxl.workbook.workbook import Workbook +from _typeshed import Incomplete class ExcelWriter: - workbook: Workbook - manifest: Manifest - vba_modified: set[str | None] - def __init__(self, workbook: Workbook, archive: ZipFile) -> None: ... + workbook: Incomplete + manifest: Incomplete + vba_modified: Incomplete + def __init__(self, workbook, archive) -> None: ... def write_data(self) -> None: ... def write_worksheet(self, ws) -> None: ... def save(self) -> None: ... -def save_workbook(workbook, filename: StrPath | IO[bytes]): ... +def save_workbook(workbook, filename): ...