Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Documentation mismatch for get_text_blocks return value order #3379

Closed
thelewisking opened this issue Apr 14, 2024 · 1 comment
Closed

Documentation mismatch for get_text_blocks return value order #3379

thelewisking opened this issue Apr 14, 2024 · 1 comment
Labels
documentation issue fix developed release schedule to be determined

Comments

@thelewisking
Copy link

Description of the bug

Hello!

The function docstring for get_text_blocks in utilts.py suggests the return values as follows:

Returns:
        A list of the blocks. Each item contains the containing rectangle
        coordinates, text lines, block type and running block number.

This is slightly misleading as when this function calls textpage.extractBLOCKS() it returns:

litem = (
                        blockrect.x0,
                        blockrect.y0,
                        blockrect.x1,
                        blockrect.y1,
                        text,
                        block_n,
                        block.m_internal.type,
                        )

The actual order of the get_text_blocks return is therefore: "coordinates...", "text", "block type", "running block number".

This discrepancy could potentially lead to confusion when using the fuction. I propose updating the docstring to reflect the actual order of the returned items.

How to reproduce the bug

Using the below sample PDF:
sample-pdf-file.pdf

We can extract its blocks of texts:

with fitz.open(r"sample-pdf-file.pdf") as f:
    text = [page.get_text("blocks") for page in f]

assert text[0][1][-1] == 1

The assertion will raise an Exception because the last item in the array for this block (block number 2, array position 1) is suggested to be the "running block number" and therefore a "1" as it was the 2nd block extracted.
1, 0)

Block Type: 0 - Image
Block Type: 1 - Text

PyMuPDF version

1.24.1

Operating system

Windows

Python version

3.12

@julian-smith-artifex-com
Copy link
Collaborator

Fixed in 1.24.3.

