<pre style='margin:0'>
Marius Schamschula (Schamschula) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/a7c3f012de7323e0f7c25c6dd1dd14cd82134b1b">https://github.com/macports/macports-ports/commit/a7c3f012de7323e0f7c25c6dd1dd14cd82134b1b</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new a7c3f012de7 py-imagecodecs: update to 2023.3.16 w/o jpeg 12, 16 and lossless code
</span>a7c3f012de7 is described below
<span style='display:block; white-space:pre;color:#808000;'>commit a7c3f012de7323e0f7c25c6dd1dd14cd82134b1b
</span>Author: Marius Schamschula <mschamschula@gmail.com>
AuthorDate: Sat Apr 29 16:30:36 2023 -0500
<span style='display:block; white-space:pre;color:#404040;'> py-imagecodecs: update to 2023.3.16 w/o jpeg 12, 16 and lossless code
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> re-enable py-cython-devel support
</span><span style='display:block; white-space:pre;color:#404040;'> revision bump due to changed dependencies and features
</span>---
python/py-imagecodecs/Portfile | 18 ++-
.../files/patch-imagecodecs-_jpeg8.pyx.diff | 156 +++++++++++++++++++++
2 files changed, 168 insertions(+), 6 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-imagecodecs/Portfile b/python/py-imagecodecs/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 5b49556818a..001f69b79b5 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/python/py-imagecodecs/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-imagecodecs/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4,8 +4,8 @@ PortSystem 1.0
</span> PortGroup python 1.0
name py-imagecodecs
<span style='display:block; white-space:pre;background:#ffe0e0;'>-version 2023.1.23
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-revision 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version 2023.3.16
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 1
</span> epoch 1
categories-append graphics
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -17,9 +17,9 @@ long_description {*}${description}
</span>
homepage https://www.lfd.uci.edu/~gohlke/
<span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums rmd160 d07a3f16508e370ba3e04621994360b31e72f25c \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sha256 1b4591839a2f5c90467e50ebe54117cbd9be42c18864abdf85fc7743223ac5b2 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- size 14814693
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums rmd160 d6aa717b57501152a1d196429cea922da753ac43 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 e39c2a63f7f5b9bee0ba4961db8c1e7f2518ce07d2fd10a56624d17f1407efc1 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 22452941
</span>
python.versions 37 38 39 310 311
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -33,7 +33,7 @@ if {${os.platform} eq "darwin" && ${os.major} < 17} {
</span>
if {${name} ne ${subport}} {
depends_build-append \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- port:py${python.version}-cython \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ path:bin/cython-${python.branch}:py${python.version}-cython \
</span> port:py${python.version}-setuptools
depends_lib-append \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -56,6 +56,12 @@ if {${name} ne ${subport}} {
</span> port:zopfli \
port:zstd
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ # disable 12-bit, 16-bit, and lossless code paths ( only)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # remove when libjpeg-turbo 3 is out of beta
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # see: https://github.com/conda-forge/imagecodecs-feedstock/pull/79#issuecomment-1492667986
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # see: https://github.com/macports/macports-ports/commit/d3ad9afba4a88e09ed128dc87ccb401e64bc665b
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles patch-imagecodecs-_jpeg8.pyx.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> post-patch {
reinplace "s|%PREFIX%|${prefix}|g" \
${worksrcpath}/setup.py
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-imagecodecs/files/patch-imagecodecs-_jpeg8.pyx.diff b/python/py-imagecodecs/files/patch-imagecodecs-_jpeg8.pyx.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..3852cddbfd3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-imagecodecs/files/patch-imagecodecs-_jpeg8.pyx.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,156 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- imagecodecs/_jpeg8.pyx.orig 2023-03-16 19:37:17.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ imagecodecs/_jpeg8.pyx 2023-04-29 16:11:14.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -124,8 +124,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ my_error_mgr err
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ jpeg_compress_struct cinfo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ JSAMPROW rowpointer8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- J12SAMPROW rowpointer12
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- J16SAMPROW rowpointer16
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ J_COLOR_SPACE in_color_space = JCS_UNKNOWN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ J_COLOR_SPACE jpeg_color_space = JCS_UNKNOWN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unsigned long outsize = 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -139,7 +137,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int predictor_selection_value = 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if not (
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (src.dtype == numpy.uint8 or src.dtype == numpy.uint16)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ src.dtype == numpy.uint8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ and src.ndim in (2, 3)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # src.nbytes < 2 ** 31 and # limit to 2 GB
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ and samples in (1, 3, 4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -148,21 +146,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ raise ValueError('invalid data shape, strides, or dtype')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if lossless:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- predictor_selection_value = 1 if predictor is None else predictor
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if bitspersample is not None:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- bitspersample not in (8, 12, 16)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- or src.itemsize == 1 and bitspersample > 8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- raise ValueError(f'invalid bitspersample {bitspersample}')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- data_precision = bitspersample
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # if validate and bitspersample == 12 and not _check_range(src):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # # values larger than 12-bit cause segfault
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # raise ValueError('all data values must be < 4096')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if colorspace is not None:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ in_color_space = _jcs_colorspace(colorspace)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if samples not in _jcs_colorspace_samples(in_color_space):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -235,7 +218,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cinfo.image_height = <JDIMENSION> src.shape[0]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cinfo.image_width = <JDIMENSION> src.shape[1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cinfo.input_components = samples
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- cinfo.data_precision = data_precision
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if in_color_space != JCS_UNKNOWN:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cinfo.in_color_space = in_color_space
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -246,43 +228,27 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ jpeg_mem_dest(&cinfo, &outbuffer, &outsize) # must call after defaults
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ jpeg_set_quality(&cinfo, quality, 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if predictor_selection_value > 0:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- jpeg_enable_lossless(&cinfo, predictor_selection_value, 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if smoothing_factor >= 0:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- cinfo.smoothing_factor = smoothing_factor
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if optimize_coding >= 0:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- cinfo.optimize_coding = <boolean> optimize_coding
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if h_samp_factor != 0:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- cinfo.comp_info[0].h_samp_factor = h_samp_factor
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- cinfo.comp_info[0].v_samp_factor = v_samp_factor
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- cinfo.comp_info[1].h_samp_factor = 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- cinfo.comp_info[1].v_samp_factor = 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- cinfo.comp_info[2].h_samp_factor = 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- cinfo.comp_info[2].v_samp_factor = 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if smoothing_factor >= 0:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ cinfo.smoothing_factor = smoothing_factor
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if optimize_coding >= 0:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ cinfo.optimize_coding = <boolean> optimize_coding
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if h_samp_factor != 0:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ cinfo.comp_info[0].h_samp_factor = h_samp_factor
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ cinfo.comp_info[0].v_samp_factor = v_samp_factor
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ cinfo.comp_info[1].h_samp_factor = 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ cinfo.comp_info[1].v_samp_factor = 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ cinfo.comp_info[2].h_samp_factor = 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ cinfo.comp_info[2].v_samp_factor = 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # TODO: add option to use or return JPEG tables
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ jpeg_start_compress(&cinfo, 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if cinfo.data_precision == 8:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- while cinfo.next_scanline < cinfo.image_height:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- rowpointer8 = <JSAMPROW> (
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- <char*> src.data + cinfo.next_scanline * rowstride
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- jpeg_write_scanlines(&cinfo, &rowpointer8, 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- elif cinfo.data_precision == 12:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- while cinfo.next_scanline < cinfo.image_height:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- rowpointer12 = <J12SAMPROW> (
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- <char*> src.data + cinfo.next_scanline * rowstride
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- jpeg12_write_scanlines(&cinfo, &rowpointer12, 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- elif cinfo.data_precision == 16:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- while cinfo.next_scanline < cinfo.image_height:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- rowpointer16 = <J16SAMPROW> (
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- <char*> src.data + cinfo.next_scanline * rowstride
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- jpeg16_write_scanlines(&cinfo, &rowpointer16, 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ while cinfo.next_scanline < cinfo.image_height:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ rowpointer8 = <JSAMPROW> (
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ <char*> src.data + cinfo.next_scanline * rowstride
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ jpeg_write_scanlines(&cinfo, &rowpointer8, 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ jpeg_finish_compress(&cinfo)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ jpeg_destroy_compress(&cinfo)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -320,8 +286,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ my_error_mgr err
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ jpeg_decompress_struct cinfo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ JSAMPROW rowpointer8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- J12SAMPROW rowpointer12
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- J16SAMPROW rowpointer16
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ J_COLOR_SPACE jpeg_color_space
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ J_COLOR_SPACE out_color_space
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ JDIMENSION width = 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -398,31 +362,16 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # TODO: allow strides
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if cinfo.data_precision <= 8:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- out = _create_array(out, shape, numpy.uint8)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- out = _create_array(out, shape, numpy.uint16)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ out = _create_array(out, shape, numpy.uint8)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ dst = out
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ dstsize = dst.nbytes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rowstride = dst.strides[0] // dst.itemsize
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ memset(<void*> dst.data, 0, dstsize)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if cinfo.data_precision <= 8:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- rowpointer8 = <JSAMPROW> dst.data
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- while cinfo.output_scanline < cinfo.output_height:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- jpeg_read_scanlines(&cinfo, &rowpointer8, 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- rowpointer8 += rowstride
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- elif cinfo.data_precision == 12:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- rowpointer12 = <J12SAMPROW> dst.data
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- while cinfo.output_scanline < cinfo.output_height:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- jpeg12_read_scanlines(&cinfo, &rowpointer12, 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- rowpointer12 += rowstride
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # elif cinfo.data_precision == 16:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- rowpointer16 = <J16SAMPROW> dst.data
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- while cinfo.output_scanline < cinfo.output_height:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- jpeg16_read_scanlines(&cinfo, &rowpointer16, 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- rowpointer16 += rowstride
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ rowpointer8 = <JSAMPROW> dst.data
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ while cinfo.output_scanline < cinfo.output_height:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ jpeg_read_scanlines(&cinfo, &rowpointer8, 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ rowpointer8 += rowstride
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ jpeg_finish_decompress(&cinfo)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ jpeg_destroy_decompress(&cinfo)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span></pre><pre style='margin:0'>
</pre>