aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/pypdf/types.py
diff options
context:
space:
mode:
Diffstat (limited to '.venv/lib/python3.12/site-packages/pypdf/types.py')
-rw-r--r--.venv/lib/python3.12/site-packages/pypdf/types.py83
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",
+]