PyMuPDF 1.25.1__tar.gz → 1.25.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (266) hide show
  1. {pymupdf-1.25.1 → pymupdf-1.25.3}/PKG-INFO +2 -2
  2. {pymupdf-1.25.1 → pymupdf-1.25.3}/changes.txt +45 -0
  3. {pymupdf-1.25.1 → pymupdf-1.25.3}/scripts/sysinstall.py +3 -2
  4. {pymupdf-1.25.1 → pymupdf-1.25.3}/scripts/test.py +3 -2
  5. {pymupdf-1.25.1 → pymupdf-1.25.3}/setup.py +11 -4
  6. {pymupdf-1.25.1 → pymupdf-1.25.3}/src/__init__.py +350 -859
  7. {pymupdf-1.25.1 → pymupdf-1.25.3}/src/extra.i +127 -43
  8. {pymupdf-1.25.1 → pymupdf-1.25.3}/src/utils.py +153 -12
  9. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/conftest.py +5 -0
  10. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/gentle_compare.py +47 -2
  11. pymupdf-1.25.3/tests/resources/cms-etc-filled.pdf +0 -0
  12. pymupdf-1.25.3/tests/resources/img-regular.pdf +0 -0
  13. pymupdf-1.25.3/tests/resources/img-transparent.pdf +0 -0
  14. pymupdf-1.25.3/tests/resources/interfield-calculation.pdf +669 -0
  15. pymupdf-1.25.3/tests/resources/test-4055.pdf +0 -0
  16. pymupdf-1.25.1/tests/resources/test_1645_expected_1.25.pdf → pymupdf-1.25.3/tests/resources/test_1645_expected.pdf +0 -0
  17. pymupdf-1.25.3/tests/resources/test_3050_expected.png +0 -0
  18. pymupdf-1.25.3/tests/resources/test_3448.pdf-expected.png +0 -0
  19. pymupdf-1.25.3/tests/resources/test_3854_expected.png +0 -0
  20. pymupdf-1.25.3/tests/resources/test_4139.pdf +0 -0
  21. pymupdf-1.25.3/tests/resources/test_4141.pdf +0 -0
  22. pymupdf-1.25.3/tests/resources/test_4147.pdf +0 -0
  23. pymupdf-1.25.3/tests/resources/test_4179.pdf +0 -0
  24. pymupdf-1.25.3/tests/resources/test_4179_expected.png +0 -0
  25. pymupdf-1.25.3/tests/resources/test_4180.pdf +0 -0
  26. pymupdf-1.25.3/tests/resources/test_4180_expected.png +0 -0
  27. pymupdf-1.25.3/tests/resources/test_4182.pdf +0 -0
  28. pymupdf-1.25.3/tests/resources/test_4182_expected.png +0 -0
  29. pymupdf-1.25.3/tests/resources/test_4245.pdf +0 -0
  30. pymupdf-1.25.3/tests/resources/test_4245_expected.png +0 -0
  31. pymupdf-1.25.3/tests/test_4141.py +19 -0
  32. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_annots.py +114 -32
  33. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_codespell.py +1 -1
  34. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_general.py +1 -1
  35. pymupdf-1.25.3/tests/test_imagemasks.py +31 -0
  36. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_insertpdf.py +35 -0
  37. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_mupdf_regressions.py +14 -8
  38. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_pixmap.py +53 -19
  39. pymupdf-1.25.3/tests/test_spikes.py +42 -0
  40. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_tesseract.py +3 -3
  41. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_textextract.py +393 -0
  42. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_toc.py +5 -5
  43. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_widgets.py +55 -0
  44. pymupdf-1.25.1/tests/resources/test_1645_expected_1.24.2.pdf +0 -0
  45. pymupdf-1.25.1/tests/resources/test_1645_expected_1.24.pdf +0 -0
  46. pymupdf-1.25.1/tests/resources/test_3448.pdf-expected.png +0 -0
  47. pymupdf-1.25.1/tests/resources/test_3854_expected.png +0 -0
  48. {pymupdf-1.25.1 → pymupdf-1.25.3}/COPYING +0 -0
  49. {pymupdf-1.25.1 → pymupdf-1.25.3}/README.md +0 -0
  50. {pymupdf-1.25.1 → pymupdf-1.25.3}/READMEb.md +0 -0
  51. {pymupdf-1.25.1 → pymupdf-1.25.3}/READMEd.md +0 -0
  52. {pymupdf-1.25.1 → pymupdf-1.25.3}/pipcl.py +0 -0
  53. {pymupdf-1.25.1 → pymupdf-1.25.3}/pyproject.toml +0 -0
  54. {pymupdf-1.25.1 → pymupdf-1.25.3}/pytest.ini +0 -0
  55. {pymupdf-1.25.1 → pymupdf-1.25.3}/scripts/gh_release.py +0 -0
  56. {pymupdf-1.25.1 → pymupdf-1.25.3}/src/__main__.py +0 -0
  57. {pymupdf-1.25.1 → pymupdf-1.25.3}/src/_apply_pages.py +0 -0
  58. {pymupdf-1.25.1 → pymupdf-1.25.3}/src/fitz___init__.py +0 -0
  59. {pymupdf-1.25.1 → pymupdf-1.25.3}/src/fitz_table.py +0 -0
  60. {pymupdf-1.25.1 → pymupdf-1.25.3}/src/fitz_utils.py +0 -0
  61. {pymupdf-1.25.1 → pymupdf-1.25.3}/src/pymupdf.py +0 -0
  62. {pymupdf-1.25.1 → pymupdf-1.25.3}/src/table.py +0 -0
  63. {pymupdf-1.25.1 → pymupdf-1.25.3}/src_classic/__init__.py +0 -0
  64. {pymupdf-1.25.1 → pymupdf-1.25.3}/src_classic/__main__.py +0 -0
  65. {pymupdf-1.25.1 → pymupdf-1.25.3}/src_classic/_config.h +0 -0
  66. {pymupdf-1.25.1 → pymupdf-1.25.3}/src_classic/fitz_old.i +0 -0
  67. {pymupdf-1.25.1 → pymupdf-1.25.3}/src_classic/helper-annot.i +0 -0
  68. {pymupdf-1.25.1 → pymupdf-1.25.3}/src_classic/helper-convert.i +0 -0
  69. {pymupdf-1.25.1 → pymupdf-1.25.3}/src_classic/helper-defines.i +0 -0
  70. {pymupdf-1.25.1 → pymupdf-1.25.3}/src_classic/helper-devices.i +0 -0
  71. {pymupdf-1.25.1 → pymupdf-1.25.3}/src_classic/helper-fields.i +0 -0
  72. {pymupdf-1.25.1 → pymupdf-1.25.3}/src_classic/helper-fileobj.i +0 -0
  73. {pymupdf-1.25.1 → pymupdf-1.25.3}/src_classic/helper-geo-c.i +0 -0
  74. {pymupdf-1.25.1 → pymupdf-1.25.3}/src_classic/helper-geo-py.i +0 -0
  75. {pymupdf-1.25.1 → pymupdf-1.25.3}/src_classic/helper-globals.i +0 -0
  76. {pymupdf-1.25.1 → pymupdf-1.25.3}/src_classic/helper-other.i +0 -0
  77. {pymupdf-1.25.1 → pymupdf-1.25.3}/src_classic/helper-pdfinfo.i +0 -0
  78. {pymupdf-1.25.1 → pymupdf-1.25.3}/src_classic/helper-pixmap.i +0 -0
  79. {pymupdf-1.25.1 → pymupdf-1.25.3}/src_classic/helper-portfolio.i +0 -0
  80. {pymupdf-1.25.1 → pymupdf-1.25.3}/src_classic/helper-python.i +0 -0
  81. {pymupdf-1.25.1 → pymupdf-1.25.3}/src_classic/helper-select.i +0 -0
  82. {pymupdf-1.25.1 → pymupdf-1.25.3}/src_classic/helper-stext.i +0 -0
  83. {pymupdf-1.25.1 → pymupdf-1.25.3}/src_classic/helper-xobject.i +0 -0
  84. {pymupdf-1.25.1 → pymupdf-1.25.3}/src_classic/utils.py +0 -0
  85. {pymupdf-1.25.1 → pymupdf-1.25.3}/src_classic/version.i +0 -0
  86. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/README.md +0 -0
  87. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/001003ED.pdf +0 -0
  88. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/1.pdf +0 -0
  89. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/2.pdf +0 -0
  90. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/2201.00069.pdf +0 -0
  91. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/3.pdf +0 -0
  92. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/4.pdf +0 -0
  93. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/Bezier.epub +0 -0
  94. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/PragmaticaC.otf +0 -0
  95. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/battery-file-22.pdf +0 -0
  96. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/bug1945.pdf +0 -0
  97. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/bug1971.pdf +0 -0
  98. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/chinese-tables.pdf +0 -0
  99. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/chinese-tables.pickle +0 -0
  100. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/circular-toc.pdf +0 -0
  101. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/cython.pdf +0 -0
  102. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/cython.pickle +0 -0
  103. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/dotted-gridlines.pdf +0 -0
  104. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/full_toc.txt +0 -0
  105. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/github_sample.pdf +0 -0
  106. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/has-bad-fonts.pdf +0 -0
  107. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/image-file1.pdf +0 -0
  108. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/img-transparent.png +0 -0
  109. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/joined.pdf +0 -0
  110. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/metadata.txt +0 -0
  111. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/mupdf_explored.pdf +0 -0
  112. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/nur-ruhig.jpg +0 -0
  113. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/quad-calc-0.pdf +0 -0
  114. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/simple_toc.txt +0 -0
  115. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/small-table.pdf +0 -0
  116. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/strict-yes-no.pdf +0 -0
  117. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/symbol-list.pdf +0 -0
  118. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/symbols.txt +0 -0
  119. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test-2333.pdf +0 -0
  120. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test-2462.pdf +0 -0
  121. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test-2812.pdf +0 -0
  122. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test-3143.pdf +0 -0
  123. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test-3150.pdf +0 -0
  124. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test-3207.pdf +0 -0
  125. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test-3591.pdf +0 -0
  126. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test-3820.pdf +0 -0
  127. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test-707448.pdf +0 -0
  128. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test-707673.pdf +0 -0
  129. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test-E+A.pdf +0 -0
  130. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test-linebreaks.pdf +0 -0
  131. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test2093.pdf +0 -0
  132. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test2182.pdf +0 -0
  133. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test2238.pdf +0 -0
  134. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_1824.pdf +0 -0
  135. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_2108.pdf +0 -0
  136. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_2270.pdf +0 -0
  137. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_2533.pdf +0 -0
  138. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_2548.pdf +0 -0
  139. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_2553-2.pdf +0 -0
  140. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_2553.pdf +0 -0
  141. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_2596.pdf +0 -0
  142. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_2608_expected +0 -0
  143. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_2634.pdf +0 -0
  144. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_2635.pdf +0 -0
  145. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_2645_1.pdf +0 -0
  146. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_2645_2.pdf +0 -0
  147. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_2645_3.pdf +0 -0
  148. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_2710.pdf +0 -0
  149. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_2730.pdf +0 -0
  150. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_2742.pdf +0 -0
  151. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_2788.pdf +0 -0
  152. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_2791_content.pdf +0 -0
  153. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_2791_coverpage.pdf +0 -0
  154. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_2861.pdf +0 -0
  155. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_2871.pdf +0 -0
  156. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_2885.pdf +0 -0
  157. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_2904.pdf +0 -0
  158. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_2907.pdf +0 -0
  159. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_2954.pdf +0 -0
  160. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_2957_1.pdf +0 -0
  161. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_2957_2.pdf +0 -0
  162. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_2969.pdf +0 -0
  163. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_2979.pdf +0 -0
  164. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3058.pdf +0 -0
  165. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3062.pdf +0 -0
  166. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3070.pdf +0 -0
  167. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3072.pdf +0 -0
  168. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3087.pdf +0 -0
  169. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3179.pdf +0 -0
  170. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3186.pdf +0 -0
  171. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3197.pdf +0 -0
  172. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3357.pdf +0 -0
  173. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3362.pdf +0 -0
  174. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3376.pdf +0 -0
  175. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3448.pdf +0 -0
  176. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3450.pdf +0 -0
  177. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3493.epub +0 -0
  178. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3569.pdf +0 -0
  179. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3594.pdf +0 -0
  180. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3615.epub +0 -0
  181. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3624.pdf +0 -0
  182. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3624_expected.png +0 -0
  183. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3650.pdf +0 -0
  184. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3654.docx +0 -0
  185. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3677.pdf +0 -0
  186. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3687-3.epub +0 -0
  187. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3687.epub +0 -0
  188. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3705.pdf +0 -0
  189. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3725.pdf +0 -0
  190. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3727.pdf +0 -0
  191. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3780.pdf +0 -0
  192. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3789.pdf +0 -0
  193. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3842.pdf +0 -0
  194. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3848.pdf +0 -0
  195. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3854.pdf +0 -0
  196. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3863.pdf +0 -0
  197. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3863.pdf.pdf.0.png +0 -0
  198. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3863.pdf.pdf.1.png +0 -0
  199. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3863.pdf.pdf.2.png +0 -0
  200. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3863.pdf.pdf.3.png +0 -0
  201. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3863.pdf.pdf.4.png +0 -0
  202. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3863.pdf.pdf.5.png +0 -0
  203. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3863.pdf.pdf.6.png +0 -0
  204. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3863.pdf.pdf.7.png +0 -0
  205. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3933.pdf +0 -0
  206. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3950.pdf +0 -0
  207. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_3994.pdf +0 -0
  208. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_4004.pdf +0 -0
  209. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_4017.pdf +0 -0
  210. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_4026.pdf +0 -0
  211. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_4034.pdf +0 -0
  212. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_4043.pdf +0 -0
  213. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_4047.pdf +0 -0
  214. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_4079.pdf +0 -0
  215. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_4079_after.pdf +0 -0
  216. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_4090.pdf +0 -0
  217. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_4125.pdf +0 -0
  218. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_annot_file_info.pdf +0 -0
  219. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_delete_image.pdf +0 -0
  220. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/test_toc_count.pdf +0 -0
  221. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/text-find-ligatures.pdf +0 -0
  222. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/type3font.pdf +0 -0
  223. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/v110-changes.pdf +0 -0
  224. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/resources/widgettest.pdf +0 -0
  225. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/run_compound.py +0 -0
  226. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_2548.py +0 -0
  227. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_2634.py +0 -0
  228. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_2904.py +0 -0
  229. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_2907.py +0 -0
  230. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_badfonts.py +0 -0
  231. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_balance_count.py +0 -0
  232. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_cluster_drawings.py +0 -0
  233. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_crypting.py +0 -0
  234. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_docs_samples.py +0 -0
  235. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_drawings.py +0 -0
  236. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_embeddedfiles.py +0 -0
  237. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_extractimage.py +0 -0
  238. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_flake8.py +0 -0
  239. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_font.py +0 -0
  240. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_geometry.py +0 -0
  241. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_imagebbox.py +0 -0
  242. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_import.py +0 -0
  243. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_insertimage.py +0 -0
  244. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_linebreaks.py +0 -0
  245. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_linequad.py +0 -0
  246. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_memory.py +0 -0
  247. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_metadata.py +0 -0
  248. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_named_links.py +0 -0
  249. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_nonpdf.py +0 -0
  250. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_object_manipulation.py +0 -0
  251. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_objectstreams.py +0 -0
  252. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_optional_content.py +0 -0
  253. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_page_links.py +0 -0
  254. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_pagedelete.py +0 -0
  255. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_pagelabels.py +0 -0
  256. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_pylint.py +0 -0
  257. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_remove-rotation.py +0 -0
  258. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_rtl.py +0 -0
  259. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_showpdfpage.py +0 -0
  260. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_story.py +0 -0
  261. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_tables.py +0 -0
  262. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_textbox.py +0 -0
  263. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_textsearch.py +0 -0
  264. {pymupdf-1.25.1 → pymupdf-1.25.3}/tests/test_word_delimiters.py +0 -0
  265. {pymupdf-1.25.1 → pymupdf-1.25.3}/valgrind.supp +0 -0
  266. {pymupdf-1.25.1 → pymupdf-1.25.3}/wdev.py +0 -0
