Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-Glymur for openSUSE:Factory 
checked in at 2026-05-15 23:56:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-Glymur (Old)
 and      /work/SRC/openSUSE:Factory/.python-Glymur.new.1966 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-Glymur"

Fri May 15 23:56:29 2026 rev:18 rq:1353412 version:0.14.8

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-Glymur/python-Glymur.changes      
2026-03-16 14:19:50.503543711 +0100
+++ /work/SRC/openSUSE:Factory/.python-Glymur.new.1966/python-Glymur.changes    
2026-05-15 23:58:25.549249898 +0200
@@ -1,0 +2,8 @@
+Fri May 15 09:13:26 UTC 2026 - Marius Grossu <[email protected]>
+
+- update to 0.14.8:
+  * Fix KeyError on JPH image
+- Drop support for Python 3.11: added %global skip_python311 1 in spec file 
+  (bsc#1263906)
+
+-------------------------------------------------------------------

Old:
----
  Glymur-0.14.7.tar.gz

New:
----
  Glymur-0.14.8.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-Glymur.spec ++++++
--- /var/tmp/diff_new_pack.A9E5R3/_old  2026-05-15 23:58:26.177275749 +0200
+++ /var/tmp/diff_new_pack.A9E5R3/_new  2026-05-15 23:58:26.181275915 +0200
@@ -16,8 +16,9 @@
 #
 
 
+%global skip_python311 1
 Name:           python-Glymur
-Version:        0.14.7
+Version:        0.14.8
 Release:        0
 Summary:        Tools for accessing JPEG2000 files
 License:        MIT

++++++ Glymur-0.14.7.tar.gz -> Glymur-0.14.8.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/glymur-0.14.7/.circleci/config.yml 
new/glymur-0.14.8/.circleci/config.yml
--- old/glymur-0.14.7/.circleci/config.yml      2026-02-04 00:44:23.000000000 
+0100
+++ new/glymur-0.14.8/.circleci/config.yml      2026-05-13 22:21:53.000000000 
+0200
@@ -7,7 +7,6 @@
   test:
     jobs:
       - ci-311-np1
-      - ci-311
       - ci-312
       - ci-313
       - ci-314-no-gdal
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/glymur-0.14.7/CHANGES.txt 
new/glymur-0.14.8/CHANGES.txt
--- old/glymur-0.14.7/CHANGES.txt       2026-02-04 00:44:23.000000000 +0100
+++ new/glymur-0.14.8/CHANGES.txt       2026-05-13 22:21:53.000000000 +0200
@@ -1,3 +1,6 @@
+May 13, 2026 - v0.14.8
+    Fix KeyError on JPH image
+    
 Feb 04, 2026 - v0.14.7
     Refactor image dimension validation
     Refactor codestream parsing
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/glymur-0.14.7/appveyor.yml 
new/glymur-0.14.8/appveyor.yml
--- old/glymur-0.14.7/appveyor.yml      2026-02-04 00:44:23.000000000 +0100
+++ new/glymur-0.14.8/appveyor.yml      2026-05-13 22:21:53.000000000 +0200
@@ -13,12 +13,6 @@
   matrix:
 
     - CONDA_ROOT: "C:\\Miniconda3_64"
-      PYTHON_VERSION: "3.11"
-      PYTHON_ARCH: "64"
-      CONDA_PY: "311"
-      USE_PATH_FOR_GDAL_PYTHON: "YES"
-
-    - CONDA_ROOT: "C:\\Miniconda3_64"
       PYTHON_VERSION: "3.12"
       PYTHON_ARCH: "64"
       CONDA_PY: "312"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/glymur-0.14.7/ci/ci-311-np1.yaml 
new/glymur-0.14.8/ci/ci-311-np1.yaml
--- old/glymur-0.14.7/ci/ci-311-np1.yaml        2026-02-04 00:44:23.000000000 
+0100
+++ new/glymur-0.14.8/ci/ci-311-np1.yaml        2026-05-13 22:21:53.000000000 
+0200
@@ -5,6 +5,7 @@
     - python=3.11.*
     - gdal>=3.8.0,<3.9.0
     - pillow
+    - pip
     - libtiff>=4.6.0,<4.7.0
     - lxml>=5.0
     - numpy<2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/glymur-0.14.7/ci/ci-311.yaml 
new/glymur-0.14.8/ci/ci-311.yaml
--- old/glymur-0.14.7/ci/ci-311.yaml    2026-02-04 00:44:23.000000000 +0100
+++ new/glymur-0.14.8/ci/ci-311.yaml    1970-01-01 01:00:00.000000000 +0100
@@ -1,13 +0,0 @@
-name: glymur
-channels:
-    - conda-forge
-dependencies:
-    - python=3.11.*
-    - gdal>=3.8.0,<3.9.0
-    - pillow
-    - libtiff>=4.6.0,<4.7.0
-    - lxml>=5.0
-    - numpy>=2.0,<2.1
-    - openjpeg>=2.5
-    - pytest-xdist
-    - scikit-image
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/glymur-0.14.7/ci/ci-312.yaml 
new/glymur-0.14.8/ci/ci-312.yaml
--- old/glymur-0.14.7/ci/ci-312.yaml    2026-02-04 00:44:23.000000000 +0100
+++ new/glymur-0.14.8/ci/ci-312.yaml    2026-05-13 22:21:53.000000000 +0200
@@ -5,6 +5,7 @@
     - python=3.12.*
     - gdal>=3.8.0,<3.9.0
     - pillow
+    - pip
     - libtiff>=4.7.0,<4.8.0
     - lxml>=5.0.0
     - numpy>=2.0,<2.3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/glymur-0.14.7/ci/ci-313.yaml 
new/glymur-0.14.8/ci/ci-313.yaml
--- old/glymur-0.14.7/ci/ci-313.yaml    2026-02-04 00:44:23.000000000 +0100
+++ new/glymur-0.14.8/ci/ci-313.yaml    2026-05-13 22:21:53.000000000 +0200
@@ -6,6 +6,7 @@
     - gdal>=3.10.0,<3.11.0
     - libgdal-jp2openjpeg
     - pillow
+    - pip
     - libtiff>=4.7.0,<4.8.0
     - lxml>=5.3.0,<6.0.0
     - numpy>=2.3,<2.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/glymur-0.14.7/ci/ci-314-no-gdal.yaml 
new/glymur-0.14.8/ci/ci-314-no-gdal.yaml
--- old/glymur-0.14.7/ci/ci-314-no-gdal.yaml    2026-02-04 00:44:23.000000000 
+0100
+++ new/glymur-0.14.8/ci/ci-314-no-gdal.yaml    2026-05-13 22:21:53.000000000 
+0200
@@ -4,6 +4,7 @@
 dependencies:
     - python>=3.14.0
     - pillow
+    - pip
     - libtiff>=4.7.1
     - lxml>=6.0.2
     - numpy>=2.3.3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/glymur-0.14.7/ci/ci-314-no-opj.yaml 
new/glymur-0.14.8/ci/ci-314-no-opj.yaml
--- old/glymur-0.14.7/ci/ci-314-no-opj.yaml     2026-02-04 00:44:23.000000000 
+0100
+++ new/glymur-0.14.8/ci/ci-314-no-opj.yaml     2026-05-13 22:21:53.000000000 
+0200
@@ -5,6 +5,7 @@
     - python>=3.14.0
     - gdal>=3.11.0
     - pillow
+    - pip
     - libtiff>=4.7.1
     - lxml>=6.0.2
     - numpy>=2.3.3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/glymur-0.14.7/ci/ci-314.yaml 
new/glymur-0.14.8/ci/ci-314.yaml
--- old/glymur-0.14.7/ci/ci-314.yaml    2026-02-04 00:44:23.000000000 +0100
+++ new/glymur-0.14.8/ci/ci-314.yaml    2026-05-13 22:21:53.000000000 +0200
@@ -6,6 +6,7 @@
     - gdal>=3.11.0
     - libgdal-jp2openjpeg
     - pillow
+    - pip
     - libtiff>=4.7.1
     - lxml>=6.0.2
     - numpy>=2.3.3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/glymur-0.14.7/docs/source/conf.py 
new/glymur-0.14.8/docs/source/conf.py
--- old/glymur-0.14.7/docs/source/conf.py       2026-02-04 00:44:23.000000000 
+0100
+++ new/glymur-0.14.8/docs/source/conf.py       2026-05-13 22:21:53.000000000 
+0200
@@ -81,7 +81,7 @@
 # The short X.Y version.
 version = '0.14'
 # The full version, including alpha/beta/rc tags.
-release = '0.14.7'
+release = '0.14.8'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/glymur-0.14.7/docs/source/whatsnew/0.14.rst 
new/glymur-0.14.8/docs/source/whatsnew/0.14.rst
--- old/glymur-0.14.7/docs/source/whatsnew/0.14.rst     2026-02-04 
00:44:23.000000000 +0100
+++ new/glymur-0.14.8/docs/source/whatsnew/0.14.rst     2026-05-13 
22:21:53.000000000 +0200
@@ -3,6 +3,13 @@
 ######################
 
 *****************
+Changes in 0.14.8
+*****************
+
+    * Fix KeyError on JPH image
+    * Remove python 3.11 np2.x from CI testing
+
+*****************
 Changes in 0.14.7
 *****************
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/glymur-0.14.7/glymur/_iccprofile.py 
new/glymur-0.14.8/glymur/_iccprofile.py
--- old/glymur-0.14.7/glymur/_iccprofile.py     2026-02-04 00:44:23.000000000 
+0100
+++ new/glymur-0.14.8/glymur/_iccprofile.py     2026-05-13 22:21:53.000000000 
+0200
@@ -6,6 +6,9 @@
 # Third party library imports ...
 import numpy as np
 
+# Local imports
+from .core import _CustomDict
+
 
 class _ICCProfile(object):
     """Container for ICC profile information."""
@@ -48,12 +51,15 @@
         b"FCLR": "15colour",
     }
 
