Skip to main content

A minimal Python wrapper around the PAGE-XML format for OCR output

Project description

pygexml

A minimal Python wrapper around the PAGE-XML format for OCR output.

pygexml checks, tests and docs API docs online

Installation

pip install pygexml

Requires Python 3.12+.

Usage

from pygexml import Page

page = Page.from_xml_string(xml_string)

for line in page.all_text():
    print(line)

Data model

Class Import from
Page pygexml
Page, TextRegion, TextLine, Coords pygexml.page
Point, Box, Polygon pygexml.geometry

Page, TextRegion and TextLine each expose all_text() and all_words() iterators. Lookups by ID are available via lookup_region() and lookup_textline().

Refer to the online API docs for details.

Hypothesis strategies

The pygexml.strategies module provides Hypothesis strategies for all pygexml types, ready to use in property-based tests - including downstream projects:

from hypothesis import given
from pygexml.strategies import st_pages

@given(st_pages())
def test_my_page_processing(page):
    assert process(page) is not None

Refer to the pygexml.strategies API docs for details.

Development

pip install ".[dev,test,docs]"

black pygexml test          # format
mypy pygexml test           # type check
pyright pygexml test        # type check
pytest -v                   # tests
pdoc -o .api_docs pygexml/* # API docs

CI runs on Python 3.12, 3.13 and 3.14. API documentation is published to GitHub Pages on every push to main.

Contributing

Bug reports, feature requests and pull requests are welcome. Feel free to open draft pull requests early to invite discussion and collaboration.

Please note that this project has a Code of Conduct.

Copyright and License

Copyright (c) 2026 Mirko Westermeier (SCDH, University of Münster)

Released under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pygexml-0.1.2.tar.gz (9.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pygexml-0.1.2-py3-none-any.whl (6.9 kB view details)

Uploaded Python 3

File details

Details for the file pygexml-0.1.2.tar.gz.

File metadata

  • Download URL: pygexml-0.1.2.tar.gz
  • Upload date:
  • Size: 9.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pygexml-0.1.2.tar.gz
Algorithm Hash digest
SHA256 bdcb20e837f7608506798d7ea050b9d2eb5c4d4171ba394ed8da15c9144b390c
MD5 ef58badea67bb7b59601be488c9e0338
BLAKE2b-256 7ce4a4d6bc6b4cbe73f8f076bb4e95531f37f94491e9acc6b9c5dcf7e97457a7

See more details on using hashes here.

Provenance

The following attestation bundles were made for pygexml-0.1.2.tar.gz:

Publisher: publish.yml on SCDH/pygexml

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pygexml-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: pygexml-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 6.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pygexml-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d0644564f9c1247aa004428e65190f5472143a0978efb1fc0203694818c9a8a6
MD5 9b0980439c029066267a955f4fe45189
BLAKE2b-256 f90ce94181b106f55c192b2c34659435c7063700f87ff35383f6d8019c78deef

See more details on using hashes here.

Provenance

The following attestation bundles were made for pygexml-0.1.2-py3-none-any.whl:

Publisher: publish.yml on SCDH/pygexml

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page