@@ -1,11 +1,11 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PyMuPDF
3
- Version: 1.25.1
3
+ Version: 1.25.3
4
4
  Summary: A high performance Python library for data extraction, analysis, conversion & manipulation of PDF (and other) documents.
5
5
  Description-Content-Type: text/markdown
6
6
  Author: Artifex
7
7
  Author-email: support@artifex.com
8
- License: GNU AFFERO GPL 3.0
8
+ License: Dual Licensed - GNU AFFERO GPL 3.0 or Artifex Commercial License
9
9
  Classifier: Development Status :: 5 - Production/Stable
10
10
  Classifier: Intended Audience :: Developers
11
11
  Classifier: Intended Audience :: Information Technology
@@ -2,6 +2,51 @@ Change Log
2
2
  ==========
3
3
 
4
4
 
5
+ **Changes in version 1.25.3 (2025-02-06)**
6
+
7
+ * Use MuPDF-1.25.4.
8
+
9
+ * Fixed issues:
10
+
11
+ * **Fixed** `4139 <https://github.com/pymupdf/PyMuPDF/issues/4139>`_: Text color numbers change between 1.24.14 and 1.25.0
12
+ * **Fixed** `4141 <https://github.com/pymupdf/PyMuPDF/issues/4141>`_: Some insertion methods fails for pages without a /Resouces object
13
+ * **Fixed** `4180 <https://github.com/pymupdf/PyMuPDF/issues/4180>`_: Search problems
14
+ * **Fixed** `4182 <https://github.com/pymupdf/PyMuPDF/issues/4182>`_: Text coordinate extraction error
15
+ * **Fixed** `4245 <https://github.com/pymupdf/PyMuPDF/issues/4245>`_: Highlighting issue distorted on recent versions
16
+ * **Fixed** `4254 <https://github.com/pymupdf/PyMuPDF/issues/4254>`_: add_freetext_annot is drawing text outside the annotation box
17
+
18
+ * Other:
19
+
20
+ * In annotations:
21
+ * Added support for subtype FreeTextCallout.
22
+ * Added support for rich text.
23
+ * Added miter_limit arg to insert_text*() to allow supression of spikes caused by long miters.
24
+ * Add Widget Support to `Document.insert_pdf()`.
25
+ * Add `bibi` to span dicts.
26
+ * Add `synthetic' to char dict.
27
+
28
+
29
+ **Changes in version 1.25.2 (2025-01-17)**
30
+
31
+ * Fixed issues:
32
+
33
+ * **Fixed** `4055 <https://github.com/pymupdf/PyMuPDF/issues/4055>`_: "Yes" for all checkboxes does not work for all PDF rendering engines.
34
+ * **Fixed** `4155 <https://github.com/pymupdf/PyMuPDF/issues/4155>`_: samples_mv is unsafe
35
+ * **Fixed** `4162 <https://github.com/pymupdf/PyMuPDF/issues/4162>`_: Got AttributeError, when tried to add Signature field
36
+ * **Fixed** `4186 <https://github.com/pymupdf/PyMuPDF/issues/4186>`_: Incorrect handling of JPEG with color space CMYK image extraction
37
+ * **Fixed** `4195 <https://github.com/pymupdf/PyMuPDF/issues/4195>`_: Pixmaps that are inverted and have an alpha channel are not rendered properly
38
+ * **Fixed** `4225 <https://github.com/pymupdf/PyMuPDF/issues/4225>`_: pixmap.pil_save() fails due to colorspace definition
39
+ * **Fixed** `4232 <https://github.com/pymupdf/PyMuPDF/issues/4232>`_: Incorrect Font style and Size
40
+
41
+ * Other:
42
+
43
+ * Use Python's built-in glyphname <> unicode conversion.
44
+ * Improve speed of pixmap color inversion.
45
+ * Add new `char_flags` member to span dictionary, for example allows detection of invisible text.
46
+ * Detect image masks in TextPage output.
47
+ * Added `Pixmap.pil_image()`.
48
+
49
+
5
50
  **Changes in version 1.25.1 (2024-12-11)**