-    rendering_intent_dict = {
+    _items = {
         0: "perceptual",
         1: "media-relative colorimetric",
         2: "saturation",
         3: "ICC-absolute colorimetric",
     }
+    rendering_intent_dict = _CustomDict(
+        _msg_fmt="Unknown value (%s)", _items=_items
+    )
 
     def __init__(self, read_buffer):
         self._raw_buffer = read_buffer
@@ -106,10 +112,7 @@
         header["Device Attributes"] = attr
 
         (rval,) = struct.unpack(">I", read_buffer[64:68])
-        try:
-            header["Rendering Intent"] = self.rendering_intent_dict[rval]
-        except KeyError:
-            header["Rendering Intent"] = "unknown"
+        header["Rendering Intent"] = self.rendering_intent_dict[rval]
 
         data = struct.unpack(">iii", read_buffer[68:80])
         header["Illuminant"] = np.array(data, dtype=np.float64) / 65536
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/glymur-0.14.7/glymur/codestream.py 
new/glymur-0.14.8/glymur/codestream.py
--- old/glymur-0.14.7/glymur/codestream.py      2026-02-04 00:44:23.000000000 
+0100
+++ new/glymur-0.14.8/glymur/codestream.py      2026-05-13 22:21:53.000000000 
+0200
@@ -21,22 +21,31 @@
     CPRL,
     WAVELET_XFORM_9X7_IRREVERSIBLE,
     WAVELET_XFORM_5X3_REVERSIBLE,
+    _CustomDict
 )
 from .lib import openjp2 as opj2
 
 
