Skip to main content

HTRVX : HTR Validation for eXtra-quality controlled documents

Test library

HTRVX - pronounced Ashterux - allows for quality control of XML using XSD schema validation, Segmonto validation and other verifications.

How to install

Simply run pip install htrvx

How to run

The basic way to run the script is htrvx PATHTOFILES --format FORMAT, eg. htrvx ./tests/test_data/page/*.xml --format page

Each verification is an opt-in verification: you need to express the fact that you want to check it.

  • --segmonto will check for Segmonto compliancy
    • You can use your own vocabulary or a restricted Segmonto vocabulary by using --zone ZONENAME and --line LINENAME such as htrvx [...] --line DefaultLine --line HeadingLine --zone MainZone
    • You can use --allow-untagged with either line, zone or both so that zones without type are allowed. If you want to limit such lines or zone, combine it with --max-untagged-zones N or --max-untagged-lines N where N is the number of allowed occurrences.
  • --xsd will check if the data are compliant with XML Schemas
  • --check-empty will check if regions have no lines or if lines have no text
    • --check-empty can be refined with --raise-empty to throw an error if empty elements are found, otherwise it's simply reported. = --check-image checks for link in the XML. Link are checked relatively to the XML file, ie. if XML file ./data/element.xml points to file.jpeg, file ./data/file.jpeg is expected to exist.

Other parameters mainly have to do with verbosity: --verbose displays details about errors, --group groups errors (instead of showing one line per error, groups by error types).

Parameters Default Function
-v, --verbose False Prints more information
-f, --format [alto,page] alto Format of files
-s, --segmonto False Apply Segmonto Zoning verification
-e, --check-empty False Check for empty lines or empty zones
-r, --raise-empty False Warns but not fails if empty lines or empty zones are found
-x, --xsd False Apply XSD Schema verification
-g, --group False Group error types (reduce verbosity)
-i, --check-image False Check if the image link in the XML points to the right path
-l, --verbose-level zen Level of details and amount of color shown in the logs (see below).
--zone TEXT None Provide a custom zone to control zone types instead of Segmonto
--line TEXT None Provide a custom line to control Line types instead of Segmonto

Verbosity levels

  • minimal: shows only failing tests, no details.
  • low: shows only failing test and their details, such as which lines fails in a file.
  • zen (default): shows all tests and their details, but displays only one color (red for errors).
  • all: shows everything.

Github Action code

If you want to add this to your github repository, as a continuous integration workflow, add a file htrux.yml at in the path .github/workflows of your repository.

# This workflow will install Python dependencies, run tests and lint with a single version of Python
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions

name: HTRVX

on: [push, pull_request] # You can edit this of course !

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Set up Python 3.8
      uses: actions/setup-python@v2
      with:
        python-version: 3.8
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install htrvx
    - name: Run HTRVX
      run: |
        htrvx --verbose --group --format alto --segmonto --xsd --check-empty --raise-empty UNIX/Path/to/**/your/*.xml

Logo by Alix Chagué.

Metadata

Release files for htrvx 0.0.20

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for htrvx 0.0.20
File Size Uploaded
htrvx-0.0.20.tar.gz 149.7 kB Details

Release files / htrvx-0.0.20.tar.gz

Download URL htrvx-0.0.20.tar.gz
Size 149.7 kB
Tags Source
SHA-256 checksum
How to use checksums
46a68cf13c3acc5612b6a912b0ac8a1771e9a18c054fdfb2570ead1e02787824
BLAKE2b-256 checksum
How to use checksums
940f07d59b59ee28bcdfc842b94f83fff5e15b514e046164443a19175d52498a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.0.20 This release

1 release file

0.0.19

2 release files

0.0.18

2 release files

0.0.17

2 release files

0.0.16

2 release files

0.0.15

2 release files

0.0.13

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page