6
51
 
7
52
  * Use MuPDF-1.25.2.
@@ -227,7 +227,7 @@ def main():
227
227
  #
228
228
  if pip == 'sudo':
229
229
  log('## Installing Python packages required for building MuPDF and PyMuPDF.')
230
- run(f'sudo pip install --upgrade pip')
230
+ #run(f'sudo pip install --upgrade pip') # Breaks on Github see: https://github.com/pypa/get-pip/issues/226.
231
231
  names = test_py.wrap_get_requires_for_build_wheel(f'{__file__}/../..')
232
232
  run(f'sudo pip install {names}')
233
233
 
@@ -275,7 +275,7 @@ def main():
275
275
  run(f'. {venv_name}/bin/activate && pip install --upgrade installer')
276
276
  run(f'{env} {venv_name}/bin/python -m pip wheel -vv -w dist {os.path.abspath(pymupdf_dir)}')
277
277
  elif pip == 'sudo':
278
- run(f'sudo pip install --upgrade pip')
278
+ #run(f'sudo pip install --upgrade pip') # Breaks on Github see: https://github.com/pypa/get-pip/issues/226.
279
279
  run(f'sudo pip install installer')
280
280
  run(f'{env} pip wheel -vv -w dist {os.path.abspath(pymupdf_dir)}')