-_PROGRESSION_ORDER_DISPLAY = {
+_items = {
     LRCP: "LRCP",
     RLCP: "RLCP",
     RPCL: "RPCL",
     PCRL: "PCRL",
     CPRL: "CPRL",
 }
+_PROGRESSION_ORDER_DISPLAY = _CustomDict(
+    _msg_fmt="unrecognized progression order value (%s)",
+    _items=_items
+)
 
-_WAVELET_XFORM_DISPLAY = {
-    WAVELET_XFORM_9X7_IRREVERSIBLE: "9-7 irreversible",
-    WAVELET_XFORM_5X3_REVERSIBLE: "5-3 reversible",
+_items = {
+    WAVELET_XFORM_9X7_IRREVERSIBLE: '9-7 irreversible',
+    WAVELET_XFORM_5X3_REVERSIBLE: '5-3 reversible'
 }
+_WAVELET_XFORM_DISPLAY = _CustomDict(
+    _msg_fmt="unrecognized wavelet transform value (%s)",
+    _items=_items
+)
 
 _NO_PROFILE = 0
 _PROFILE_0 = 1
@@ -1167,7 +1176,6 @@
         self.offset = offset
         self.mct = mct
         self.cstyle = cstyle
-        self.xform = xform
 
         self.layers = num_layers
         self._numresolutions = nr
@@ -1187,6 +1195,7 @@
         ]:
             msg = f"Invalid wavelet transform in COD segment: {xform}."
             warnings.warn(msg, UserWarning)
+        self.xform = xform
 
         self.code_block_size = 4 * 2**ycb, 4 * 2**xcb
 
@@ -1224,14 +1233,9 @@
         else:
             mct_str = "unknown"
 
-        try:
-            progression_order = _PROGRESSION_ORDER_DISPLAY[self.prog_order]
-        except KeyError:
-            progression_order = f"{self.prog_order} (invalid)"
-        try:
-            xform = _WAVELET_XFORM_DISPLAY[self.xform]
-        except KeyError:
-            xform = f"{self.xform} (invalid)"
+        progression_order = _PROGRESSION_ORDER_DISPLAY[self.prog_order]
+        xform = _WAVELET_XFORM_DISPLAY[self.xform]
+
         msg = msg.format(
             with_without="with" if (self.scod & 1) else "without",
             sop=((self.scod & 2) > 0),
@@ -1412,10 +1416,7 @@
         )
         for j in range(len(self.rspod)):
 
-            try:
-                progorder = _PROGRESSION_ORDER_DISPLAY[self.ppod[j]]
-            except KeyError:
-                progorder = f"invalid value: {self.ppod[j]}"
+            progorder = _PROGRESSION_ORDER_DISPLAY[self.ppod[j]]
 
             msg += submsg.format(
                 j,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/glymur-0.14.7/glymur/core.py 
new/glymur-0.14.8/glymur/core.py
--- old/glymur-0.14.7/glymur/core.py    2026-02-04 00:44:23.000000000 +0100
+++ new/glymur-0.14.8/glymur/core.py    2026-05-13 22:21:53.000000000 +0200
@@ -1,5 +1,24 @@
 """Core definitions to be shared amongst the modules."""
 
+
+class _CustomDict(dict):
+    """
+    Use this instead of a normal dictionary when we need a custom message
+    printed instead of dealing with a KeyError.
+    """
+
+    def __init__(self, *args, _msg_fmt='', _items=None):
+        dict.__init__(self, *args)
+        self._msg_fmt = _msg_fmt
+
+        if _items is not None:
+            for key, value in _items.items():
+                self.__setitem__(key, value)
+
+    def __missing__(self, key):
+        return self._msg_fmt % key
+
+
 # Progression order
 LRCP = 0
 RLCP = 1
@@ -101,7 +120,7 @@
 ROMM_RGB = 21
 
 
-_COLORSPACE_MAP_DISPLAY = {
+_items = {
     CMYK: "CMYK",
     SRGB: "sRGB",
     GREYSCALE: "greyscale",
@@ -109,6 +128,10 @@
     E_SRGB: "e-sRGB",
     ROMM_RGB: "ROMM-RGB",
 }
+_COLORSPACE_MAP_DISPLAY = _CustomDict(
+    _msg_fmt="unrecognized value (%s)",
+    _items=_items
+)
 
 # enumerated color channel types
 COLOR = 0
@@ -117,12 +140,16 @@
 _UNSPECIFIED = 65535
 
 
-_COLOR_TYPE_MAP_DISPLAY = {
+_items = {
     COLOR: "color",
     OPACITY: "opacity",
     PRE_MULTIPLIED_OPACITY: "pre-multiplied opacity",
     _UNSPECIFIED: "unspecified",
 }
+_COLOR_TYPE_MAP_DISPLAY = _CustomDict(
+    _msg_fmt="unrecognized value (%s)",
+    _items=_items
+)
 
 # color channel definitions.
 RED = 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/glymur-0.14.7/glymur/jp2box.py 
new/glymur-0.14.8/glymur/jp2box.py
--- old/glymur-0.14.7/glymur/jp2box.py  2026-02-04 00:44:23.000000000 +0100
+++ new/glymur-0.14.8/glymur/jp2box.py  2026-05-13 22:21:53.000000000 +0200
@@ -50,27 +50,35 @@
     RESTRICTED_ICC_PROFILE,
     ANY_ICC_PROFILE,
     VENDOR_COLOR_METHOD,
+    _CustomDict
 )
 from .lib._tiff import tiff_header, BadTiffTagDatatype
 from . import get_option
 from ._iccprofile import _ICCProfile
 
 
-_COLORSPACE_METHODS = {
+_items = {
     ENUMERATED_COLORSPACE: "enumerated colorspace",
     RESTRICTED_ICC_PROFILE: "restricted ICC profile",
     ANY_ICC_PROFILE: "any ICC profile",
     VENDOR_COLOR_METHOD: "vendor color method",
 }
+_COLORSPACE_METHODS = _CustomDict(
+    _msg_fmt="unrecognized colorspace value (%s)",
+    _items=_items
+)
 
-
-_APPROXIMATION_MEASURES = {
+_items = {
     0: "JP2 only",
     1: "accurately represents correct colorspace definition",
     2: "approximates correct colorspace definition, exceptional quality",
     3: "approximates correct colorspace definition, reasonable quality",
     4: "approximates correct colorspace definition, poor quality",
 }
+_APPROXIMATION_MEASURES = _CustomDict(
+    _msg_fmt="unrecognized approximation measure value (%s)",
+    _items=_items
+)
 
 # Three different UUIDs are given special treatment.
 _GEOTIFF_UUID = UUID("b14bf8bd-083d-4b43-a5ae-8cd7d5a6ce03")
@@ -434,29 +442,19 @@
 
         lst = []
 
-        try:
-            item = _COLORSPACE_METHODS[self.method]
-        except KeyError:
-            item = f"unrecognized value ({self.method})"
-        text = f"Method:  {item}"
-
+        text = f"Method:  {_COLORSPACE_METHODS[self.method]}"
         lst.append(text)
+
         text = f"Precedence:  {self.precedence}"
         lst.append(text)
 
         if self.approximation != 0:
-            try:
-                dispvalue = _APPROXIMATION_MEASURES[self.approximation]
-            except KeyError:
-                dispvalue = f"invalid ({self.approximation})"
+            dispvalue = _APPROXIMATION_MEASURES[self.approximation]
             text = f"Approximation:  {dispvalue}"
             lst.append(text)
 
         if self.colorspace is not None:
-            try:
-                dispvalue = _COLORSPACE_MAP_DISPLAY[self.colorspace]
-            except KeyError:
-                dispvalue = f"{self.colorspace} (unrecognized)"
+            dispvalue = _COLORSPACE_MAP_DISPLAY[self.colorspace]
             text = f"Colorspace:  {dispvalue}"
         else:
             if self.icc_profile is None:
@@ -631,10 +629,7 @@
         for association, channel_type, index in zip(
             self.association, self.channel_type, self.index
         ):
-            try:
-                color_type_string = _COLOR_TYPE_MAP_DISPLAY[channel_type]
-            except KeyError:
-                color_type_string = f"invalid ({channel_type})"
+            color_type_string = _COLOR_TYPE_MAP_DISPLAY[channel_type]
 
             association = str(association) if association else "whole image"
             text = f"Channel {index} ({color_type_string}) ==> ({association})"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/glymur-0.14.7/glymur/tiff.py 
new/glymur-0.14.8/glymur/tiff.py
--- old/glymur-0.14.7/glymur/tiff.py    2026-02-04 00:44:23.000000000 +0100
+++ new/glymur-0.14.8/glymur/tiff.py    2026-05-13 22:21:53.000000000 +0200
@@ -175,8 +175,7 @@
                 try:
                     tag_num = TAGNAME2NUM[tag]
                 except KeyError:
-                    msg = f"{tag} is not a recognized TIFF tag"
-                    warnings.warn(msg)
+                    warnings.warn(f"{tag} is not a recognized TIFF tag")
                 else:
                     lst.append(tag_num)
             else:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/glymur-0.14.7/glymur/version.py 
new/glymur-0.14.8/glymur/version.py
--- old/glymur-0.14.7/glymur/version.py 2026-02-04 00:44:23.000000000 +0100
+++ new/glymur-0.14.8/glymur/version.py 2026-05-13 22:21:53.000000000 +0200
@@ -20,7 +20,7 @@
 
 # Do not change the format of this next line!  Doing so risks breaking
 # setup.py
-version = "0.14.7"
+version = "0.14.8"
 
 version_tuple = parse(version).release
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/glymur-0.14.7/pyproject.toml 
new/glymur-0.14.8/pyproject.toml
--- old/glymur-0.14.7/pyproject.toml    2026-02-04 00:44:23.000000000 +0100
+++ new/glymur-0.14.8/pyproject.toml    2026-05-13 22:21:53.000000000 +0200
@@ -22,7 +22,7 @@
 name = 'Glymur'
 readme = 'README.md'
 requires-python = '>=3.11'
-version = '0.14.7'
+version = '0.14.8'
 
 [project.scripts]
 jp2dump = 'glymur.command_line:main'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/glymur-0.14.7/tests/data/misc/issue186_progression_order.txt 
new/glymur-0.14.8/tests/data/misc/issue186_progression_order.txt
--- old/glymur-0.14.7/tests/data/misc/issue186_progression_order.txt    
2026-02-04 00:44:23.000000000 +0100
+++ new/glymur-0.14.8/tests/data/misc/issue186_progression_order.txt    
2026-05-13 22:21:53.000000000 +0200
@@ -4,7 +4,7 @@
         SOP marker segments:  False
         EPH marker segments:  False
     Coding style parameters:
-        Progression order:  33 (invalid)
+        Progression order:  unrecognized progression order value (33)
         Number of layers:  1
         Multiple component transformation usage:  reversible
         Number of decomposition levels:  5
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/glymur-0.14.7/tests/test_colour_specification_box.py 
new/glymur-0.14.8/tests/test_colour_specification_box.py
--- old/glymur-0.14.7/tests/test_colour_specification_box.py    2026-02-04 
00:44:23.000000000 +0100
+++ new/glymur-0.14.8/tests/test_colour_specification_box.py    2026-05-13 
22:21:53.000000000 +0200
@@ -172,7 +172,9 @@
         self.buffer = self.buffer[:64] + intent + self.buffer[68:]
 
         icc_profile = _ICCProfile(self.buffer)
-        self.assertEqual(icc_profile.header["Rendering Intent"], "unknown")
+        self.assertEqual(
+            icc_profile.header["Rendering Intent"], "Unknown value (10)"
+        )
 
     def test_version4(self):
         """
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/glymur-0.14.7/tests/test_printing.py 
new/glymur-0.14.8/tests/test_printing.py
--- old/glymur-0.14.7/tests/test_printing.py    2026-02-04 00:44:23.000000000 
+0100
+++ new/glymur-0.14.8/tests/test_printing.py    2026-05-13 22:21:53.000000000 
+0200
@@ -18,7 +18,7 @@
 import lxml.etree as ET
 
 import glymur
-from glymur.codestream import LRCP, WAVELET_XFORM_5X3_REVERSIBLE
+from glymur.codestream import LRCP, WAVELET_XFORM_5X3_REVERSIBLE, COCsegment
 from glymur.core import COLOR, RED, GREEN, BLUE, RESTRICTED_ICC_PROFILE
 from glymur.jp2box import BitsPerComponentBox, ColourSpecificationBox
 from glymur.jp2box import LabelBox, UUIDBox
@@ -322,8 +322,9 @@
         expected = ("Colour Specification Box (colr) @ (-1, 0)\n"
                     "    Method:  enumerated colorspace\n"
                     "    Precedence:  2\n"
-                    "    Approximation:  invalid (32)\n"
-                    "    Colorspace:  1 (unrecognized)")
+                    "    Approximation:  "
+                    "unrecognized approximation measure value (32)\n"
+                    "    Colorspace:  unrecognized value (1)")
         self.assertEqual(actual, expected)
 
     def test_invalid_colorspace(self):
@@ -1173,7 +1174,8 @@
             '        Layer index end:  1\n'
             '        Resolution index end:  33\n'
             '        Component index end:  257\n'
-            '        Progression order:  invalid value: 16'
+            '        Progression order:  '
+            'unrecognized progression order value (16)'
         )
 
         self.assertEqual(actual, expected)
@@ -1654,6 +1656,17 @@
         )
         self.assertEqual(actual, expected)
 
+    def test_coc_segment_with_unrecognized_wavelet_transform(self):
+        """
+        Scenario:  Print a COC segment that has an unrecognized wavelet
+        transform.
+
+        Expected Result:  should not error out
+        """
+        spcoc = np.array([129, 6, 1, 72, 2, 45, 45, 45, 45, 61, 77])
+        coc = COCsegment(0, 1, spcoc, -1, -1)
+        str(coc)
+
 
 class TestJp2dump(fixtures.TestCommon):
     """Tests for verifying how jp2dump console script works."""

Reply via email to