|
1 | 1 | """Code in here is only used by pypdf.filters._xobj_to_image"""
|
2 | 2 |
|
| 3 | +import sys |
3 | 4 | from io import BytesIO
|
4 | 5 | from typing import Any, List, Tuple, Union, cast
|
5 | 6 |
|
|
14 | 15 | NullObject,
|
15 | 16 | )
|
16 | 17 |
|
17 |
| -try: |
18 |
| - from typing import Literal, TypeAlias |
19 |
| -except ImportError: |
| 18 | +if sys.version_info[:2] >= (3, 8): |
| 19 | + from typing import Literal |
| 20 | +else: |
20 | 21 | # PEP 586 introduced typing.Literal with Python 3.8
|
21 | 22 | # For older Python versions, the backport typing_extensions is necessary:
|
22 |
| - from typing_extensions import Literal, TypeAlias # type: ignore[assignment] |
| 23 | + from typing_extensions import Literal # type: ignore[assignment] |
| 24 | + |
| 25 | +if sys.version_info[:2] >= (3, 10): |
| 26 | + from typing import TypeAlias |
| 27 | +else: |
| 28 | + from typing_extensions import TypeAlias |
23 | 29 |
|
24 | 30 |
|
25 | 31 | try:
|
@@ -70,22 +76,28 @@ def _get_imagemode(
|
70 | 76 | color_space = color_space[1]
|
71 | 77 | if isinstance(color_space, IndirectObject):
|
72 | 78 | color_space = color_space.get_object()
|
73 |
| - mode2, invert_color = _get_imagemode(color_space, color_components, prev_mode, depth + 1) |
| 79 | + mode2, invert_color = _get_imagemode( |
| 80 | + color_space, color_components, prev_mode, depth + 1 |
| 81 | + ) |
74 | 82 | if mode2 in ("RGB", "CMYK"):
|
75 | 83 | mode2 = "P"
|
76 | 84 | return mode2, invert_color
|
77 | 85 | elif color_space[0] == "/Separation":
|
78 | 86 | color_space = color_space[2]
|
79 | 87 | if isinstance(color_space, IndirectObject):
|
80 | 88 | color_space = color_space.get_object()
|
81 |
| - mode2, invert_color = _get_imagemode(color_space, color_components, prev_mode, depth + 1) |
| 89 | + mode2, invert_color = _get_imagemode( |
| 90 | + color_space, color_components, prev_mode, depth + 1 |
| 91 | + ) |
82 | 92 | return mode2, True
|
83 | 93 | elif color_space[0] == "/DeviceN":
|
84 | 94 | color_components = len(color_space[1])
|
85 | 95 | color_space = color_space[2]
|
86 | 96 | if isinstance(color_space, IndirectObject): # pragma: no cover
|
87 | 97 | color_space = color_space.get_object()
|
88 |
| - mode2, invert_color = _get_imagemode(color_space, color_components, prev_mode, depth + 1) |
| 98 | + mode2, invert_color = _get_imagemode( |
| 99 | + color_space, color_components, prev_mode, depth + 1 |
| 100 | + ) |
89 | 101 | return mode2, invert_color
|
90 | 102 |
|
91 | 103 | mode_map = {
|
|
0 commit comments