281
281
  else:
@@ -372,6 +372,7 @@ def main():
372
372
  'test_pylint',
373
373
  'test_textbox3',
374
374
  'test_3493',
375
+ 'test_4180',
375
376
  )
376
377
  excluded_tests = ' and not '.join(excluded_tests)
377
378
  if not pytest_args:
@@ -44,7 +44,7 @@ Options:
44
44
  environment variable `PYMUPDF_SETUP_MUPDF_BUILD_TYPE`, which is used by
45
45
  PyMuPDF's `setup.py`.]
46
46
  -d
47
- Equivalent to `--build-type debug`.
47
+ Equivalent to `-b debug`.
48
48
  -f 0|1
49
49
  If 1 we also test alias `fitz` as well as `pymupdf`. Default is '0'.
50
50
  -i <implementations>
@@ -54,7 +54,8 @@ Options:
54
54
  'R' - rebased without optimisations.
55
55
  Default is 'r'. Also see `PyMuPDF:tests/run_compound.py`.
56
56
  -k <expression>
57
- Select which test(s) to run; passed straight through to pytest's `-k`.
57
+ Specify which test(s) to run; passed straight through to pytest's `-k`.
58
+ For example `-k test_3354`.
58
59
  -m <location> | --mupdf <location>
59
60
  Location of local mupdf/ directory or 'git:...' to be used
