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