A module to validate jp2images
Project description
jp2_remediator
A Python module to validate jp2 images:
- reads the bytes of a jp2 file or directory of files or S3 bucket
- looks for presence of ICC profile
- maps and validates curv values according to the ISO/IEC 15444-1:2019 (E) and ICC.1:2022 Specifications
- corrects values where the rTRC/gTRC/bTRC tag size in the Tag table structure (ICC.1:2022 Table 24 tag size) is not the same as the count value (gamma, where n == 1) in the curveType encoding (ICC.1:2022 Table 35, n value)
- flag and (optionally) log values where the count value n != 1 for future review
Installation
pip install jp2_remediator
python3 -m pip install jp2_remediator
pip install jp2_remediator==NN.NN.NN (version number)
Usage
python3 src/jp2_remediator/main.py -h
usage: main.py [-h] {file,directory,bucket} ...
JP2 file processor
options:
-h, --help show this help message and exit
Input source:
{file,directory,bucket}
file Process a single JP2 file
directory Process all JP2 files in a directory
bucket Process all JP2 files in an S3 bucket
Process one file
python3 src/jp2_remediator/main.py file tests/test-images/7514499.jp2
python3 src/jp2_remediator/main.py file tests/test-images/481014278.jp2
Process directory
python3 src/jp2_remediator/main.py directory tests/test-images/
Process all .jp2 files in an S3 bucket:
python3 src/jp2_remediator/main.py bucket remediation-folder
Process only files with a specific prefix (folder):
python3 src/jp2_remediator/main.py bucket remediation-folder --prefix testbatch_20240923`
Run tests
Run integration tests
pytest src/jp2_remediator/tests/integration/
Run unit tests
pytest src/jp2_remediator/tests/unit/
Docker environment
Build Docker image
./bin/docker-build.sh
Run Docker container as executable
./bin/docker-run.sh -h
Development environment
uv sync
export PYTHONPATH="${PYTHONPATH}:src"
uv run python src/jp2_remediator/main.py -h
Publishing to PyPI
Add the following variable to your .env:
UV_PUBLISH_TOKEN=pypi-<token>
Set the version number in pyproject.toml to the version you wish to publish.
Run the following commands:
rm -rf dist/
uv build
uv publish
If you get a publish error, the following commands will set your .env variables into the shell and should work:
set -a
source .env
set +a
uv publish
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jp2_remediator-1.2.0.tar.gz.
File metadata
- Download URL: jp2_remediator-1.2.0.tar.gz
- Upload date:
- Size: 21.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b44a14f1789acb6b8bb2971ce6e83432c5f9e4b29a4a7e1a357be3ceb3a5d9cd
|
|
| MD5 |
d6af43d8f0a7e42ec06ca600ec072a42
|
|
| BLAKE2b-256 |
1a03f2b4e4295aa94495479a0bbdd2784d448e03e1b9b4591ed68beab96a08ae
|
File details
Details for the file jp2_remediator-1.2.0-py3-none-any.whl.
File metadata
- Download URL: jp2_remediator-1.2.0-py3-none-any.whl
- Upload date:
- Size: 26.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
79ed21764586ac383ed3ef885bf96cefd48a82468e23e94d0b9fd0fd33ec10e6
|
|
| MD5 |
de4b0888f74640f35e4ecc04e2bf48aa
|
|
| BLAKE2b-256 |
5c8c6ff77b5ea82820ecaa1566bea50502cc2f3ab01159292046253a8ddc62fb
|