60
61
  when building PyMuPDF. [This sets environment variable
@@ -1157,9 +1157,16 @@ classifier = [
1157
1157
  # We generate different wheels depending on PYMUPDF_SETUP_FLAVOUR.
1158
1158
  #
1159
1159
 
1160
- version_p = '1.25.1'
1161
- version_b = '1.25.1'
1162
- version_mupdf = '1.25.2'
1160
+ # PyMuPDF version.
1161
+ version_p = '1.25.3'
1162
+
1163
+ # PyMuPDFb version. This is the PyMuPDF version whose PyMuPDFb wheels we will
1164
+ # (re)use if generating separate PyMuPDFb wheels. Though as of PyMuPDF-1.24.11
1165
+ # (2024-10-03) we no longer use PyMuPDFb wheels.
1166
+ #
1167
+ version_b = '1.25.3'
1168
+
1169
+ version_mupdf = '1.25.4'
1163
1170
 
1164
1171
  if os.path.exists(f'{g_root}/{g_pymupdfb_sdist_marker}'):
1165
1172
 
@@ -1238,7 +1245,7 @@ else:
1238
1245
  author_email = 'support@artifex.com',
1239
1246
  requires_dist = requires_dist,
1240
1247
  requires_python = '>=3.9',
1241
- license = 'GNU AFFERO GPL 3.0',
1248
+ license = 'Dual Licensed - GNU AFFERO GPL 3.0 or Artifex Commercial License',
1242
1249
  project_url = [
1243
1250
  ('Documentation, https://pymupdf.readthedocs.io/'),
1244
1251
  ('Source, https://github.com/pymupdf/pymupdf'),