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

20 statements  

1# SPDX-FileCopyrightText: 2022 James R. Barlow 

2# SPDX-License-Identifier: MPL-2.0 

3 

4"""A library for manipulating PDFs.""" 

5 

6# isort:skip_file 

7 

8from __future__ import annotations 

9 

10from pikepdf._version import __version__ 

11 

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 

17 

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) 

79 

80from pikepdf.models.ctm import ( 

81 get_objects_with_ctm, 

82) 

83 

84 

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 

93 

94__libqpdf_version__: str = _core.qpdf_version() 

95 

96from pikepdf._explicit_conv import ( 

97 explicit_conversion, 

98 get_object_conversion_mode, 

99 set_object_conversion_mode, 

100) 

101 

102# Provide pikepdf.{open, new} -> pikepdf.Pdf.{open, new} 

103open = Pdf.open # pylint: disable=redefined-builtin 

104new = Pdf.new 

105 

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'} 

111 

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]