Glymur 0.14.2__tar.gz → 0.14.4__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.
- {glymur-0.14.2 → glymur-0.14.4}/.circleci/config.yml +4 -0
- {glymur-0.14.2 → glymur-0.14.4}/CHANGES.txt +9 -0
- {glymur-0.14.2 → glymur-0.14.4}/Glymur.egg-info/PKG-INFO +2 -1
- {glymur-0.14.2 → glymur-0.14.4}/Glymur.egg-info/SOURCES.txt +1 -0
- {glymur-0.14.2 → glymur-0.14.4}/PKG-INFO +2 -1
- {glymur-0.14.2 → glymur-0.14.4}/appveyor.yml +6 -0
- {glymur-0.14.2 → glymur-0.14.4}/ci/install.ps1 +2 -0
- {glymur-0.14.2 → glymur-0.14.4}/ci/travis-311-no-gdal.yaml +3 -3
- {glymur-0.14.2 → glymur-0.14.4}/ci/travis-311-no-opj.yaml +3 -3
- {glymur-0.14.2 → glymur-0.14.4}/ci/travis-311.yaml +3 -3
- {glymur-0.14.2 → glymur-0.14.4}/ci/travis-313.yaml +3 -3
- glymur-0.14.4/ci/travis-314.yaml +13 -0
- {glymur-0.14.2 → glymur-0.14.4}/docs/source/conf.py +1 -1
- {glymur-0.14.2 → glymur-0.14.4}/docs/source/introduction.rst +1 -1
- {glymur-0.14.2 → glymur-0.14.4}/docs/source/whatsnew/0.14.rst +15 -0
- {glymur-0.14.2 → glymur-0.14.4}/glymur/_core_converter.py +1 -1
- {glymur-0.14.2 → glymur-0.14.4}/glymur/jp2box.py +1 -1
- {glymur-0.14.2 → glymur-0.14.4}/glymur/jp2k.py +6 -6
- {glymur-0.14.2 → glymur-0.14.4}/glymur/jp2kr.py +6 -9
- {glymur-0.14.2 → glymur-0.14.4}/glymur/options.py +3 -4
- {glymur-0.14.2 → glymur-0.14.4}/glymur/version.py +2 -2
- {glymur-0.14.2 → glymur-0.14.4}/pyproject.toml +2 -1
- {glymur-0.14.2 → glymur-0.14.4}/tests/test_commandline_tiff2jp2.py +1 -1
- {glymur-0.14.2 → glymur-0.14.4}/tests/test_threading.py +13 -19
- {glymur-0.14.2 → glymur-0.14.4}/tests/test_tiff2jp2.py +1 -1
- {glymur-0.14.2 → glymur-0.14.4}/.gitignore +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/.readthedocs.yaml +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/.travis.yml +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/Glymur.egg-info/dependency_links.txt +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/Glymur.egg-info/entry_points.txt +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/Glymur.egg-info/requires.txt +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/Glymur.egg-info/top_level.txt +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/LICENSE.txt +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/MANIFEST.in +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/README.md +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/azure-pipelines.yml +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/ci/doc.yml +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/ci/run_script.sh +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/ci/run_with_env.cmd +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/ci/setup_env.sh +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/ci/travis-312.yaml +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/conftest.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/docs/Makefile +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/docs/make.bat +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/docs/requirements.txt +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/docs/source/api.rst +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/docs/source/detailed_installation.rst +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/docs/source/goodstuff_alpha.png +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/docs/source/how_do_i.rst +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/docs/source/index.rst +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/docs/source/roadmap.rst +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/docs/source/whatsnew/0.10.rst +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/docs/source/whatsnew/0.11.rst +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/docs/source/whatsnew/0.12.rst +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/docs/source/whatsnew/0.13.rst +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/docs/source/whatsnew/0.5.rst +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/docs/source/whatsnew/0.6.rst +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/docs/source/whatsnew/0.7.rst +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/docs/source/whatsnew/0.8.rst +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/docs/source/whatsnew/0.9.rst +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/docs/source/whatsnew/index.rst +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/glymur/__init__.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/glymur/_iccprofile.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/glymur/codestream.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/glymur/command_line.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/glymur/config.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/glymur/core.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/glymur/data/__init__.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/glymur/data/goodstuff.j2k +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/glymur/data/heliov.jpx +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/glymur/data/nemo.jp2 +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/glymur/jpeg.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/glymur/lib/__init__.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/glymur/lib/_tiff.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/glymur/lib/openjp2.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/glymur/lib/tiff.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/glymur/tiff.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/setup.cfg +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/__init__.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/__init__.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/conformance/__init__.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/conformance/file1_xml.txt +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/conformance/file1_xml_box.txt +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/conformance/p0_02.j2k +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/conformance/p0_03.j2k +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/conformance/p0_06.j2k +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/conformance/p1_06.j2k +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/conformance/p1_07.j2k +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/conformance/p1_07.txt +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/from-openjpeg/__init__.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/from-openjpeg/edf_c2_1178956.jp2 +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/from-openjpeg/issue142.j2k +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/from-openjpeg/issue392.jp2 +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/from-openjpeg/issue396.jp2 +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/from-openjpeg/issue438.jp2 +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/from-openjpeg/issue626.j2k +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/from-openjpeg/jph_siz.txt +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/from-openjpeg/oj-ht-byte.jph +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/from-openjpeg/text_GBR.jp2 +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/from-openjpeg/text_GBR_rreq.txt +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/geo/0220000800_uuid.dat +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/geo/__init__.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/geo/gml.xml +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/appended_xml_box.txt +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/countries.xml +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/decompression_parameters_type.txt +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/default_compression_parameters_type.txt +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/default_progression_order_changes_type.txt +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/encoding_declaration.xml +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/goodstuff_codestream_header.txt +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/goodstuff_with_full_header.txt +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/issue186_progression_order.txt +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/issue398.dat +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/issue405.dat +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/issue549.dat +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/issue555.xmp +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/issue982.j2k +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/multiple_precinct_size.txt +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/nemo.txt +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/nemo_dump_no_codestream.txt +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/nemo_dump_no_codestream_no_xml.txt +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/nemo_dump_no_xml.txt +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/nemo_dump_short.txt +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/nemo_with_codestream_header.txt +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/nemo_xmp_box.txt +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/no_jp2c.jp2 +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/sgray.icc +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/simple_rdf.txt +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/simple_rdf.uuid-box.txt +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/uint16.j2k +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/skimage/__init__.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/skimage/astronaut8.tif +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/skimage/astronaut8_stripped.tif +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/skimage/astronaut_s_uint16.tif +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/skimage/astronaut_uint16.tif +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/skimage/astronaut_ycbcr_jpeg_tiled.tif +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/skimage/goodstuff_32s.tif +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/skimage/moon.tif +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/skimage/moon3_partial_last_strip.tif +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/skimage/moon3_stripped.tif +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/skimage/moon63.tif +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/skimage/moon_2x2.tif +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/skimage/moon_3x3.tif +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/skimage/stripped.tif +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/skimage/ycbcr_bg.tif +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/skimage/ycbcr_stripped.tif +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/tiff/__init__.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/tiff/albers27-8.tif +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/tiff/albers27.tif +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/tiff/basn6a08.tif +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/tiff/cmyk.tif +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/tiff/degenerate_geotiff.tif +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/tiff/flower-separated-planar-08.tif +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/tiff/ieeefp32.tif +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/tiff/issue572.tif +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/tiff/issue678.tif +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/tiff/uint32.tif +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/data/tiff/warning.tif +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/fixtures.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/test_callbacks.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/test_cinema.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/test_codestream.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/test_colour_specification_box.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/test_commandline_jp2dump.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/test_commandline_jpeg2jp2.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/test_config.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/test_geo.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/test_jp2box.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/test_jp2box_jpx.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/test_jp2box_uuid.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/test_jp2box_xml.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/test_jp2k.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/test_jp2k_writes.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/test_jp2kr.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/test_jpeg2jp2.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/test_libtiff.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/test_openjp2.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/test_printing.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/test_set_decoded_components.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/test_slicing.py +0 -0
- {glymur-0.14.2 → glymur-0.14.4}/tests/test_warnings.py +0 -0
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
Oct 08, 2025 - v0.14.4
|
|
2
|
+
Qualify on python 3.14
|
|
3
|
+
Add User-Agent header to powershell script for Appveyor
|
|
4
|
+
Remove remaining openjpeg<2.4 artifacts
|
|
5
|
+
Remove explicit testing of numpy 1.26
|
|
6
|
+
|
|
7
|
+
Jun 12, 2025 - v0.14.3
|
|
8
|
+
Fix DeprecationWarning upon import
|
|
9
|
+
|
|
1
10
|
Jun 12, 2025 - v0.14.2
|
|
2
11
|
Fix test suite for python 3.14 regular expressions
|
|
3
12
|
Remove long-since-deprecated Jp2kr.read method
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: Glymur
|
|
3
|
-
Version: 0.14.
|
|
3
|
+
Version: 0.14.4
|
|
4
4
|
Summary: Read and write JPEG 2000 files
|
|
5
5
|
Author-email: John Evans <jevans667cc@proton.me>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -12,6 +12,7 @@ Classifier: Programming Language :: Python
|
|
|
12
12
|
Classifier: Programming Language :: Python :: 3.11
|
|
13
13
|
Classifier: Programming Language :: Python :: 3.12
|
|
14
14
|
Classifier: Programming Language :: Python :: 3.13
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
15
16
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
16
17
|
Classifier: Intended Audience :: Science/Research
|
|
17
18
|
Classifier: Operating System :: OS Independent
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: Glymur
|
|
3
|
-
Version: 0.14.
|
|
3
|
+
Version: 0.14.4
|
|
4
4
|
Summary: Read and write JPEG 2000 files
|
|
5
5
|
Author-email: John Evans <jevans667cc@proton.me>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -12,6 +12,7 @@ Classifier: Programming Language :: Python
|
|
|
12
12
|
Classifier: Programming Language :: Python :: 3.11
|
|
13
13
|
Classifier: Programming Language :: Python :: 3.12
|
|
14
14
|
Classifier: Programming Language :: Python :: 3.13
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
15
16
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
16
17
|
Classifier: Intended Audience :: Science/Research
|
|
17
18
|
Classifier: Operating System :: OS Independent
|
|
@@ -30,6 +30,12 @@ environment:
|
|
|
30
30
|
CONDA_PY: "313"
|
|
31
31
|
USE_PATH_FOR_GDAL_PYTHON: "YES"
|
|
32
32
|
|
|
33
|
+
- CONDA_ROOT: "C:\\Miniconda3_64"
|
|
34
|
+
PYTHON_VERSION: "3.14"
|
|
35
|
+
PYTHON_ARCH: "64"
|
|
36
|
+
CONDA_PY: "314"
|
|
37
|
+
USE_PATH_FOR_GDAL_PYTHON: "YES"
|
|
38
|
+
|
|
33
39
|
# We always use a 64-bit machine, but can build x86 distributions
|
|
34
40
|
# with the PYTHON_ARCH variable (which is used by CMD_IN_ENV).
|
|
35
41
|
platform:
|
|
@@ -7,6 +7,8 @@ $MINICONDA_URL = "http://repo.continuum.io/miniconda/"
|
|
|
7
7
|
|
|
8
8
|
function DownloadMiniconda ($python_version, $platform_suffix) {
|
|
9
9
|
$webclient = New-Object System.Net.WebClient
|
|
10
|
+
$webclient.Headers.Add("User-Agent", "Abraxis/1.0")
|
|
11
|
+
|
|
10
12
|
$filename = "Miniconda3-latest-Windows-" + $platform_suffix + ".exe"
|
|
11
13
|
$url = $MINICONDA_URL + $filename
|
|
12
14
|
|
|
@@ -3,11 +3,11 @@ channels:
|
|
|
3
3
|
- conda-forge
|
|
4
4
|
dependencies:
|
|
5
5
|
- python=3.11.*
|
|
6
|
-
- gdal>=3.
|
|
6
|
+
- gdal>=3.8.0,<3.9.0
|
|
7
7
|
- pillow
|
|
8
|
-
- libtiff>=4.
|
|
8
|
+
- libtiff>=4.6.0,<4.7.0
|
|
9
9
|
- lxml>=5.0
|
|
10
|
-
- numpy>=
|
|
10
|
+
- numpy>=2.0,<2.1
|
|
11
11
|
- openjpeg>=2.5
|
|
12
12
|
- pytest-xdist
|
|
13
13
|
- scikit-image
|
|
@@ -3,11 +3,11 @@ channels:
|
|
|
3
3
|
- conda-forge
|
|
4
4
|
dependencies:
|
|
5
5
|
- python=3.11.*
|
|
6
|
-
- gdal>=3.
|
|
6
|
+
- gdal>=3.8.0,<3.9.0
|
|
7
7
|
- pillow
|
|
8
|
-
- libtiff>=4.
|
|
8
|
+
- libtiff>=4.6.0,<4.7.0
|
|
9
9
|
- lxml>=5.0
|
|
10
|
-
- numpy>=
|
|
10
|
+
- numpy>=2.0,<2.1
|
|
11
11
|
- pip
|
|
12
12
|
- pytest-xdist
|
|
13
13
|
- scikit-image
|
|
@@ -3,11 +3,11 @@ channels:
|
|
|
3
3
|
- conda-forge
|
|
4
4
|
dependencies:
|
|
5
5
|
- python=3.11.*
|
|
6
|
-
- gdal>=3.
|
|
6
|
+
- gdal>=3.8.0,<3.9.0
|
|
7
7
|
- pillow
|
|
8
|
-
- libtiff>=4.
|
|
8
|
+
- libtiff>=4.6.0,<4.7.0
|
|
9
9
|
- lxml>=5.0
|
|
10
|
-
- numpy>=
|
|
10
|
+
- numpy>=2.0,<2.1
|
|
11
11
|
- openjpeg>=2.5
|
|
12
12
|
- pytest-xdist
|
|
13
13
|
- scikit-image
|
|
@@ -81,7 +81,7 @@ copyright = '2013-2025, John Evans'
|
|
|
81
81
|
# The short X.Y version.
|
|
82
82
|
version = '0.14'
|
|
83
83
|
# The full version, including alpha/beta/rc tags.
|
|
84
|
-
release = '0.14.
|
|
84
|
+
release = '0.14.4'
|
|
85
85
|
|
|
86
86
|
# The language for content autogenerated by Sphinx. Refer to documentation
|
|
87
87
|
# for a list of supported languages.
|
|
@@ -13,7 +13,7 @@ Certain optional JP2 boxes can also be written, including XML boxes and
|
|
|
13
13
|
XMP UUIDs. There is incomplete support for reading JPX metadata.
|
|
14
14
|
|
|
15
15
|
The current version of glymur is supported on Python versions 3.11,
|
|
16
|
-
3.12, and 3.
|
|
16
|
+
3.12, 3.13, and 3.14. You should have at least version 2.4.0 of OpenJPEG.
|
|
17
17
|
|
|
18
18
|
For more information about OpenJPEG, please consult http://www.openjpeg.org.
|
|
19
19
|
|
|
@@ -2,6 +2,21 @@
|
|
|
2
2
|
Changes in glymur 0.14
|
|
3
3
|
######################
|
|
4
4
|
|
|
5
|
+
*****************
|
|
6
|
+
Changes in 0.14.4
|
|
7
|
+
*****************
|
|
8
|
+
|
|
9
|
+
* Qualify on python 3.14
|
|
10
|
+
* Add User-Agent header to powershell script for Appveyor
|
|
11
|
+
* Remove remaining openjpeg<2.4 artifacts
|
|
12
|
+
* Remove explicit testing of numpy 1.x
|
|
13
|
+
|
|
14
|
+
*****************
|
|
15
|
+
Changes in 0.14.3
|
|
16
|
+
*****************
|
|
17
|
+
|
|
18
|
+
* Fix import warning
|
|
19
|
+
|
|
5
20
|
*****************
|
|
6
21
|
Changes in 0.14.2
|
|
7
22
|
*****************
|
|
@@ -526,10 +526,10 @@ class Jp2k(Jp2kr):
|
|
|
526
526
|
This method can only be used to create JPEG 2000 images that can fit
|
|
527
527
|
in memory.
|
|
528
528
|
"""
|
|
529
|
-
if version.openjpeg_version < "2.
|
|
529
|
+
if version.openjpeg_version < "2.4.0":
|
|
530
530
|
msg = (
|
|
531
|
-
"
|
|
532
|
-
"
|
|
531
|
+
"The minimum supported version of OpenJPEG is 2.4.0. "
|
|
532
|
+
f"Your version is {version.openjpeg_version}."
|
|
533
533
|
)
|
|
534
534
|
raise RuntimeError(msg)
|
|
535
535
|
|
|
@@ -1463,10 +1463,10 @@ class _TileWriter(object):
|
|
|
1463
1463
|
"""Write image data to a JP2/JPX/J2k file. Intended usage of the
|
|
1464
1464
|
various parameters follows that of OpenJPEG's opj_compress utility.
|
|
1465
1465
|
"""
|
|
1466
|
-
if version.openjpeg_version < "2.
|
|
1466
|
+
if version.openjpeg_version < "2.4.0":
|
|
1467
1467
|
msg = (
|
|
1468
|
-
"
|
|
1469
|
-
"
|
|
1468
|
+
"The minimum supported version of OpenJPEG is 2.4.0. "
|
|
1469
|
+
f"Your version is {version.openjpeg_version}."
|
|
1470
1470
|
)
|
|
1471
1471
|
raise RuntimeError(msg)
|
|
1472
1472
|
|
|
@@ -12,7 +12,6 @@ from __future__ import annotations
|
|
|
12
12
|
from contextlib import ExitStack
|
|
13
13
|
import ctypes
|
|
14
14
|
import pathlib
|
|
15
|
-
import re
|
|
16
15
|
import struct
|
|
17
16
|
import sys
|
|
18
17
|
import warnings
|
|
@@ -694,11 +693,10 @@ class Jp2kr(Jp2kBox):
|
|
|
694
693
|
RuntimeError
|
|
695
694
|
If the image has differing subsample factors.
|
|
696
695
|
"""
|
|
697
|
-
if
|
|
696
|
+
if version.openjpeg_version < '2.4.0':
|
|
698
697
|
msg = (
|
|
699
|
-
|
|
700
|
-
f"
|
|
701
|
-
f"Your version is {version.openjpeg_version}"
|
|
698
|
+
"The minimum supported version of OpenJPEG is 2.4.0. "
|
|
699
|
+
f"Your version is {version.openjpeg_version}."
|
|
702
700
|
)
|
|
703
701
|
raise RuntimeError(msg)
|
|
704
702
|
|
|
@@ -878,11 +876,10 @@ class Jp2kr(Jp2kBox):
|
|
|
878
876
|
>>> jp = glymur.Jp2k(jfile)
|
|
879
877
|
>>> components_lst = jp.read_bands(rlevel=1)
|
|
880
878
|
"""
|
|
881
|
-
if version.openjpeg_version < "2.
|
|
879
|
+
if version.openjpeg_version < "2.4.0":
|
|
882
880
|
msg = (
|
|
883
|
-
|
|
884
|
-
f"
|
|
885
|
-
f"{version.openjpeg_version}."
|
|
881
|
+
"The minimum supported version of OpenJPEG is 2.4.0. "
|
|
882
|
+
f"Your version is {version.openjpeg_version}."
|
|
886
883
|
)
|
|
887
884
|
raise RuntimeError(msg)
|
|
888
885
|
|
|
@@ -71,11 +71,10 @@ def set_option(key, value):
|
|
|
71
71
|
raise KeyError(f"{key} not valid.")
|
|
72
72
|
|
|
73
73
|
if key == "lib.num_threads":
|
|
74
|
-
if version.openjpeg_version < "2.
|
|
74
|
+
if version.openjpeg_version < "2.4.0":
|
|
75
75
|
msg = (
|
|
76
|
-
|
|
77
|
-
f"
|
|
78
|
-
f"{version.openjpeg_version}."
|
|
76
|
+
"The minimum supported version of OpenJPEG is 2.4.0. "
|
|
77
|
+
f"Your version is {version.openjpeg_version}."
|
|
79
78
|
)
|
|
80
79
|
raise RuntimeError(msg)
|
|
81
80
|
if not opj2.has_thread_support():
|
|
@@ -16,11 +16,11 @@ import numpy as np
|
|
|
16
16
|
|
|
17
17
|
# Local imports ...
|
|
18
18
|
from .lib import openjp2 as opj2
|
|
19
|
-
from .lib import tiff
|
|
19
|
+
from .lib import _tiff as tiff
|
|
20
20
|
|
|
21
21
|
# Do not change the format of this next line! Doing so risks breaking
|
|
22
22
|
# setup.py
|
|
23
|
-
version = "0.14.
|
|
23
|
+
version = "0.14.4"
|
|
24
24
|
|
|
25
25
|
version_tuple = parse(version).release
|
|
26
26
|
|
|
@@ -5,6 +5,7 @@ classifiers = [
|
|
|
5
5
|
'Programming Language :: Python :: 3.11',
|
|
6
6
|
'Programming Language :: Python :: 3.12',
|
|
7
7
|
'Programming Language :: Python :: 3.13',
|
|
8
|
+
'Programming Language :: Python :: 3.14',
|
|
8
9
|
'Programming Language :: Python :: Implementation :: CPython',
|
|
9
10
|
'Intended Audience :: Science/Research',
|
|
10
11
|
'Operating System :: OS Independent',
|
|
@@ -21,7 +22,7 @@ license = 'MIT'
|
|
|
21
22
|
name = 'Glymur'
|
|
22
23
|
readme = 'README.md'
|
|
23
24
|
requires-python = '>=3.11'
|
|
24
|
-
version = '0.14.
|
|
25
|
+
version = '0.14.4'
|
|
25
26
|
|
|
26
27
|
[project.scripts]
|
|
27
28
|
jp2dump = 'glymur.command_line:main'
|
|
@@ -428,7 +428,7 @@ class TestSuite(fixtures.TestCommon):
|
|
|
428
428
|
"""
|
|
429
429
|
path = ir.files('tests.data.tiff').joinpath('basn6a08.tif')
|
|
430
430
|
buffer = path.read_bytes()
|
|
431
|
-
ifd = glymur.lib.
|
|
431
|
+
ifd = glymur.lib._tiff.tiff_header(buffer)
|
|
432
432
|
icc_profile = bytes(ifd['ICCProfile'])
|
|
433
433
|
|
|
434
434
|
sys.argv = [
|
|
@@ -107,18 +107,18 @@ class TestSuite(fixtures.TestCommon):
|
|
|
107
107
|
SCENARIO: Attempt to encode with threading support. This feature is
|
|
108
108
|
new as of openjpeg library version 2.4.0.
|
|
109
109
|
|
|
110
|
-
EXPECTED RESULT:
|
|
111
|
-
issued.
|
|
110
|
+
EXPECTED RESULT: OpenJPEG currently must be at least 2.4.0, so no
|
|
111
|
+
warning is issued.
|
|
112
112
|
"""
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
113
|
+
glymur.set_option('lib.num_threads', 2)
|
|
114
|
+
|
|
115
|
+
with warnings.catch_warnings(record=True) as w:
|
|
116
|
+
Jp2k(
|
|
117
|
+
self.temp_jp2_filename,
|
|
118
|
+
data=np.zeros((128, 128), dtype=np.uint8)
|
|
119
|
+
)
|
|
120
|
+
|
|
121
|
+
self.assertEqual(len(w), 0)
|
|
122
122
|
|
|
123
123
|
def test_tiff2jp2_num_threads(self):
|
|
124
124
|
"""
|
|
@@ -147,7 +147,7 @@ class TestSuite(fixtures.TestCommon):
|
|
|
147
147
|
openjpeg library is not too old for writing, it's too old for threaded
|
|
148
148
|
writing. In other words, it's version 2.3.0
|
|
149
149
|
|
|
150
|
-
EXPECTED RESULT:
|
|
150
|
+
EXPECTED RESULT: RuntimeError
|
|
151
151
|
"""
|
|
152
152
|
expected = skimage.data.astronaut()
|
|
153
153
|
|
|
@@ -162,12 +162,6 @@ class TestSuite(fixtures.TestCommon):
|
|
|
162
162
|
)
|
|
163
163
|
|
|
164
164
|
with patch('glymur.version.openjpeg_version', new='2.3.0'):
|
|
165
|
-
with self.
|
|
165
|
+
with self.assertRaises(RuntimeError):
|
|
166
166
|
for tw in j.get_tilewriters():
|
|
167
167
|
tw[:] = expected
|
|
168
|
-
|
|
169
|
-
expected = np.concatenate((expected, expected), axis=0)
|
|
170
|
-
expected = np.concatenate((expected, expected), axis=1)
|
|
171
|
-
actual = j[:]
|
|
172
|
-
|
|
173
|
-
np.testing.assert_array_equal(actual, expected)
|
|
@@ -1290,7 +1290,7 @@ class TestSuite(fixtures.TestCommon):
|
|
|
1290
1290
|
"""
|
|
1291
1291
|
path = ir.files('tests.data.tiff').joinpath('basn6a08.tif')
|
|
1292
1292
|
buffer = path.read_bytes()
|
|
1293
|
-
ifd = glymur.lib.
|
|
1293
|
+
ifd = glymur.lib._tiff.tiff_header(buffer)
|
|
1294
1294
|
icc_profile = bytes(ifd['ICCProfile'])
|
|
1295
1295
|
|
|
1296
1296
|
with Tiff2Jp2k(
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|