Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.11/site-packages/pikepdf/__init__.py: 95%
Shortcuts on this page
r m x toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
Shortcuts on this page
r m x toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1# SPDX-FileCopyrightText: 2022 James R. Barlow
2# SPDX-License-Identifier: MPL-2.0
4"""A library for manipulating PDFs."""
6# isort:skip_file
8from __future__ import annotations
10from pikepdf._version import __version__
12try:
13 from pikepdf import _core
14except ImportError as _e: # pragma: no cover
15 _msg = "pikepdf's extension library failed to import"
16 raise ImportError(_msg) from _e
18from pikepdf._core import (
19 AccessMode,
20 AcroForm,
21 AcroFormField,
22 Annotation,
23 AnnotationFlag,
24 AttachedFileSpec,
25 ContentStreamInlineImage,
26 ContentStreamInstruction,
27 DataDecodingError,
28 DeletedObjectError,
29 ForeignObjectError,
30 FormFieldFlag,
31 Job,
32 JobUsageError,
33 Matrix,
34 NameTree,
35 NumberTree,
36 ObjectHelper,
37 ObjectStreamMode,
38 Page,
39 PasswordError,
40 Pdf,
41 PdfError,
42 Rectangle,
43 StreamDecodeLevel,
44 Token,
45 TokenFilter,
46 TokenType,
47)
48from pikepdf.exceptions import (
49 DependencyError,
50 OutlineStructureError,
51 UnsupportedImageTypeError,
52)
53from pikepdf.objects import (
54 Array,
55 Boolean,
56 Dictionary,
57 Integer,
58 Name,
59 NamePath,
60 Object,
61 ObjectType,
62 Operator,
63 Real,
64 Stream,
65 String,
66)
67from pikepdf.models import (
68 Encryption,
69 Outline,
70 OutlineItem,
71 PageLocation,
72 PdfImage,
73 PdfInlineImage,
74 Permissions,
75 make_page_destination,
76 parse_content_stream,
77 unparse_content_stream,
78)
80from pikepdf.models.ctm import (
81 get_objects_with_ctm,
82)
85# Importing these will monkeypatch classes defined in C++ and register a new
86# pdfdoc codec
87# While _cpphelpers is intended to be called from our C++ code only, explicitly
88# importing helps introspection tools like PyInstaller figure out that the module
89# is necessary.
90from pikepdf import _cpphelpers, _methods, codec # noqa: F401, F841
91from pikepdf import settings
92from pikepdf import exceptions
94__libqpdf_version__: str = _core.qpdf_version()
96from pikepdf._explicit_conv import (
97 explicit_conversion,
98 get_object_conversion_mode,
99 set_object_conversion_mode,
100)
102# Provide pikepdf.{open, new} -> pikepdf.Pdf.{open, new}
103open = Pdf.open # pylint: disable=redefined-builtin
104new = Pdf.new
106# Exclude .open, .new here from to make sure from pikepdf import * does not clobber
107# builtins.open()
108# Exclude codec, objects, jbig2 because we import the interesting bits from them
109# directly to here.
110_exclude_from__all__ = {'open', 'new', 'codec', 'objects', 'jbig2'}
112__all__ = [
113 '__libqpdf_version__',
114 '__version__',
115 'AccessMode',
116 'AcroForm',
117 'AcroFormField',
118 'Annotation',
119 'AnnotationFlag',
120 'Array',
121 'AttachedFileSpec',
122 'Boolean',
123 'ContentStreamInlineImage',
124 'ContentStreamInstruction',
125 'DataDecodingError',
126 'DeletedObjectError',
127 'DependencyError',
128 'Dictionary',
129 'Encryption',
130 'exceptions',
131 'explicit_conversion',
132 'ForeignObjectError',
133 'FormFieldFlag',
134 'get_object_conversion_mode',
135 'get_objects_with_ctm',
136 'HifiPrintImageNotTranscodableError',
137 'Integer',
138 'InvalidPdfImageError',
139 'Job',
140 'JobUsageError',
141 'make_page_destination',
142 'Matrix',
143 'models',
144 'Name',
145 'NamePath',
146 'NameTree',
147 'NumberTree',
148 'Object',
149 'ObjectHelper',
150 'ObjectStreamMode',
151 'ObjectType',
152 'Operator',
153 'Outline',
154 'OutlineItem',
155 'OutlineStructureError',
156 'Page',
157 'PageLocation',
158 'parse_content_stream',
159 'PasswordError',
160 'Pdf',
161 'PdfError',
162 'PdfImage',
163 'PdfInlineImage',
164 'Permissions',
165 'Real',
166 'Rectangle',
167 'set_object_conversion_mode',
168 'settings',
169 'Stream',
170 'StreamDecodeLevel',
171 'String',
172 'Token',
173 'TokenFilter',
174 'TokenType',
175 'unparse_content_stream',
176 'UnsupportedImageTypeError',
177]