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.
- {pymupdf-1.25.0 → pymupdf-1.25.2}/PKG-INFO +1 -1
- {pymupdf-1.25.0 → pymupdf-1.25.2}/changes.txt +29 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/pipcl.py +44 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/scripts/sysinstall.py +2 -2
- {pymupdf-1.25.0 → pymupdf-1.25.2}/scripts/test.py +3 -2
- {pymupdf-1.25.0 → pymupdf-1.25.2}/setup.py +3 -3
- {pymupdf-1.25.0 → pymupdf-1.25.2}/src/__init__.py +260 -985
- {pymupdf-1.25.0 → pymupdf-1.25.2}/src/__main__.py +2 -8
- {pymupdf-1.25.0 → pymupdf-1.25.2}/src/extra.i +91 -95
- {pymupdf-1.25.0 → pymupdf-1.25.2}/src/utils.py +19 -18
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/conftest.py +5 -0
- pymupdf-1.25.2/tests/resources/img-regular.pdf +0 -0
- pymupdf-1.25.2/tests/resources/img-transparent.pdf +0 -0
- pymupdf-1.25.2/tests/resources/test-4055.pdf +0 -0
- 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
- pymupdf-1.25.2/tests/resources/test_4125.pdf +0 -0
- pymupdf-1.25.2/tests/resources/test_4147.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_2548.py +6 -16
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_2904.py +1 -4
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_annots.py +40 -34
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_font.py +0 -9
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_general.py +11 -30
- pymupdf-1.25.2/tests/test_imagemasks.py +31 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_memory.py +105 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_mupdf_regressions.py +14 -8
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_pixmap.py +18 -4
- pymupdf-1.25.0/tests/test-rtl.py → pymupdf-1.25.2/tests/test_rtl.py +4 -1
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_tesseract.py +7 -11
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_textextract.py +63 -50
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_toc.py +5 -5
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_widgets.py +55 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/COPYING +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/README.md +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/READMEb.md +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/READMEd.md +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/pyproject.toml +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/pytest.ini +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/scripts/gh_release.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/src/_apply_pages.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/src/fitz___init__.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/src/fitz_table.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/src/fitz_utils.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/src/pymupdf.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/src/table.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/__init__.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/__main__.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/_config.h +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/fitz_old.i +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/helper-annot.i +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/helper-convert.i +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/helper-defines.i +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/helper-devices.i +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/helper-fields.i +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/helper-fileobj.i +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/helper-geo-c.i +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/helper-geo-py.i +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/helper-globals.i +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/helper-other.i +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/helper-pdfinfo.i +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/helper-pixmap.i +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/helper-portfolio.i +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/helper-python.i +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/helper-select.i +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/helper-stext.i +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/helper-xobject.i +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/utils.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/src_classic/version.i +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/README.md +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/gentle_compare.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/001003ED.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/1.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/2.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/2201.00069.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/3.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/4.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/Bezier.epub +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/PragmaticaC.otf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/battery-file-22.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/bug1945.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/bug1971.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/chinese-tables.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/chinese-tables.pickle +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/circular-toc.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/cython.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/cython.pickle +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/dotted-gridlines.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/full_toc.txt +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/github_sample.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/has-bad-fonts.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/image-file1.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/img-transparent.png +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/joined.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/metadata.txt +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/mupdf_explored.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/nur-ruhig.jpg +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/quad-calc-0.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/simple_toc.txt +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/small-table.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/strict-yes-no.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/symbol-list.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/symbols.txt +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test-2333.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test-2462.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test-2812.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test-3143.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test-3150.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test-3207.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test-3591.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test-3820.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test-707448.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test-707673.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test-E+A.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test-linebreaks.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test2093.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test2182.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test2238.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_1645_expected_1.24.2.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_1645_expected_1.24.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_1645_expected_1.25.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_1824.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2108.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2270.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2533.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2548.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2553-2.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2553.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2596.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2608_expected +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2634.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2635.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2645_1.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2645_2.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2645_3.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2710.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2730.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2742.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2788.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2791_content.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2791_coverpage.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2861.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2871.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2885.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2904.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2907.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2954.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2957_1.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2957_2.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2969.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_2979.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3058.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3062.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3070.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3072.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3087.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3179.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3186.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3197.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3357.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3362.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3376.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3448.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3448.pdf-expected.png +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3450.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3493.epub +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3569.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3594.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3615.epub +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3624.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3624_expected.png +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3650.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3654.docx +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3677.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3687-3.epub +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3687.epub +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3705.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3725.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3727.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3780.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3789.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3842.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3848.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3854.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3854_expected.png +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3863.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3863.pdf.pdf.0.png +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3863.pdf.pdf.1.png +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3863.pdf.pdf.2.png +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3863.pdf.pdf.3.png +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3863.pdf.pdf.4.png +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3863.pdf.pdf.5.png +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3863.pdf.pdf.6.png +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3863.pdf.pdf.7.png +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3933.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3950.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_3994.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_4004.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_4017.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_4026.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_4034.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_4043.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_4047.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_4079.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_4079_after.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_4090.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_annot_file_info.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_delete_image.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/test_toc_count.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/text-find-ligatures.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/type3font.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/v110-changes.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/resources/widgettest.pdf +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/run_compound.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_2634.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_2907.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_badfonts.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_balance_count.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_cluster_drawings.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_codespell.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_crypting.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_docs_samples.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_drawings.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_embeddedfiles.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_extractimage.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_flake8.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_geometry.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_imagebbox.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_import.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_insertimage.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_insertpdf.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_linebreaks.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_linequad.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_metadata.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_named_links.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_nonpdf.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_object_manipulation.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_objectstreams.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_optional_content.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_page_links.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_pagedelete.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_pagelabels.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_pylint.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_remove-rotation.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_showpdfpage.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_story.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_tables.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_textbox.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_textsearch.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/tests/test_word_delimiters.py +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/valgrind.supp +0 -0
- {pymupdf-1.25.0 → pymupdf-1.25.2}/wdev.py +0 -0
|
@@ -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
|
|
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
|
-
|
|
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.
|
|
1161
|
-
version_b = '1.25.
|
|
1162
|
-
version_mupdf = '1.25.
|
|
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
|
|