diff options
Diffstat (limited to '.venv/lib/python3.12/site-packages/pypdf/types.py')
-rw-r--r-- | .venv/lib/python3.12/site-packages/pypdf/types.py | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/pypdf/types.py b/.venv/lib/python3.12/site-packages/pypdf/types.py new file mode 100644 index 00000000..b8fbab92 --- /dev/null +++ b/.venv/lib/python3.12/site-packages/pypdf/types.py @@ -0,0 +1,83 @@ +"""Helpers for working with PDF types.""" + +import sys +from typing import List, Union + +if sys.version_info[:2] >= (3, 8): + # Python 3.8+: https://peps.python.org/pep-0586 + from typing import Literal +else: + from typing_extensions import Literal + +if sys.version_info[:2] >= (3, 10): + # Python 3.10+: https://www.python.org/dev/peps/pep-0484 + from typing import TypeAlias +else: + from typing_extensions import TypeAlias + +from .generic._base import NameObject, NullObject, NumberObject +from .generic._data_structures import ArrayObject, Destination +from .generic._outline import OutlineItem + +BorderArrayType: TypeAlias = List[Union[NameObject, NumberObject, ArrayObject]] +OutlineItemType: TypeAlias = Union[OutlineItem, Destination] +FitType: TypeAlias = Literal[ + "/XYZ", "/Fit", "/FitH", "/FitV", "/FitR", "/FitB", "/FitBH", "/FitBV" +] +# Those go with the FitType: They specify values for the fit +ZoomArgType: TypeAlias = Union[NumberObject, NullObject, float] +ZoomArgsType: TypeAlias = List[ZoomArgType] + +# Recursive types like the following are not yet supported by mypy: +# OutlineType = List[Union[Destination, "OutlineType"]] +# See https://github.com/python/mypy/issues/731 +# Hence use this for the moment: +OutlineType = List[Union[Destination, List[Union[Destination, List[Destination]]]]] + +LayoutType: TypeAlias = Literal[ + "/NoLayout", + "/SinglePage", + "/OneColumn", + "/TwoColumnLeft", + "/TwoColumnRight", + "/TwoPageLeft", + "/TwoPageRight", +] +PagemodeType: TypeAlias = Literal[ + "/UseNone", + "/UseOutlines", + "/UseThumbs", + "/FullScreen", + "/UseOC", + "/UseAttachments", +] +AnnotationSubtype: TypeAlias = Literal[ + "/Text", + "/Link", + "/FreeText", + "/Line", + "/Square", + "/Circle", + "/Polygon", + "/PolyLine", + "/Highlight", + "/Underline", + "/Squiggly", + "/StrikeOut", + "/Caret", + "/Stamp", + "/Ink", + "/Popup", + "/FileAttachment", + "/Sound", + "/Movie", + "/Screen", + "/Widget", + "/PrinterMark", + "/TrapNet", + "/Watermark", + "/3D", + "/Redact", + "/Projection", + "/RichMedia", +] |