github-merge-queue bot pushed a commit to microsoft/rag-experiment-accelerator that referenced this issue May 14, 2024
Bumps [pymupdf](https://github.com/pymupdf/pymupdf) from 1.24.2 to
1.24.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pymupdf/pymupdf/releases">pymupdf's
releases</a>.</em></p>
<blockquote>
<h2>PyMuPDF-1.24.3 released</h2>
<p>PyMuPDF-1.24.3 has been released.</p>
<p>Wheels for Windows, Linux and MacOS, and the sdist, are available on
pypi.org and can be installed in the usual way, for example:</p>
<pre><code>python -m pip install --upgrade pymupdf
</code></pre>
<p>[Linux-aarch64 wheels will be built and uploaded later.]</p>
<p><strong>Changes in version 1.24.3 (2024-05-09)</strong></p>
<ul>
<li>
<p>The Python module is now called <code>pymupdf</code>.
<code>fitz</code> is still supported for
backwards compatibility.</p>
</li>
<li>
<p>Use MuPDF-1.24.2.</p>
</li>
<li>
<p>Fixed issues:</p>
<ul>
<li><strong>Fixed</strong> <a
href="https://redirect.github.com/pymupdf/pymupdf/issues/3357">#3357</a></li>
<li><strong>Fixed</strong> <a
href="https://redirect.github.com/pymupdf/pymupdf/issues/3376">#3376</a></li>
<li><strong>Fixed</strong> <a
href="https://redirect.github.com/pymupdf/pymupdf/issues/3379">#3379</a></li>
<li><strong>Fixed</strong> <a
href="https://redirect.github.com/pymupdf/pymupdf/issues/3381">#3381</a></li>
<li><strong>Fixed</strong> <a
href="https://redirect.github.com/pymupdf/pymupdf/issues/3402">#3402</a></li>
<li><strong>Fixed</strong> <a
href="https://redirect.github.com/pymupdf/pymupdf/issues/3414">#3414</a></li>
<li><strong>Fixed</strong> <a
href="https://redirect.github.com/pymupdf/pymupdf/issues/3430">#3430</a></li>
</ul>
</li>
<li>
<p>Other:</p>
<ul>
<li>
<p>New/modified methods:</p>
<ul>
<li><code>Page.remove_rotation()</code>: new, set page rotation to zero
while keeping appearance.</li>
</ul>
</li>
<li>
<p>Fixed some problems when checking for PDF properties.</p>
</li>
<li>
<p>Fixed pip builds from sdist
(see discussion <a
href="https://redirect.github.com/pymupdf/pymupdf/issues/3360">#3360</a>).</p>
</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pymupdf/PyMuPDF/blob/main/changes.txt">pymupdf's
changelog</a>.</em></p>
<blockquote>
<h1>Change Log</h1>
<p><strong>Changes in version 1.24.3 (2024-05-09)</strong></p>
<ul>
<li>
<p>The Python module is now called <code>pymupdf</code>.
<code>fitz</code> is still supported for
backwards compatibility.</p>
</li>
<li>
<p>Use MuPDF-1.24.2.</p>
</li>
<li>
<p>Fixed issues:</p>
<ul>
<li><strong>Fixed</strong> <code>3357
&lt;https://github.com/pymupdf/PyMuPDF/issues/3357&gt;</code>_:
PyMuPDF==1.24.0 will hanging when using
page.get_text(&quot;text&quot;)</li>
<li><strong>Fixed</strong> <code>3376
&lt;https://github.com/pymupdf/PyMuPDF/issues/3376&gt;</code>_:
Redacting results are not as expected in 1.24.x.</li>
<li><strong>Fixed</strong> <code>3379
&lt;https://github.com/pymupdf/PyMuPDF/issues/3379&gt;</code>_:
Documentation mismatch for get_text_blocks return value order.</li>
<li><strong>Fixed</strong> <code>3381
&lt;https://github.com/pymupdf/PyMuPDF/issues/3381&gt;</code>_: Contents
stream contains floats in scientific notation</li>
<li><strong>Fixed</strong> <code>3402
&lt;https://github.com/pymupdf/PyMuPDF/issues/3402&gt;</code>_: Cannot
add Widgets containing inter-field-calculation JavaScript</li>
<li><strong>Fixed</strong> <code>3414
&lt;https://github.com/pymupdf/PyMuPDF/issues/3414&gt;</code>_: missing
attribute set_dpi()</li>
<li><strong>Fixed</strong> <code>3430
&lt;https://github.com/pymupdf/PyMuPDF/issues/3430&gt;</code>_:
page.get_text() cause process freeze with certain pdf on v1.24.2</li>
</ul>
</li>
<li>
<p>Other:</p>
<ul>
<li>
<p>New/modified methods:</p>
<ul>
<li><code>Page.remove_rotation()</code>: new, set page rotation to zero
while keeping appearance.</li>
</ul>
</li>
<li>
<p>Fixed some problems when checking for PDF properties.</p>
</li>
<li>
<p>Fixed pip builds from sdist
(see discussion <code>3360
&lt;https://github.com/pymupdf/PyMuPDF/discussions/3360&gt;</code>_:
Alpine linux docker build failing &quot;No matching distribution found
for pymupdfb==1.24.1&quot;).</p>
</li>
</ul>
</li>
</ul>
<p><strong>Changes in version 1.24.2 (2024-04-17)</strong></p>
<ul>
<li>
<p>Removed obsolete classic implementation from releases
(previously available as module <code>fitz_old</code>).</p>
</li>
<li>
<p>Fixed issues:</p>
<ul>
<li><strong>Fixed</strong> <code>3331
&lt;https://github.com/pymupdf/PyMuPDF/issues/3331&gt;</code>_:
Document.pages() is incorrectly type-hinted</li>
<li><strong>Fixed</strong> <code>3354
&lt;https://github.com/pymupdf/PyMuPDF/issues/3354&gt;</code>_:
PyMuPDF==1.24.1: AttributeError: property 'metadata' of 'Document'
object has no setter</li>
</ul>
</li>
<li>
<p>Other:</p>
<ul>
<li>
<p>New/modified methods:</p>
<ul>
<li><code>Document.bake()</code>: new, make annotations / fields
permanent content.</li>
<li><code>Page.cluster_drawings()</code>: new, identifies drawing
items</li>
</ul>
</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pymupdf/PyMuPDF/commit/5bcc16e6ee52877965df2fb0ad60b518e860b97d"><code>5bcc16e</code></a>
Updated release date for 1.24.3.</li>
<li><a
href="https://github.com/pymupdf/PyMuPDF/commit/762be9ebeaac1e9174e9f41a6a561b12262e4792"><code>762be9e</code></a>
scripts/gh_release.py: avoid problems when building macos-arm64
wheels.</li>
<li><a
href="https://github.com/pymupdf/PyMuPDF/commit/2d68701a16f58ab7c4c2c03cdd84485a2a33bc11"><code>2d68701</code></a>
.github/workflows/build_wheels.yml: use macos-13 and macos-14.</li>
<li><a
href="https://github.com/pymupdf/PyMuPDF/commit/b18d200407df544b75e6bb0d55fa6fdb56a2ed63"><code>b18d200</code></a>
Update changelog, version numbers and release dates for release
1.24.3.</li>
<li><a
href="https://github.com/pymupdf/PyMuPDF/commit/89f9b442c30141a51e9aec4e958487a7f8f3a802"><code>89f9b44</code></a>
tests/test_annots.py:test_1645(): fix confusing lack of indentation in
fn call.</li>
<li><a
href="https://github.com/pymupdf/PyMuPDF/commit/f8456bad93b872076f28f9c066a37981018a3522"><code>f8456ba</code></a>
tests/: update test_1645() to match recent mupdf master.</li>
<li><a
href="https://github.com/pymupdf/PyMuPDF/commit/2ceb2e1fec0b0e0564674b11aa399fb49ecc9e51"><code>2ceb2e1</code></a>
tests/: updated to match fixes in MuPDF-1.24.2.</li>
<li><a
href="https://github.com/pymupdf/PyMuPDF/commit/64159ac5d94dd2ce01bc783c526614e3c19d9791"><code>64159ac</code></a>
Add an additional check to test_q_count().</li>
<li><a
href="https://github.com/pymupdf/PyMuPDF/commit/00d54f2770f7cfd0ebd0ea2fbb08825de5e01d9d"><code>00d54f2</code></a>
.github/workflows/build_wheels.yml: use scripts/gh_release.py to build
sdists.</li>
<li><a
href="https://github.com/pymupdf/PyMuPDF/commit/a4f7d6a8ec1aa8541d5dee42c8e26dd289a56bde"><code>a4f7d6a</code></a>
scripts/gh_release.py: Also build PyMuPDFb sdist.</li>
<li>Additional commits viewable in <a
href="https://github.com/pymupdf/pymupdf/compare/1.24.2...1.24.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pymupdf&package-manager=pip&previous-version=1.24.2&new-version=1.24.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
julien4215 pushed a commit to aeecleclair/Hyperion that referenced this issue May 17, 2024
Bumps the patch-dependencies group with 5 updates:

| Package | From | To |
| --- | --- | --- |
| [bcrypt](https://github.com/pyca/bcrypt) | `4.1.2` | `4.1.3` |
| [icalendar](https://github.com/collective/icalendar) | `5.0.11` |
`5.0.12` |
| [pymupdf](https://github.com/pymupdf/pymupdf) | `1.24.2` | `1.24.3` |
| [psycopg[c]](https://github.com/psycopg/psycopg) | `3.1.18` | `3.1.19`
|
| [psycopg[binary]](https://github.com/psycopg/psycopg) | `3.1.18` |
`3.1.19` |

Updates `bcrypt` from 4.1.2 to 4.1.3
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pyca/bcrypt/commit/35e5a6f5a5131bef22f04dcc9bf401b6eab79642"><code>35e5a6f</code></a>
Bump version for 4.1.3 release (<a
href="https://redirect.github.com/pyca/bcrypt/issues/791">#791</a>)</li>
<li><a
href="https://github.com/pyca/bcrypt/commit/d99d1e568d41c7248269bfd37295f65c74fb12bd"><code>d99d1e5</code></a>
Bump autocfg from 1.2.0 to 1.3.0 in /src/_bcrypt (<a
href="https://redirect.github.com/pyca/bcrypt/issues/790">#790</a>)</li>
<li><a
href="https://github.com/pyca/bcrypt/commit/0775d47c9a1436706932b1bf8911735881aec8e2"><code>0775d47</code></a>
allow testing with pytest 8.2.0 (<a
href="https://redirect.github.com/pyca/bcrypt/issues/786">#786</a>)</li>
<li><a
href="https://github.com/pyca/bcrypt/commit/97d09ac5c190de343af145b61d0b4356950281c0"><code>97d09ac</code></a>
Bump base64 from 0.22.0 to 0.22.1 in /src/_bcrypt (<a
href="https://redirect.github.com/pyca/bcrypt/issues/787">#787</a>)</li>
<li><a
href="https://github.com/pyca/bcrypt/commit/ee4a9a8dd1b23d33da931022f2acbf156316f2fb"><code>ee4a9a8</code></a>
use ubuntu rolling in arm64 CI (<a
href="https://redirect.github.com/pyca/bcrypt/issues/784">#784</a>)</li>
<li><a
href="https://github.com/pyca/bcrypt/commit/7d2474faa546a1a9daae5cac282977d34fe8aedd"><code>7d2474f</code></a>
Bump libc from 0.2.153 to 0.2.154 in /src/_bcrypt (<a
href="https://redirect.github.com/pyca/bcrypt/issues/783">#783</a>)</li>
<li><a
href="https://github.com/pyca/bcrypt/commit/7a252dde4d84dedfc9d8e04308234fea18c6fa45"><code>7a252dd</code></a>
Try blocking pytest 8.2.0 (<a
href="https://redirect.github.com/pyca/bcrypt/issues/785">#785</a>)</li>
<li><a
href="https://github.com/pyca/bcrypt/commit/297a915720a64c15274cd927a2b6f0fef2e28772"><code>297a915</code></a>
Remove brew install rust from macOS CI (<a
href="https://redirect.github.com/pyca/bcrypt/issues/782">#782</a>)</li>
<li><a
href="https://github.com/pyca/bcrypt/commit/6b3f99eff2447cc7cf9b0cd7bffb3e31871c3648"><code>6b3f99e</code></a>
Bump parking_lot_core from 0.9.9 to 0.9.10 in /src/_bcrypt (<a
href="https://redirect.github.com/pyca/bcrypt/issues/778">#778</a>)</li>
<li><a
href="https://github.com/pyca/bcrypt/commit/c88b31007dfada537b9594540a4e12d49e08eca0"><code>c88b310</code></a>
Bump parking_lot from 0.12.1 to 0.12.2 in /src/_bcrypt (<a
href="https://redirect.github.com/pyca/bcrypt/issues/780">#780</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/pyca/bcrypt/compare/4.1.2...4.1.3">compare
view</a></li>
</ul>
</details>
<br />

Updates `icalendar` from 5.0.11 to 5.0.12
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/collective/icalendar/blob/master/CHANGES.rst">icalendar's
changelog</a>.</em></p>
<blockquote>
<h2>5.0.12 (2024-03-19)</h2>
<p>Minor changes:</p>
<ul>
<li>Analyse code coverage of test files</li>
<li>Added corpus to fuzzing directory</li>
<li>Added exclusion of fuzzing corpus in MANIFEST.in</li>
<li>Augmented fuzzer to optionally convert multiple calendars from a
source string</li>
<li>Add script to convert OSS FUZZ test cases to Python/pytest test
cases</li>
<li>Added additional exception handling of defined errors to fuzzer, to
allow fuzzer to explore deeper</li>
<li>Added more instrumentation to fuzz-harness</li>
<li>Rename &quot;contributor&quot; to &quot;collaborator&quot; in
documentation</li>
<li>Correct the outdated &quot;icalendar view myfile.ics&quot; command
in documentation. <a
href="https://redirect.github.com/collective/icalendar/issues/588">#588</a></li>
<li>Update GitHub Actions steps versions</li>
<li>Keep GitHub Actions up to date with GitHub's Dependabot</li>
</ul>
<p>Breaking changes:</p>
<ul>
<li>...</li>
</ul>
<p>New features:</p>
<ul>
<li>...</li>
</ul>
<p>Bug fixes:</p>
<ul>
<li>...</li>
<li>Fixed index error in cal.py when attempting to pop from an empty
stack</li>
<li>Fixed type error in prop.py when attempting to join strings into a
byte-string</li>
<li>Caught Wrong Date Format in ical_fuzzer to resolve fuzzing coverage
blocker</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/collective/icalendar/commit/72966e7610416cf718f6ad9575db4dab4c2d7d96"><code>72966e7</code></a>
try to set a body text of the release</li>
<li><a
href="https://github.com/collective/icalendar/commit/38fcd16a78c835ed0fb268ba5ba4302c28be2f27"><code>38fcd16</code></a>
modify release</li>
<li><a
href="https://github.com/collective/icalendar/commit/679ecab15fdd104ded84f6775c3f13cc895a99e5"><code>679ecab</code></a>
use different release action</li>
<li><a
href="https://github.com/collective/icalendar/commit/216452c616c983549ce5bd88be6f3f3cb14a7c9d"><code>216452c</code></a>
use github.token</li>
<li><a
href="https://github.com/collective/icalendar/commit/72c0d6daecf552f90d9a1bdca78d23c06e906b3f"><code>72c0d6d</code></a>
try other tag release method</li>
<li><a
href="https://github.com/collective/icalendar/commit/5551ad90619e9d06d76e12555212efdea85733a3"><code>5551ad9</code></a>
version 5.0.12</li>
<li><a
href="https://github.com/collective/icalendar/commit/f41772059a67007a5e394df23887bb294d6fbe83"><code>f417720</code></a>
Merge pull request <a
href="https://redirect.github.com/collective/icalendar/issues/602">#602</a>
from niccokunzmann/refactor-test-6</li>
<li><a
href="https://github.com/collective/icalendar/commit/b51fef6e9ad74c7990d872ded333db9ffa87f47c"><code>b51fef6</code></a>
Merge pull request <a
href="https://redirect.github.com/collective/icalendar/issues/599">#599</a>
from niccokunzmann/refactor-test-3</li>
<li><a
href="https://github.com/collective/icalendar/commit/fb0baf40648522336a6997119429baf08dcdf8da"><code>fb0baf4</code></a>
Merge pull request <a
href="https://redirect.github.com/collective/icalendar/issues/598">#598</a>
from niccokunzmann/refactor-test-2</li>
<li><a
href="https://github.com/collective/icalendar/commit/00a2d56f2e36413a035a498c8822471d96cca480"><code>00a2d56</code></a>
Merge pull request <a
href="https://redirect.github.com/collective/icalendar/issues/597">#597</a>
from niccokunzmann/refactor-test-1</li>
<li>Additional commits viewable in <a
href="https://github.com/collective/icalendar/compare/v5.0.11...v5.0.12">compare
view</a></li>
</ul>
</details>
<br />

Updates `pymupdf` from 1.24.2 to 1.24.3
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pymupdf/pymupdf/releases">pymupdf's
releases</a>.</em></p>
<blockquote>
<h2>PyMuPDF-1.24.3 released</h2>
<p>PyMuPDF-1.24.3 has been released.</p>
<p>Wheels for Windows, Linux and MacOS, and the sdist, are available on
pypi.org and can be installed in the usual way, for example:</p>
<pre><code>python -m pip install --upgrade pymupdf
</code></pre>
<p>[Linux-aarch64 wheels will be built and uploaded later.]</p>
<p><strong>Changes in version 1.24.3 (2024-05-09)</strong></p>
<ul>
<li>
<p>The Python module is now called <code>pymupdf</code>.
<code>fitz</code> is still supported for
backwards compatibility.</p>
</li>
<li>
<p>Use MuPDF-1.24.2.</p>
</li>
<li>
<p>Fixed issues:</p>
<ul>
<li><strong>Fixed</strong> <a
href="https://redirect.github.com/pymupdf/pymupdf/issues/3357">#3357</a></li>
<li><strong>Fixed</strong> <a
href="https://redirect.github.com/pymupdf/pymupdf/issues/3376">#3376</a></li>
<li><strong>Fixed</strong> <a
href="https://redirect.github.com/pymupdf/pymupdf/issues/3379">#3379</a></li>
<li><strong>Fixed</strong> <a
href="https://redirect.github.com/pymupdf/pymupdf/issues/3381">#3381</a></li>
<li><strong>Fixed</strong> <a
href="https://redirect.github.com/pymupdf/pymupdf/issues/3402">#3402</a></li>
<li><strong>Fixed</strong> <a
href="https://redirect.github.com/pymupdf/pymupdf/issues/3414">#3414</a></li>
<li><strong>Fixed</strong> <a
href="https://redirect.github.com/pymupdf/pymupdf/issues/3430">#3430</a></li>
</ul>
</li>
<li>
<p>Other:</p>
<ul>
<li>
<p>New/modified methods:</p>
<ul>
<li><code>Page.remove_rotation()</code>: new, set page rotation to zero
while keeping appearance.</li>
</ul>
</li>
<li>
<p>Fixed some problems when checking for PDF properties.</p>
</li>
<li>
<p>Fixed pip builds from sdist
(see discussion <a
href="https://redirect.github.com/pymupdf/pymupdf/issues/3360">#3360</a>).</p>
</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pymupdf/PyMuPDF/blob/main/changes.txt">pymupdf's
changelog</a>.</em></p>
<blockquote>
<h1>Change Log</h1>
<p><strong>Changes in version 1.24.3 (2024-05-09)</strong></p>
<ul>
<li>
<p>The Python module is now called <code>pymupdf</code>.
<code>fitz</code> is still supported for
backwards compatibility.</p>
</li>
<li>
<p>Use MuPDF-1.24.2.</p>
</li>
<li>
<p>Fixed issues:</p>
<ul>
<li><strong>Fixed</strong> <code>3357
&lt;https://github.com/pymupdf/PyMuPDF/issues/3357&gt;</code>_:
PyMuPDF==1.24.0 will hanging when using
page.get_text(&quot;text&quot;)</li>
<li><strong>Fixed</strong> <code>3376
&lt;https://github.com/pymupdf/PyMuPDF/issues/3376&gt;</code>_:
Redacting results are not as expected in 1.24.x.</li>
<li><strong>Fixed</strong> <code>3379
&lt;https://github.com/pymupdf/PyMuPDF/issues/3379&gt;</code>_:
Documentation mismatch for get_text_blocks return value order.</li>
<li><strong>Fixed</strong> <code>3381
&lt;https://github.com/pymupdf/PyMuPDF/issues/3381&gt;</code>_: Contents
stream contains floats in scientific notation</li>
<li><strong>Fixed</strong> <code>3402
&lt;https://github.com/pymupdf/PyMuPDF/issues/3402&gt;</code>_: Cannot
add Widgets containing inter-field-calculation JavaScript</li>
<li><strong>Fixed</strong> <code>3414
&lt;https://github.com/pymupdf/PyMuPDF/issues/3414&gt;</code>_: missing
attribute set_dpi()</li>
<li><strong>Fixed</strong> <code>3430
&lt;https://github.com/pymupdf/PyMuPDF/issues/3430&gt;</code>_:
page.get_text() cause process freeze with certain pdf on v1.24.2</li>
</ul>
</li>
<li>
<p>Other:</p>
<ul>
<li>
<p>New/modified methods:</p>
<ul>
<li><code>Page.remove_rotation()</code>: new, set page rotation to zero
while keeping appearance.</li>
</ul>
</li>
<li>
<p>Fixed some problems when checking for PDF properties.</p>
</li>
<li>
<p>Fixed pip builds from sdist
(see discussion <code>3360
&lt;https://github.com/pymupdf/PyMuPDF/discussions/3360&gt;</code>_:
Alpine linux docker build failing &quot;No matching distribution found
for pymupdfb==1.24.1&quot;).</p>
</li>
</ul>
</li>
</ul>
<p><strong>Changes in version 1.24.2 (2024-04-17)</strong></p>
<ul>
<li>
<p>Removed obsolete classic implementation from releases
(previously available as module <code>fitz_old</code>).</p>
</li>
<li>
<p>Fixed issues:</p>
<ul>
<li><strong>Fixed</strong> <code>3331
&lt;https://github.com/pymupdf/PyMuPDF/issues/3331&gt;</code>_:
Document.pages() is incorrectly type-hinted</li>
<li><strong>Fixed</strong> <code>3354
&lt;https://github.com/pymupdf/PyMuPDF/issues/3354&gt;</code>_:
PyMuPDF==1.24.1: AttributeError: property 'metadata' of 'Document'
object has no setter</li>
</ul>
</li>
<li>
<p>Other:</p>
<ul>
<li>
<p>New/modified methods:</p>
<ul>
<li><code>Document.bake()</code>: new, make annotations / fields
permanent content.</li>
<li><code>Page.cluster_drawings()</code>: new, identifies drawing
items</li>
</ul>
</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pymupdf/PyMuPDF/commit/5bcc16e6ee52877965df2fb0ad60b518e860b97d"><code>5bcc16e</code></a>
Updated release date for 1.24.3.</li>
<li><a
href="https://github.com/pymupdf/PyMuPDF/commit/762be9ebeaac1e9174e9f41a6a561b12262e4792"><code>762be9e</code></a>
scripts/gh_release.py: avoid problems when building macos-arm64
wheels.</li>
<li><a
href="https://github.com/pymupdf/PyMuPDF/commit/2d68701a16f58ab7c4c2c03cdd84485a2a33bc11"><code>2d68701</code></a>
.github/workflows/build_wheels.yml: use macos-13 and macos-14.</li>
<li><a
href="https://github.com/pymupdf/PyMuPDF/commit/b18d200407df544b75e6bb0d55fa6fdb56a2ed63"><code>b18d200</code></a>
Update changelog, version numbers and release dates for release
1.24.3.</li>
<li><a
href="https://github.com/pymupdf/PyMuPDF/commit/89f9b442c30141a51e9aec4e958487a7f8f3a802"><code>89f9b44</code></a>
tests/test_annots.py:test_1645(): fix confusing lack of indentation in
fn call.</li>
<li><a
href="https://github.com/pymupdf/PyMuPDF/commit/f8456bad93b872076f28f9c066a37981018a3522"><code>f8456ba</code></a>
tests/: update test_1645() to match recent mupdf master.</li>
<li><a
href="https://github.com/pymupdf/PyMuPDF/commit/2ceb2e1fec0b0e0564674b11aa399fb49ecc9e51"><code>2ceb2e1</code></a>
tests/: updated to match fixes in MuPDF-1.24.2.</li>
<li><a
href="https://github.com/pymupdf/PyMuPDF/commit/64159ac5d94dd2ce01bc783c526614e3c19d9791"><code>64159ac</code></a>
Add an additional check to test_q_count().</li>
<li><a
href="https://github.com/pymupdf/PyMuPDF/commit/00d54f2770f7cfd0ebd0ea2fbb08825de5e01d9d"><code>00d54f2</code></a>
.github/workflows/build_wheels.yml: use scripts/gh_release.py to build
sdists.</li>
<li><a
href="https://github.com/pymupdf/PyMuPDF/commit/a4f7d6a8ec1aa8541d5dee42c8e26dd289a56bde"><code>a4f7d6a</code></a>
scripts/gh_release.py: Also build PyMuPDFb sdist.</li>
<li>Additional commits viewable in <a
href="https://github.com/pymupdf/pymupdf/compare/1.24.2...1.24.3">compare
view</a></li>
</ul>
</details>
<br />

Updates `psycopg[c]` from 3.1.18 to 3.1.19
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/psycopg/psycopg/blob/master/docs/news.rst">psycopg[c]'s
changelog</a>.</em></p>
<blockquote>
<p>.. currentmodule:: psycopg</p>
<p>.. index::
single: Release notes
single: News</p>
<h1><code>psycopg</code> release notes</h1>
<h2>Future releases</h2>
<p>Psycopg 3.2 (unreleased)
^^^^^^^^^^^^^^^^^^^^^^^^</p>
<ul>
<li>Add support for integer, floating point, boolean <code>NumPy scalar
types</code>__

(:ticket:<code>[#332](https://github.com/psycopg/psycopg/issues/332)</code>).</li>
<li>Add <code>!timeout</code> and <code>!stop_after</code> parameters to
<code>Connection.notifies()</code>
(:ticket:<code>340</code>).</li>
<li>Add :ref:<code>raw-query-cursors</code> to execute queries using
placeholders in
PostgreSQL format (<code>$1</code>, <code>$2</code>...)
(:ticket:<code>[#560](https://github.com/psycopg/psycopg/issues/560)</code>).</li>
<li>Add <code>psycopg.capabilities</code> object to :ref:<code>inspect
the libpq capabilities &lt;capabilities&gt;</code>
(🎫<code>[#772](https://github.com/psycopg/psycopg/issues/772)</code>).</li>
<li>Add <code>~rows.scalar_row</code> to return scalar values from a
query
(:ticket:<code>[#723](https://github.com/psycopg/psycopg/issues/723)</code>).</li>
<li>Prepared statements are now :ref:<code>compatible with PgBouncer
&lt;pgbouncer&gt;</code>.

(🎫<code>[#589](https://github.com/psycopg/psycopg/issues/589)</code>).</li>
<li>Add <code>~Connection.set_autocommit()</code> on sync connections,
and similar
transaction control methods available on the async connections.</li>
<li>Add support for libpq functions to close prepared statements and
portals
introduced in libpq v17
(:ticket:<code>[#603](https://github.com/psycopg/psycopg/issues/603)</code>).</li>
<li>Add support for libpq encrypted and non-blocking query cancellation
functions introduced in libpq v17
(:ticket:<code>[#754](https://github.com/psycopg/psycopg/issues/754)</code>).</li>
<li>The <code>!context</code> parameter of <code>sql</code> objects
<code>~sql.Composable.as_string()</code> and
<code>~sql.Composable.as_bytes()</code> methods is now optional
(:ticket:<code>[#716](https://github.com/psycopg/psycopg/issues/716)</code>).</li>
<li>Disable receiving more than one result on the same cursor in
pipeline mode,
to iterate through <code>~Cursor.nextset()</code>. The behaviour was
different than
in non-pipeline mode and not totally reliable
(:ticket:<code>[#604](https://github.com/psycopg/psycopg/issues/604)</code>).
The <code>Cursor</code> now only preserves the results set of the last
<code>~Cursor.execute()</code>, consistently with non-pipeline
mode.</li>
<li>Add <code>~Connection.cancel_safe()</code> for encrypted and
non-blocking cancellation
If possible, use such method internally upon
<code>KeyboardInterrupt</code> and <code>Copy</code>
termination
(:ticket:<code>[#754](https://github.com/psycopg/psycopg/issues/754)</code>).</li>
<li>Add support for libpq function to retrieve results in chunks
introduced in
libpq v17
(:ticket:<code>[#793](https://github.com/psycopg/psycopg/issues/793)</code>).</li>
</ul>
<p>.. __: <a
href="https://numpy.org/doc/stable/reference/arrays.scalars.html#built-in-scalar-types">https://numpy.org/doc/stable/reference/arrays.scalars.html#built-in-scalar-types</a></p>
<h2>Current release</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/psycopg/psycopg/commit/780068d53685ab85c3fbb273596f562e6eeba297"><code>780068d</code></a>
chore: bump psycopg package version to 3.1.19</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/040489c648d5f3fb12342a55c02911e02f21aa6b"><code>040489c</code></a>
chore(crdb): upgrade types to v23.1</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/163f3665b11eab10d7de6d917162b660d4229774"><code>163f366</code></a>
ci(macos): test and build macOS packages on M1 runners</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/01d5dabde6a3d5250b33e6d53fea7789afdb6125"><code>01d5dab</code></a>
Merge branch 'fix-745' into maint-3.1</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/28fc73e5730d594d7340dbd2a686ce01894ba8e5"><code>28fc73e</code></a>
perf(copy): only flush at every row on copy on macOS</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/963c5f8a1b169eccee05fbf0b9738308df86706e"><code>963c5f8</code></a>
Improve performance of copy</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/c9486b3a9f22b1003705c59a0c6cc5248f6a2ec7"><code>c9486b3</code></a>
test(copy): add minimal copy benchmark framework</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/33989450c64dc2da93697183a8f4a61242b2bebd"><code>3398945</code></a>
Merge branch 'fix-734' into maint-3.1</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/cfc0782032f8fa86096a7b9f7fd83b6870ec7fe5"><code>cfc0782</code></a>
fix(c): solve undefined behaviour caused by unaligned access</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/611738ff3626e7f0d35d66c934653220a7248bbe"><code>611738f</code></a>
ci: add test to check for misaligned memory access</li>
<li>Additional commits viewable in <a
href="https://github.com/psycopg/psycopg/compare/3.1.18...3.1.19">compare
view</a></li>
</ul>
</details>
<br />

Updates `psycopg[binary]` from 3.1.18 to 3.1.19
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/psycopg/psycopg/blob/master/docs/news.rst">psycopg[binary]'s
changelog</a>.</em></p>
<blockquote>
<p>.. currentmodule:: psycopg</p>
<p>.. index::
single: Release notes
single: News</p>
<h1><code>psycopg</code> release notes</h1>
<h2>Future releases</h2>
<p>Psycopg 3.2 (unreleased)
^^^^^^^^^^^^^^^^^^^^^^^^</p>
<ul>
<li>Add support for integer, floating point, boolean <code>NumPy scalar
types</code>__

(:ticket:<code>[#332](https://github.com/psycopg/psycopg/issues/332)</code>).</li>
<li>Add <code>!timeout</code> and <code>!stop_after</code> parameters to
<code>Connection.notifies()</code>
(:ticket:<code>340</code>).</li>
<li>Add :ref:<code>raw-query-cursors</code> to execute queries using
placeholders in
PostgreSQL format (<code>$1</code>, <code>$2</code>...)
(:ticket:<code>[#560](https://github.com/psycopg/psycopg/issues/560)</code>).</li>
<li>Add <code>psycopg.capabilities</code> object to :ref:<code>inspect
the libpq capabilities &lt;capabilities&gt;</code>
(🎫<code>[#772](https://github.com/psycopg/psycopg/issues/772)</code>).</li>
<li>Add <code>~rows.scalar_row</code> to return scalar values from a
query
(:ticket:<code>[#723](https://github.com/psycopg/psycopg/issues/723)</code>).</li>
<li>Prepared statements are now :ref:<code>compatible with PgBouncer
&lt;pgbouncer&gt;</code>.

(🎫<code>[#589](https://github.com/psycopg/psycopg/issues/589)</code>).</li>
<li>Add <code>~Connection.set_autocommit()</code> on sync connections,
and similar
transaction control methods available on the async connections.</li>
<li>Add support for libpq functions to close prepared statements and
portals
introduced in libpq v17
(:ticket:<code>[#603](https://github.com/psycopg/psycopg/issues/603)</code>).</li>
<li>Add support for libpq encrypted and non-blocking query cancellation
functions introduced in libpq v17
(:ticket:<code>[#754](https://github.com/psycopg/psycopg/issues/754)</code>).</li>
<li>The <code>!context</code> parameter of <code>sql</code> objects
<code>~sql.Composable.as_string()</code> and
<code>~sql.Composable.as_bytes()</code> methods is now optional
(:ticket:<code>[#716](https://github.com/psycopg/psycopg/issues/716)</code>).</li>
<li>Disable receiving more than one result on the same cursor in
pipeline mode,
to iterate through <code>~Cursor.nextset()</code>. The behaviour was
different than
in non-pipeline mode and not totally reliable
(:ticket:<code>[#604](https://github.com/psycopg/psycopg/issues/604)</code>).
The <code>Cursor</code> now only preserves the results set of the last
<code>~Cursor.execute()</code>, consistently with non-pipeline
mode.</li>
<li>Add <code>~Connection.cancel_safe()</code> for encrypted and
non-blocking cancellation
If possible, use such method internally upon
<code>KeyboardInterrupt</code> and <code>Copy</code>
termination
(:ticket:<code>[#754](https://github.com/psycopg/psycopg/issues/754)</code>).</li>
<li>Add support for libpq function to retrieve results in chunks
introduced in
libpq v17
(:ticket:<code>[#793](https://github.com/psycopg/psycopg/issues/793)</code>).</li>
</ul>
<p>.. __: <a
href="https://numpy.org/doc/stable/reference/arrays.scalars.html#built-in-scalar-types">https://numpy.org/doc/stable/reference/arrays.scalars.html#built-in-scalar-types</a></p>
<h2>Current release</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/psycopg/psycopg/commit/780068d53685ab85c3fbb273596f562e6eeba297"><code>780068d</code></a>
chore: bump psycopg package version to 3.1.19</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/040489c648d5f3fb12342a55c02911e02f21aa6b"><code>040489c</code></a>
chore(crdb): upgrade types to v23.1</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/163f3665b11eab10d7de6d917162b660d4229774"><code>163f366</code></a>
ci(macos): test and build macOS packages on M1 runners</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/01d5dabde6a3d5250b33e6d53fea7789afdb6125"><code>01d5dab</code></a>
Merge branch 'fix-745' into maint-3.1</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/28fc73e5730d594d7340dbd2a686ce01894ba8e5"><code>28fc73e</code></a>
perf(copy): only flush at every row on copy on macOS</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/963c5f8a1b169eccee05fbf0b9738308df86706e"><code>963c5f8</code></a>
Improve performance of copy</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/c9486b3a9f22b1003705c59a0c6cc5248f6a2ec7"><code>c9486b3</code></a>
test(copy): add minimal copy benchmark framework</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/33989450c64dc2da93697183a8f4a61242b2bebd"><code>3398945</code></a>
Merge branch 'fix-734' into maint-3.1</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/cfc0782032f8fa86096a7b9f7fd83b6870ec7fe5"><code>cfc0782</code></a>
fix(c): solve undefined behaviour caused by unaligned access</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/611738ff3626e7f0d35d66c934653220a7248bbe"><code>611738f</code></a>
ci: add test to check for misaligned memory access</li>
<li>Additional commits viewable in <a
href="https://github.com/psycopg/psycopg/compare/3.1.18...3.1.19">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation issue fix developed release schedule to be determined
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants