From f562ea566cdb0db0f9d37ad9db3b8e450132cc12 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Wed, 4 Jan 2023 08:07:08 +0100 Subject: [PATCH] Remove PageObject protocol --- pypdf/_page.py | 4 ++-- pypdf/_protocols.py | 4 ---- pypdf/generic/_base.py | 12 ++++-------- 3 files changed, 6 insertions(+), 14 deletions(-) diff --git a/pypdf/_page.py b/pypdf/_page.py index 5286844eb..f9ed8f592 100644 --- a/pypdf/_page.py +++ b/pypdf/_page.py @@ -46,7 +46,7 @@ ) from ._cmap import build_char_map, unknown_char_map -from ._protocols import PageObjectProtocol, PdfReaderProtocol +from ._protocols import PdfReaderProtocol from ._utils import ( CompressedTransformationMatrix, File, @@ -331,7 +331,7 @@ def apply_on( return list(pt1) if isinstance(pt, list) else pt1 -class PageObject(DictionaryObject, PageObjectProtocol): +class PageObject(DictionaryObject): """ PageObject represents a single page within a PDF file. diff --git a/pypdf/_protocols.py b/pypdf/_protocols.py index c65e59d63..c490be536 100644 --- a/pypdf/_protocols.py +++ b/pypdf/_protocols.py @@ -64,7 +64,3 @@ def get_object(self, indirect_reference: Any) -> Optional[PdfObjectProtocol]: def write(self, stream: Union[Path, StrByteType]) -> Tuple[bool, IO]: ... - - -class PageObjectProtocol(Protocol): # pragma: no cover - indirect_reference: Any diff --git a/pypdf/generic/_base.py b/pypdf/generic/_base.py index 55e045be2..4abbd7131 100644 --- a/pypdf/generic/_base.py +++ b/pypdf/generic/_base.py @@ -33,11 +33,7 @@ from typing import Any, Callable, List, Optional, Tuple, Union, cast from .._codecs import _pdfdoc_encoding_rev -from .._protocols import ( - PageObjectProtocol, - PdfObjectProtocol, - PdfWriterProtocol, -) +from .._protocols import PdfObjectProtocol, PdfWriterProtocol from .._utils import ( StreamType, b_, @@ -250,14 +246,14 @@ def clone( pdf_dest._id_translated[id(self.pdf)] = {} if not force_duplicate and self.idnum in pdf_dest._id_translated[id(self.pdf)]: - dup: PageObjectProtocol = pdf_dest.get_object(pdf_dest._id_translated[id(self.pdf)][self.idnum]) # type: ignore + dup = pdf_dest.get_object(pdf_dest._id_translated[id(self.pdf)][self.idnum]) else: obj = self.get_object() assert obj is not None dup = obj.clone(pdf_dest, force_duplicate, ignore_fields) assert dup is not None - assert dup.indirect_reference is not None - return dup.indirect_reference + assert dup.indirect_reference is not None # type: ignore + return dup.indirect_reference # type: ignore @property def indirect_reference(self) -> "IndirectObject": # type: ignore[override]