PyMuPDF 1.25.0__tar.gz → 1.25.2__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 (250) hide show
  1. {pymupdf-1.25.0 → pymupdf-1.25.2}/PKG-INFO +1 -1
  2. {pymupdf-1.25.0 → pymupdf-1.25.2}/changes.txt +29 -0
  3. {pymupdf-1.25.0 → pymupdf-1.25.2}/pipcl.py +44 -0
  4. {pymupdf-1.25.0 → pymupdf-1.25.2}/scripts/sysinstall.py +2 -2
  5. {pymupdf-1.25.0 → pymupdf-1.25.2}/scripts/test.py +3 -2
  6. {pymupdf-1.25.0 → pymupdf-1.25.2}/setup.py +3 -3
  7. {pymupdf-1.25.0 → pymupdf-1.25.2}/src/__init__.py +260 -985
  8. {pymupdf-1.25.0 → pymupdf-1.25.2}/src/__main__.py +2 -8
  9. {pymupdf-1.25.0 → pymupdf-1.25.2}/src/extra.i +91 -95
  10. {pymupdf-1.25.0 → pymupdf-1.25.2}/src/utils.py +19 -18
  11. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/conftest.py +5 -0
  12. pymupdf-1.25.2/tests/resources/img-regular.pdf +0 -0
  13. pymupdf-1.25.2/tests/resources/img-transparent.pdf +0 -0
  14. pymupdf-1.25.2/tests/resources/test-4055.pdf +0 -0
  15. pymupdf-1.25.0/tests/resources/test_1645_expected_1.22.pdf → pymupdf-1.25.2/tests/resources/test_1645_expected_1.26.pdf +0 -0
  16. pymupdf-1.25.2/tests/resources/test_4125.pdf +0 -0
  17. pymupdf-1.25.2/tests/resources/test_4147.pdf +0 -0
  18. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_2548.py +6 -16
  19. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_2904.py +1 -4
  20. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_annots.py +40 -34
  21. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_font.py +0 -9
  22. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_general.py +11 -30
  23. pymupdf-1.25.2/tests/test_imagemasks.py +31 -0
  24. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_memory.py +105 -0
  25. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_mupdf_regressions.py +14 -8
  26. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_pixmap.py +18 -4
  27. pymupdf-1.25.0/tests/test-rtl.py → pymupdf-1.25.2/tests/test_rtl.py +4 -1
  28. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_tesseract.py +7 -11
  29. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_textextract.py +63 -50
  30. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_toc.py +5 -5
  31. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_widgets.py +55 -0
  32. {pymupdf-1.25.0 → pymupdf-1.25.2}/COPYING +0 -0
  33. {pymupdf-1.25.0 → pymupdf-1.25.2}/README.md +0 -0
  34. {pymupdf-1.25.0 → pymupdf-1.25.2}/READMEb.md +0 -0
  35. {pymupdf-1.25.0 → pymupdf-1.25.2}/READMEd.md +0 -0
  36. {pymupdf-1.25.0 → pymupdf-1.25.2}/pyproject.toml +0 -0
  37. {pymupdf-1.25.0 → pymupdf-1.25.2}/pytest.ini +0 -0
  38. {pymupdf-1.25.0 → pymupdf-1.25.2}/scripts/gh_release.py +0 -0
  39. {pymupdf-1.25.0 → pymupdf-1.25.2}/src/_apply_pages.py +0 -0
  40. {pymupdf-1.25.0 → pymupdf-1.25.2}/src/fitz___init__.py +0 -0
  41. {pymupdf-1.25.0 → pymupdf-1.25.2}/src/fitz_table.py +0 -0
  42. {pymupdf-1.25.0 → pymupdf-1.25.2}/src/fitz_utils.py +0 -0
  43. {pymupdf-1.25.0 → pymupdf-1.25.2}/src/pymupdf.py +0 -0
  44. {pymupdf-1.25.0 → pymupdf-1.25.2}/src/table.py +0 -0
  45. {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/__init__.py +0 -0
  46. {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/__main__.py +0 -0
  47. {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/_config.h +0 -0
  48. {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/fitz_old.i +0 -0
  49. {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/helper-annot.i +0 -0
  50. {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/helper-convert.i +0 -0
  51. {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/helper-defines.i +0 -0
  52. {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/helper-devices.i +0 -0
  53. {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/helper-fields.i +0 -0
  54. {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/helper-fileobj.i +0 -0
  55. {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/helper-geo-c.i +0 -0
  56. {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/helper-geo-py.i +0 -0
  57. {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/helper-globals.i +0 -0
  58. {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/helper-other.i +0 -0
  59. {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/helper-pdfinfo.i +0 -0
  60. {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/helper-pixmap.i +0 -0
  61. {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/helper-portfolio.i +0 -0
  62. {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/helper-python.i +0 -0
  63. {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/helper-select.i +0 -0
  64. {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/helper-stext.i +0 -0
  65. {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/helper-xobject.i +0 -0
  66. {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/utils.py +0 -0
  67. {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/version.i +0 -0
  68. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/README.md +0 -0
  69. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/gentle_compare.py +0 -0
  70. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/001003ED.pdf +0 -0
  71. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/1.pdf +0 -0
  72. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/2.pdf +0 -0
  73. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/2201.00069.pdf +0 -0
  74. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/3.pdf +0 -0
  75. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/4.pdf +0 -0
  76. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/Bezier.epub +0 -0
  77. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/PragmaticaC.otf +0 -0
  78. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/battery-file-22.pdf +0 -0
  79. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/bug1945.pdf +0 -0
  80. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/bug1971.pdf +0 -0
  81. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/chinese-tables.pdf +0 -0
  82. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/chinese-tables.pickle +0 -0
  83. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/circular-toc.pdf +0 -0
  84. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/cython.pdf +0 -0
  85. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/cython.pickle +0 -0
  86. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/dotted-gridlines.pdf +0 -0
  87. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/full_toc.txt +0 -0
  88. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/github_sample.pdf +0 -0
  89. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/has-bad-fonts.pdf +0 -0
  90. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/image-file1.pdf +0 -0
  91. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/img-transparent.png +0 -0
  92. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/joined.pdf +0 -0
  93. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/metadata.txt +0 -0
  94. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/mupdf_explored.pdf +0 -0
  95. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/nur-ruhig.jpg +0 -0
  96. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/quad-calc-0.pdf +0 -0
  97. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/simple_toc.txt +0 -0
  98. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/small-table.pdf +0 -0
  99. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/strict-yes-no.pdf +0 -0
  100. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/symbol-list.pdf +0 -0
  101. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/symbols.txt +0 -0
  102. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test-2333.pdf +0 -0
  103. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test-2462.pdf +0 -0
  104. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test-2812.pdf +0 -0
  105. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test-3143.pdf +0 -0
  106. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test-3150.pdf +0 -0
  107. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test-3207.pdf +0 -0
  108. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test-3591.pdf +0 -0
  109. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test-3820.pdf +0 -0
  110. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test-707448.pdf +0 -0
  111. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test-707673.pdf +0 -0
  112. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test-E+A.pdf +0 -0
  113. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test-linebreaks.pdf +0 -0
  114. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test2093.pdf +0 -0
  115. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test2182.pdf +0 -0
  116. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test2238.pdf +0 -0
  117. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_1645_expected_1.24.2.pdf +0 -0
  118. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_1645_expected_1.24.pdf +0 -0
  119. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_1645_expected_1.25.pdf +0 -0
  120. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_1824.pdf +0 -0
  121. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2108.pdf +0 -0
  122. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2270.pdf +0 -0
  123. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2533.pdf +0 -0
  124. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2548.pdf +0 -0
  125. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2553-2.pdf +0 -0
  126. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2553.pdf +0 -0
  127. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2596.pdf +0 -0
  128. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2608_expected +0 -0
  129. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2634.pdf +0 -0
  130. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2635.pdf +0 -0
  131. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2645_1.pdf +0 -0
  132. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2645_2.pdf +0 -0
  133. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2645_3.pdf +0 -0
  134. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2710.pdf +0 -0
  135. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2730.pdf +0 -0
  136. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2742.pdf +0 -0
  137. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2788.pdf +0 -0
  138. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2791_content.pdf +0 -0
  139. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2791_coverpage.pdf +0 -0
  140. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2861.pdf +0 -0
  141. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2871.pdf +0 -0
  142. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2885.pdf +0 -0
  143. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2904.pdf +0 -0
  144. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2907.pdf +0 -0
  145. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2954.pdf +0 -0
  146. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2957_1.pdf +0 -0
  147. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2957_2.pdf +0 -0
  148. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2969.pdf +0 -0
  149. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2979.pdf +0 -0
  150. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3058.pdf +0 -0
  151. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3062.pdf +0 -0
  152. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3070.pdf +0 -0
  153. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3072.pdf +0 -0
  154. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3087.pdf +0 -0
  155. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3179.pdf +0 -0
  156. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3186.pdf +0 -0
  157. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3197.pdf +0 -0
  158. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3357.pdf +0 -0
  159. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3362.pdf +0 -0
  160. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3376.pdf +0 -0
  161. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3448.pdf +0 -0
  162. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3448.pdf-expected.png +0 -0
  163. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3450.pdf +0 -0
  164. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3493.epub +0 -0
  165. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3569.pdf +0 -0
  166. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3594.pdf +0 -0
  167. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3615.epub +0 -0
  168. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3624.pdf +0 -0
  169. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3624_expected.png +0 -0
  170. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3650.pdf +0 -0
  171. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3654.docx +0 -0
  172. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3677.pdf +0 -0
  173. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3687-3.epub +0 -0
  174. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3687.epub +0 -0
  175. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3705.pdf +0 -0
  176. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3725.pdf +0 -0
  177. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3727.pdf +0 -0
  178. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3780.pdf +0 -0
  179. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3789.pdf +0 -0
  180. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3842.pdf +0 -0
  181. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3848.pdf +0 -0
  182. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3854.pdf +0 -0
  183. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3854_expected.png +0 -0
  184. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3863.pdf +0 -0
  185. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3863.pdf.pdf.0.png +0 -0
  186. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3863.pdf.pdf.1.png +0 -0
  187. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3863.pdf.pdf.2.png +0 -0
  188. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3863.pdf.pdf.3.png +0 -0
  189. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3863.pdf.pdf.4.png +0 -0
  190. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3863.pdf.pdf.5.png +0 -0
  191. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3863.pdf.pdf.6.png +0 -0
  192. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3863.pdf.pdf.7.png +0 -0
  193. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3933.pdf +0 -0
  194. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3950.pdf +0 -0
  195. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3994.pdf +0 -0
  196. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_4004.pdf +0 -0
  197. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_4017.pdf +0 -0
  198. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_4026.pdf +0 -0
  199. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_4034.pdf +0 -0
  200. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_4043.pdf +0 -0
  201. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_4047.pdf +0 -0
  202. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_4079.pdf +0 -0
  203. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_4079_after.pdf +0 -0
  204. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_4090.pdf +0 -0
  205. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_annot_file_info.pdf +0 -0
  206. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_delete_image.pdf +0 -0
  207. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_toc_count.pdf +0 -0
  208. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/text-find-ligatures.pdf +0 -0
  209. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/type3font.pdf +0 -0
  210. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/v110-changes.pdf +0 -0
  211. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/widgettest.pdf +0 -0
  212. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/run_compound.py +0 -0
  213. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_2634.py +0 -0
  214. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_2907.py +0 -0
  215. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_badfonts.py +0 -0
  216. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_balance_count.py +0 -0
  217. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_cluster_drawings.py +0 -0
  218. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_codespell.py +0 -0
  219. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_crypting.py +0 -0
  220. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_docs_samples.py +0 -0
  221. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_drawings.py +0 -0
  222. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_embeddedfiles.py +0 -0
  223. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_extractimage.py +0 -0
  224. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_flake8.py +0 -0
  225. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_geometry.py +0 -0
  226. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_imagebbox.py +0 -0
  227. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_import.py +0 -0
  228. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_insertimage.py +0 -0
  229. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_insertpdf.py +0 -0
  230. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_linebreaks.py +0 -0
  231. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_linequad.py +0 -0
  232. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_metadata.py +0 -0
  233. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_named_links.py +0 -0
  234. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_nonpdf.py +0 -0
  235. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_object_manipulation.py +0 -0
  236. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_objectstreams.py +0 -0
  237. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_optional_content.py +0 -0
  238. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_page_links.py +0 -0
  239. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_pagedelete.py +0 -0
  240. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_pagelabels.py +0 -0
  241. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_pylint.py +0 -0
  242. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_remove-rotation.py +0 -0
  243. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_showpdfpage.py +0 -0
  244. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_story.py +0 -0
  245. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_tables.py +0 -0
  246. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_textbox.py +0 -0
  247. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_textsearch.py +0 -0
  248. {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_word_delimiters.py +0 -0
  249. {pymupdf-1.25.0 → pymupdf-1.25.2}/valgrind.supp +0 -0
  250. {pymupdf-1.25.0 → pymupdf-1.25.2}/wdev.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PyMuPDF
3
- Version: 1.25.0
3
+ Version: 1.25.2
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
@@ -2,6 +2,35 @@ Change Log
2
2
  ==========
3
3
 
4
4
 
5
+ **Changes in version 1.25.2 (2025-01-17)**
6
+
7
+ * Fixed issues:
8
+
9
+ * **Fixed** `4055 <https://github.com/pymupdf/PyMuPDF/issues/4055>`_: "Yes" for all checkboxes does not work for all PDF rendering engines.
10
+ * **Fixed** `4155 <https://github.com/pymupdf/PyMuPDF/issues/4155>`_: samples_mv is unsafe
11
+ * **Fixed** `4186 <https://github.com/pymupdf/PyMuPDF/issues/4186>`_: Incorrect handling of JPEG with color space CMYK image extraction
12
+ * **Fixed** `4225 <https://github.com/pymupdf/PyMuPDF/issues/4225>`_: pixmap.pil_save() fails due to colorspace definition
13
+ * **Fixed** `4232 <https://github.com/pymupdf/PyMuPDF/issues/4232>`_: Incorrect Font style and Size
14
+
15
+ * Other:
16
+
17
+ * Use Python's built-in glyphname <> unicode conversion.
18
+ * Improve speed of pixmap color inversion.
19
+ * Add new `char_flags` member to span dictionary, for example allows detection of invisible text.
20
+ * Detect image masks in TextPage output.
21
+ * Added `Pixmap.pil_image()`.
22
+
23
+
24
+ **Changes in version 1.25.1 (2024-12-11)**
25
+
26
+ * Use MuPDF-1.25.2.
27
+
28
+ * Fixed issues:
29
+
30
+ * **Fixed** `4125 <https://github.com/pymupdf/PyMuPDF/issues/4125>`_: memory leak while convert Pixmap's colorspace
31
+ * **Fixed** `4034 <https://github.com/pymupdf/PyMuPDF/issues/4034>`_: Possible regression in pdf cleaning during save.
32
+
33
+
5
34
  **Changes in version 1.25.0 (2024-12-05)**
6
35
 
7
36
  * Use MuPDF-1.25.1.
@@ -2444,6 +2444,50 @@ def relpath(path, start=None):
2444
2444
  else:
2445
2445
  return os.path.relpath(path, start)
2446
2446
 
2447
+
2448
+ def number_sep( s):
2449
+ '''
2450
+ Simple number formatter, adds commas in-between thousands. `s` can be a
2451
+ number or a string. Returns a string.
2452
+
2453
+ >>> number_sep(1)
2454
+ '1'
2455
+ >>> number_sep(12)
2456
+ '12'
2457
+ >>> number_sep(123)
2458
+ '123'
2459
+ >>> number_sep(1234)
2460
+ '1,234'
2461
+ >>> number_sep(12345)
2462
+ '12,345'
2463
+ >>> number_sep(123456)
2464
+ '123,456'
2465
+ >>> number_sep(1234567)
2466
+ '1,234,567'
2467
+ >>> number_sep(-131072)
2468
+ '-131,072'
2469
+ '''
2470
+ if not isinstance( s, str):
2471
+ s = str( s)
2472
+ ret = ''
2473
+ if s.startswith('-'):
2474
+ ret += '-'
2475
+ s = s[1:]
2476
+ c = s.find( '.')
2477
+ if c==-1: c = len(s)
2478
+ end = s.find('e')
2479
+ if end == -1: end = s.find('E')
2480
+ if end == -1: end = len(s)
2481
+ for i in range( end):
2482
+ ret += s[i]
2483
+ if i<c-1 and (c-i-1)%3==0:
2484
+ ret += ','
2485
+ elif i>c and i<end-1 and (i-c)%3==0:
2486
+ ret += ','
2487
+ ret += s[end:]
2488
+ return ret
2489
+
2490
+
2447
2491
  def _so_suffix(use_so_versioning=True):
2448
2492
  '''
2449
2493
  Filename suffix for shared libraries is defined in pep-3149. The
@@ -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:
@@ -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,9 @@ classifier = [
1157
1157
  # We generate different wheels depending on PYMUPDF_SETUP_FLAVOUR.
1158
1158
  #
1159
1159
 
1160
- version_p = '1.25.0'
1161
- version_b = '1.25.0'
1162
- version_mupdf = '1.25.1'
1160
+ version_p = '1.25.2'
1161
+ version_b = '1.25.1'
1162
+ version_mupdf = '1.25.2'
1163
1163
 
1164
1164
  if os.path.exists(f'{g_root}/{g_pymupdfb_sdist_marker}'):
1165
1165