Glymur 0.14.1.post1__tar.gz → 0.14.2__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.1.post1 → glymur-0.14.2}/.circleci/config.yml +2 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/CHANGES.txt +6 -2
- {glymur-0.14.1.post1 → glymur-0.14.2}/Glymur.egg-info/PKG-INFO +1 -1
- {glymur-0.14.1.post1 → glymur-0.14.2}/Glymur.egg-info/SOURCES.txt +1 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/PKG-INFO +1 -1
- {glymur-0.14.1.post1 → glymur-0.14.2}/docs/source/conf.py +1 -1
- {glymur-0.14.1.post1 → glymur-0.14.2}/docs/source/how_do_i.rst +1 -1
- {glymur-0.14.1.post1 → glymur-0.14.2}/docs/source/whatsnew/0.14.rst +8 -4
- {glymur-0.14.1.post1 → glymur-0.14.2}/glymur/jp2k.py +3 -3
- {glymur-0.14.1.post1 → glymur-0.14.2}/glymur/jp2kr.py +12 -22
- glymur-0.14.2/glymur/lib/tiff.py +10 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/glymur/tiff.py +2 -2
- {glymur-0.14.1.post1 → glymur-0.14.2}/glymur/version.py +1 -1
- {glymur-0.14.1.post1 → glymur-0.14.2}/pyproject.toml +1 -1
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/test_callbacks.py +1 -1
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/test_jp2k.py +2 -2
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/test_jp2k_writes.py +4 -2
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/test_jp2kr.py +2 -2
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/test_libtiff.py +1 -1
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/test_printing.py +31 -28
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/test_warnings.py +0 -6
- {glymur-0.14.1.post1 → glymur-0.14.2}/.gitignore +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/.readthedocs.yaml +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/.travis.yml +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/Glymur.egg-info/dependency_links.txt +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/Glymur.egg-info/entry_points.txt +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/Glymur.egg-info/requires.txt +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/Glymur.egg-info/top_level.txt +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/LICENSE.txt +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/MANIFEST.in +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/README.md +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/appveyor.yml +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/azure-pipelines.yml +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/ci/doc.yml +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/ci/install.ps1 +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/ci/run_script.sh +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/ci/run_with_env.cmd +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/ci/setup_env.sh +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/ci/travis-311-no-gdal.yaml +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/ci/travis-311-no-opj.yaml +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/ci/travis-311.yaml +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/ci/travis-312.yaml +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/ci/travis-313.yaml +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/conftest.py +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/docs/Makefile +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/docs/make.bat +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/docs/requirements.txt +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/docs/source/api.rst +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/docs/source/detailed_installation.rst +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/docs/source/goodstuff_alpha.png +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/docs/source/index.rst +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/docs/source/introduction.rst +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/docs/source/roadmap.rst +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/docs/source/whatsnew/0.10.rst +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/docs/source/whatsnew/0.11.rst +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/docs/source/whatsnew/0.12.rst +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/docs/source/whatsnew/0.13.rst +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/docs/source/whatsnew/0.5.rst +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/docs/source/whatsnew/0.6.rst +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/docs/source/whatsnew/0.7.rst +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/docs/source/whatsnew/0.8.rst +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/docs/source/whatsnew/0.9.rst +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/docs/source/whatsnew/index.rst +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/glymur/__init__.py +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/glymur/_core_converter.py +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/glymur/_iccprofile.py +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/glymur/codestream.py +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/glymur/command_line.py +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/glymur/config.py +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/glymur/core.py +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/glymur/data/__init__.py +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/glymur/data/goodstuff.j2k +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/glymur/data/heliov.jpx +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/glymur/data/nemo.jp2 +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/glymur/jp2box.py +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/glymur/jpeg.py +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/glymur/lib/__init__.py +0 -0
- /glymur-0.14.1.post1/glymur/lib/tiff.py → /glymur-0.14.2/glymur/lib/_tiff.py +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/glymur/lib/openjp2.py +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/glymur/options.py +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/setup.cfg +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/__init__.py +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/__init__.py +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/conformance/__init__.py +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/conformance/file1_xml.txt +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/conformance/file1_xml_box.txt +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/conformance/p0_02.j2k +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/conformance/p0_03.j2k +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/conformance/p0_06.j2k +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/conformance/p1_06.j2k +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/conformance/p1_07.j2k +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/conformance/p1_07.txt +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/from-openjpeg/__init__.py +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/from-openjpeg/edf_c2_1178956.jp2 +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/from-openjpeg/issue142.j2k +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/from-openjpeg/issue392.jp2 +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/from-openjpeg/issue396.jp2 +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/from-openjpeg/issue438.jp2 +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/from-openjpeg/issue626.j2k +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/from-openjpeg/jph_siz.txt +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/from-openjpeg/oj-ht-byte.jph +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/from-openjpeg/text_GBR.jp2 +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/from-openjpeg/text_GBR_rreq.txt +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/geo/0220000800_uuid.dat +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/geo/__init__.py +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/geo/gml.xml +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/misc/appended_xml_box.txt +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/misc/countries.xml +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/misc/decompression_parameters_type.txt +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/misc/default_compression_parameters_type.txt +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/misc/default_progression_order_changes_type.txt +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/misc/encoding_declaration.xml +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/misc/goodstuff_codestream_header.txt +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/misc/goodstuff_with_full_header.txt +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/misc/issue186_progression_order.txt +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/misc/issue398.dat +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/misc/issue405.dat +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/misc/issue549.dat +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/misc/issue555.xmp +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/misc/issue982.j2k +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/misc/multiple_precinct_size.txt +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/misc/nemo.txt +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/misc/nemo_dump_no_codestream.txt +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/misc/nemo_dump_no_codestream_no_xml.txt +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/misc/nemo_dump_no_xml.txt +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/misc/nemo_dump_short.txt +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/misc/nemo_with_codestream_header.txt +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/misc/nemo_xmp_box.txt +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/misc/no_jp2c.jp2 +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/misc/sgray.icc +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/misc/simple_rdf.txt +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/misc/simple_rdf.uuid-box.txt +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/misc/uint16.j2k +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/skimage/__init__.py +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/skimage/astronaut8.tif +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/skimage/astronaut8_stripped.tif +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/skimage/astronaut_s_uint16.tif +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/skimage/astronaut_uint16.tif +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/skimage/astronaut_ycbcr_jpeg_tiled.tif +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/skimage/goodstuff_32s.tif +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/skimage/moon.tif +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/skimage/moon3_partial_last_strip.tif +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/skimage/moon3_stripped.tif +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/skimage/moon63.tif +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/skimage/moon_2x2.tif +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/skimage/moon_3x3.tif +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/skimage/stripped.tif +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/skimage/ycbcr_bg.tif +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/skimage/ycbcr_stripped.tif +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/tiff/__init__.py +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/tiff/albers27-8.tif +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/tiff/albers27.tif +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/tiff/basn6a08.tif +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/tiff/cmyk.tif +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/tiff/degenerate_geotiff.tif +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/tiff/flower-separated-planar-08.tif +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/tiff/ieeefp32.tif +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/tiff/issue572.tif +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/tiff/issue678.tif +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/tiff/uint32.tif +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/tiff/warning.tif +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/fixtures.py +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/test_cinema.py +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/test_codestream.py +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/test_colour_specification_box.py +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/test_commandline_jp2dump.py +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/test_commandline_jpeg2jp2.py +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/test_commandline_tiff2jp2.py +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/test_config.py +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/test_geo.py +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/test_jp2box.py +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/test_jp2box_jpx.py +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/test_jp2box_uuid.py +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/test_jp2box_xml.py +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/test_jpeg2jp2.py +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/test_openjp2.py +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/test_set_decoded_components.py +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/test_slicing.py +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/test_threading.py +0 -0
- {glymur-0.14.1.post1 → glymur-0.14.2}/tests/test_tiff2jp2.py +0 -0
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
Fix
|
|
1
|
+
Jun 12, 2025 - v0.14.2
|
|
2
|
+
Fix test suite for python 3.14 regular expressions
|
|
3
|
+
Remove long-since-deprecated Jp2kr.read method
|
|
4
|
+
Make Jp2kr.parse method private
|
|
5
|
+
Make glymur.lib.tiff module private
|
|
6
|
+
Add doctests into circleci config
|
|
3
7
|
|
|
4
8
|
Apr 06, 2025 - v0.14.1
|
|
5
9
|
Fix doc builds for API
|
|
@@ -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.2'
|
|
85
85
|
|
|
86
86
|
# The language for content autogenerated by Sphinx. Refer to documentation
|
|
87
87
|
# for a list of supported languages.
|
|
@@ -771,7 +771,7 @@ are wrapped in a BytesIO object, which is fed to the most-excellent Pillow packa
|
|
|
771
771
|
>>> from PIL import ImageCms
|
|
772
772
|
>>> from io import BytesIO
|
|
773
773
|
>>> # this assumes you have access to the test suite
|
|
774
|
-
>>> p = pathlib.Path('tests/data/text_GBR.jp2')
|
|
774
|
+
>>> p = pathlib.Path('tests/data/from-openjpeg/text_GBR.jp2')
|
|
775
775
|
>>> # This next step may produce a harmless warning that has nothing to do with ICC profiles.
|
|
776
776
|
>>> j = Jp2k(p)
|
|
777
777
|
>>> # The 2nd sub box of the 4th box is a ColourSpecification box.
|
|
@@ -2,11 +2,15 @@
|
|
|
2
2
|
Changes in glymur 0.14
|
|
3
3
|
######################
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
Changes in 0.14.
|
|
7
|
-
|
|
5
|
+
*****************
|
|
6
|
+
Changes in 0.14.2
|
|
7
|
+
*****************
|
|
8
8
|
|
|
9
|
-
* Fix
|
|
9
|
+
* Fix test suite for python 3.14 regular expressions
|
|
10
|
+
* Remove long-since-deprecated Jp2kr.read method
|
|
11
|
+
* Make Jp2kr.parse method private
|
|
12
|
+
* Make glymur.lib.tiff module private
|
|
13
|
+
* Add doctests into circleci config
|
|
10
14
|
|
|
11
15
|
*****************
|
|
12
16
|
Changes in 0.14.1
|
|
@@ -216,7 +216,7 @@ class Jp2k(Jp2kr):
|
|
|
216
216
|
force : bool
|
|
217
217
|
If true, then run finalize operations
|
|
218
218
|
"""
|
|
219
|
-
self.
|
|
219
|
+
self._parse(force=force_parse)
|
|
220
220
|
|
|
221
221
|
if (
|
|
222
222
|
self._capture_resolution is None
|
|
@@ -256,7 +256,7 @@ class Jp2k(Jp2kr):
|
|
|
256
256
|
temp_filename = self.filename + ".tmp"
|
|
257
257
|
self.wrap(temp_filename, boxes=self.box)
|
|
258
258
|
shutil.move(temp_filename, self.filename)
|
|
259
|
-
self.
|
|
259
|
+
self._parse(force=True)
|
|
260
260
|
|
|
261
261
|
def _validate_kwargs(self):
|
|
262
262
|
"""Validate keyword parameters passed to the constructor."""
|
|
@@ -817,7 +817,7 @@ class Jp2k(Jp2kr):
|
|
|
817
817
|
with self.path.open("ab") as ofile:
|
|
818
818
|
box.write(ofile)
|
|
819
819
|
|
|
820
|
-
self.
|
|
820
|
+
self._parse(force=True)
|
|
821
821
|
|
|
822
822
|
def wrap(self, filename, boxes=None):
|
|
823
823
|
"""
|
|
@@ -107,7 +107,7 @@ class Jp2kr(Jp2kBox):
|
|
|
107
107
|
if not self.path.exists():
|
|
108
108
|
raise FileNotFoundError(f"{self.filename} does not exist.")
|
|
109
109
|
|
|
110
|
-
self.
|
|
110
|
+
self._parse()
|
|
111
111
|
self._initialize_shape()
|
|
112
112
|
|
|
113
113
|
def _initialize_shape(self):
|
|
@@ -393,6 +393,15 @@ class Jp2kr(Jp2kBox):
|
|
|
393
393
|
return "\n".join(metadata)
|
|
394
394
|
|
|
395
395
|
def parse(self, force=False):
|
|
396
|
+
"""
|
|
397
|
+
.. deprecated:: 0.15.0
|
|
398
|
+
"""
|
|
399
|
+
breakpoint()
|
|
400
|
+
msg = "Deprecated, do not use."
|
|
401
|
+
warnings.warn(msg, DeprecationWarning)
|
|
402
|
+
self._parse(force=force)
|
|
403
|
+
|
|
404
|
+
def _parse(self, force=False):
|
|
396
405
|
"""Parses the JPEG 2000 file.
|
|
397
406
|
|
|
398
407
|
Parameters
|
|
@@ -633,25 +642,6 @@ class Jp2kr(Jp2kBox):
|
|
|
633
642
|
# Ok, 3 arguments in pargs.
|
|
634
643
|
return data[:, :, bands]
|
|
635
644
|
|
|
636
|
-
def read(self, **kwargs):
|
|
637
|
-
"""Read a JPEG 2000 image.
|
|
638
|
-
|
|
639
|
-
.. deprecated:: 0.13.5
|
|
640
|
-
Use numpy-style slicing instead.
|
|
641
|
-
|
|
642
|
-
Returns
|
|
643
|
-
-------
|
|
644
|
-
img_array : ndarray
|
|
645
|
-
The image data.
|
|
646
|
-
"""
|
|
647
|
-
|
|
648
|
-
if "ignore_pclr_cmap_cdef" in kwargs:
|
|
649
|
-
self.ignore_pclr_cmap_cdef = kwargs["ignore_pclr_cmap_cdef"]
|
|
650
|
-
kwargs.pop("ignore_pclr_cmap_cdef")
|
|
651
|
-
warnings.warn("Use array-style slicing instead.", DeprecationWarning)
|
|
652
|
-
img = self._read(**kwargs)
|
|
653
|
-
return img
|
|
654
|
-
|
|
655
645
|
def _subsampling_sanity_check(self):
|
|
656
646
|
"""Check for differing subsample factors."""
|
|
657
647
|
if self._decoded_components is None:
|
|
@@ -854,7 +844,7 @@ class Jp2kr(Jp2kBox):
|
|
|
854
844
|
|
|
855
845
|
The only time you should ever use this method is when the image has
|
|
856
846
|
different subsampling factors across components. Otherwise you should
|
|
857
|
-
use
|
|
847
|
+
use numpy-style slicing.
|
|
858
848
|
|
|
859
849
|
Parameters
|
|
860
850
|
----------
|
|
@@ -966,7 +956,7 @@ class Jp2kr(Jp2kBox):
|
|
|
966
956
|
return image
|
|
967
957
|
|
|
968
958
|
def _component2dtype(self, component):
|
|
969
|
-
"""
|
|
959
|
+
"""Determine the appropriate numpy datatype for an OpenJPEG component.
|
|
970
960
|
|
|
971
961
|
Parameters
|
|
972
962
|
----------
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"""
|
|
2
|
+
This module is deprecated. No external use, please.
|
|
3
|
+
"""
|
|
4
|
+
# standard library imports
|
|
5
|
+
import warnings
|
|
6
|
+
|
|
7
|
+
from ._tiff import * # noqa : F401, F403
|
|
8
|
+
|
|
9
|
+
msg = "glymur.lib.tiff is for internal use only. Please do not use it."
|
|
10
|
+
warnings.warn(msg, DeprecationWarning)
|
|
@@ -14,7 +14,7 @@ import numpy as np
|
|
|
14
14
|
from glymur import Jp2k, set_option
|
|
15
15
|
from glymur.core import SRGB
|
|
16
16
|
from ._core_converter import _2JP2Converter
|
|
17
|
-
from .lib import
|
|
17
|
+
from .lib import _tiff as libtiff
|
|
18
18
|
from . import jp2box
|
|
19
19
|
|
|
20
20
|
# we need a lower case mapping from the tag name to the tag number
|
|
@@ -243,7 +243,7 @@ class Tiff2Jp2k(_2JP2Converter):
|
|
|
243
243
|
temp_filename = str(self.jp2_path) + ".tmp"
|
|
244
244
|
self.jp2.wrap(temp_filename, boxes=self.jp2.box)
|
|
245
245
|
shutil.move(temp_filename, self.jp2_path)
|
|
246
|
-
self.jp2.
|
|
246
|
+
self.jp2._parse()
|
|
247
247
|
|
|
248
248
|
def append_extra_jp2_boxes(self):
|
|
249
249
|
"""Copy over the TIFF IFD. Place it in a UUID box. Append to the JPEG
|
|
@@ -33,7 +33,7 @@ class TestSuite(fixtures.TestCommon):
|
|
|
33
33
|
with warnings.catch_warnings():
|
|
34
34
|
# Ignore a library warning.
|
|
35
35
|
warnings.simplefilter("ignore")
|
|
36
|
-
tiledata = j.
|
|
36
|
+
tiledata = j._read(tile=0)
|
|
37
37
|
|
|
38
38
|
with patch("sys.stdout", new=StringIO()) as fake_out:
|
|
39
39
|
glymur.Jp2k(self.temp_j2k_filename, data=tiledata, verbose=True)
|
|
@@ -368,7 +368,7 @@ class TestJp2k(fixtures.TestCommon):
|
|
|
368
368
|
with warnings.catch_warnings():
|
|
369
369
|
# Suppress the DeprecationWarning
|
|
370
370
|
warnings.simplefilter("ignore")
|
|
371
|
-
thumbnail1 = j.
|
|
371
|
+
thumbnail1 = j._read(rlevel=-1)
|
|
372
372
|
thumbnail2 = j[::32, ::32]
|
|
373
373
|
np.testing.assert_array_equal(thumbnail1, thumbnail2)
|
|
374
374
|
self.assertEqual(thumbnail1.shape, (25, 15, 3))
|
|
@@ -975,7 +975,7 @@ class TestVersion(fixtures.TestCommon):
|
|
|
975
975
|
with warnings.catch_warnings():
|
|
976
976
|
# Suppress a deprecation warning for raw read method.
|
|
977
977
|
warnings.simplefilter("ignore")
|
|
978
|
-
glymur.Jp2k(self.jp2file).
|
|
978
|
+
glymur.Jp2k(self.jp2file)._read()
|
|
979
979
|
with self.assertRaises(RuntimeError):
|
|
980
980
|
glymur.Jp2k(self.jp2file)[:]
|
|
981
981
|
|
|
@@ -1546,7 +1546,8 @@ class TestSuite(fixtures.TestCommon):
|
|
|
1546
1546
|
def test_ignore_pclr_cmap_cdef_on_old_read(self):
|
|
1547
1547
|
"""
|
|
1548
1548
|
The old "read" interface allowed for passing ignore_pclr_cmap_cdef
|
|
1549
|
-
to read a palette dataset "uninterpolated"
|
|
1549
|
+
to read a palette dataset "uninterpolated", but we have to
|
|
1550
|
+
use properties now.
|
|
1550
1551
|
"""
|
|
1551
1552
|
jpx = Jp2k(self.jpxfile)
|
|
1552
1553
|
jpx.ignore_pclr_cmap_cdef = True
|
|
@@ -1556,7 +1557,8 @@ class TestSuite(fixtures.TestCommon):
|
|
|
1556
1557
|
with warnings.catch_warnings():
|
|
1557
1558
|
# Ignore a deprecation warning.
|
|
1558
1559
|
warnings.simplefilter('ignore')
|
|
1559
|
-
|
|
1560
|
+
jpx2.ignore_pclr_cmap_cdef = True
|
|
1561
|
+
actual = jpx2._read()
|
|
1560
1562
|
|
|
1561
1563
|
np.testing.assert_array_equal(actual, expected)
|
|
1562
1564
|
|
|
@@ -276,7 +276,7 @@ class TestJp2kr(fixtures.TestCommon):
|
|
|
276
276
|
with warnings.catch_warnings():
|
|
277
277
|
# Suppress the DeprecationWarning
|
|
278
278
|
warnings.simplefilter("ignore")
|
|
279
|
-
thumbnail1 = j.
|
|
279
|
+
thumbnail1 = j._read(rlevel=-1)
|
|
280
280
|
thumbnail2 = j[::32, ::32]
|
|
281
281
|
np.testing.assert_array_equal(thumbnail1, thumbnail2)
|
|
282
282
|
self.assertEqual(thumbnail1.shape, (25, 15, 3))
|
|
@@ -894,7 +894,7 @@ class TestVersion(fixtures.TestCommon):
|
|
|
894
894
|
with warnings.catch_warnings():
|
|
895
895
|
# Suppress a deprecation warning for raw read method.
|
|
896
896
|
warnings.simplefilter("ignore")
|
|
897
|
-
glymur.Jp2kr(self.jp2file).
|
|
897
|
+
glymur.Jp2kr(self.jp2file)._read()
|
|
898
898
|
with self.assertRaises(RuntimeError):
|
|
899
899
|
glymur.Jp2kr(self.jp2file)[:]
|
|
900
900
|
|
|
@@ -1673,16 +1673,17 @@ class TestJp2dump(fixtures.TestCommon):
|
|
|
1673
1673
|
with patch('sys.stdout', new=StringIO()) as fake_out:
|
|
1674
1674
|
print(icpt)
|
|
1675
1675
|
actual = fake_out.getvalue().strip()
|
|
1676
|
-
expected = (
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
|
|
1676
|
+
expected = (
|
|
1677
|
+
"<class 'glymur.lib.openjp2.ImageComptParmType'>:\n"
|
|
1678
|
+
" dx: 0\n"
|
|
1679
|
+
" dy: 0\n"
|
|
1680
|
+
" w: 0\n"
|
|
1681
|
+
" h: 0\n"
|
|
1682
|
+
" x0: 0\n"
|
|
1683
|
+
" y0: 0\n"
|
|
1684
|
+
" prec: 0\n"
|
|
1685
|
+
" bpp: 0\n"
|
|
1686
|
+
" sgnd: 0")
|
|
1686
1687
|
self.assertEqual(actual, expected)
|
|
1687
1688
|
|
|
1688
1689
|
def test_default_image_type(self):
|
|
@@ -1693,14 +1694,16 @@ class TestJp2dump(fixtures.TestCommon):
|
|
|
1693
1694
|
actual = fake_out.getvalue().strip()
|
|
1694
1695
|
|
|
1695
1696
|
expected = (
|
|
1696
|
-
"<class 'glymur
|
|
1697
|
+
"<class 'glymur\\.lib\\.openjp2\\.ImageType'>:\n"
|
|
1697
1698
|
" x0: 0\n"
|
|
1698
1699
|
" y0: 0\n"
|
|
1699
1700
|
" x1: 0\n"
|
|
1700
1701
|
" y1: 0\n"
|
|
1701
1702
|
" numcomps: 0\n"
|
|
1702
1703
|
" color_space: 0\n"
|
|
1703
|
-
" icc_profile_buf:
|
|
1704
|
+
" icc_profile_buf: "
|
|
1705
|
+
"<(glymur\\.lib\\.openjp2|ctypes(\\.wintypes)?)\\.LP_c_ubyte "
|
|
1706
|
+
"object at 0x[0-9A-Fa-f]*>\n"
|
|
1704
1707
|
" icc_profile_len: 0")
|
|
1705
1708
|
self.assertRegex(actual, expected)
|
|
1706
1709
|
|
|
@@ -1709,22 +1712,22 @@ class TestJp2dump(fixtures.TestCommon):
|
|
|
1709
1712
|
obj = opj2.ImageCompType()
|
|
1710
1713
|
actual = str(obj)
|
|
1711
1714
|
expected = (
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
|
|
1715
|
+
"<class 'glymur\\.lib\\.openjp2\\.ImageCompType'>:\n"
|
|
1716
|
+
" dx: 0\n"
|
|
1717
|
+
" dy: 0\n"
|
|
1718
|
+
" w: 0\n"
|
|
1719
|
+
" h: 0\n"
|
|
1720
|
+
" x0: 0\n"
|
|
1721
|
+
" y0: 0\n"
|
|
1722
|
+
" prec: 0\n"
|
|
1723
|
+
" bpp: 0\n"
|
|
1724
|
+
" sgnd: 0\n"
|
|
1725
|
+
" resno_decoded: 0\n"
|
|
1726
|
+
" factor: 0\n"
|
|
1727
|
+
" data: "
|
|
1728
|
+
"<(glymur\\.lib\\.openjp2|ctypes(\\.wintypes)?)\\.LP_c_(int|long) "
|
|
1729
|
+
"object at 0x[a-fA-F0-9]+>\n"
|
|
1730
|
+
" alpha: 0\n"
|
|
1728
1731
|
)
|
|
1729
1732
|
self.assertRegex(actual, expected)
|
|
1730
1733
|
|
|
@@ -601,12 +601,6 @@ class TestSuite(fixtures.TestCommon):
|
|
|
601
601
|
with self.assertWarns(UserWarning):
|
|
602
602
|
glymur.Jp2k(tfile.name)
|
|
603
603
|
|
|
604
|
-
@unittest.skipIf(OPENJPEG_NOT_AVAILABLE, OPENJPEG_NOT_AVAILABLE_MSG)
|
|
605
|
-
def test_warn_if_using_read_method(self):
|
|
606
|
-
"""Should warn if deprecated read method is called"""
|
|
607
|
-
with self.assertWarns(DeprecationWarning):
|
|
608
|
-
Jp2k(self.jp2file).read()
|
|
609
|
-
|
|
610
604
|
def test_bad_rsiz(self):
|
|
611
605
|
"""
|
|
612
606
|
SCENARIO: The SIZ value parsed from the SIZ segment is invalid.
|
|
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
|
{glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/misc/default_compression_parameters_type.txt
RENAMED
|
File without changes
|
{glymur-0.14.1.post1 → glymur-0.14.2}/tests/data/misc/default_progression_order_changes_type.txt
RENAMED
|
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
|