HEX
Server: Apache/2.4.46 (Win64) OpenSSL/1.1.1j PHP/8.4.25
System: Windows NT DESKTOP-4TAV2RJ 10.0 build 19045 (Windows 10) AMD64
User: fred (0)
PHP: 8.4.25
Disabled: NONE
Upload Files
File: C:/Users/fred/anaconda3/pkgs/imagecodecs-2023.1.23-py312hd5bf116_1/info/recipe/meta.yaml.template
{% set name = "imagecodecs" %}
{% set version = "2023.1.23" %}

package:
  name: {{ name|lower }}
  version: {{ version }}

source:
  url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz
  sha256: 1b4591839a2f5c90467e50ebe54117cbd9be42c18864abdf85fc7743223ac5b2
  patches:
    - 0001-remove-blosc2-codec.patch
    - 0002-patch-aarch64-s390x-codecs.patch   # [s390x or aarch64]
    # setup.py links jpeg8 against 'jpeg' which is the name for the static build (jpeg.lib)
    # instead it should link against 'libjpeg' which is shared (libjpeg.dll)
    # Note: setup.py has CRLF line endings for this version: this patch file
    #       should have CRLF line endings as well
    - 0003-jpeg8_use_shared_libjpeg.patch     # [win]

build:
  skip: true   # [py<38]
  number: 1
  entry_points:
    - imagecodecs=imagecodecs.__main__:main
  ignore_run_exports:
    - libbrotlicommon
    - brotli
    # jxrlib for win is only built as static
    - jxrlib            # [win]

requirements:
  build:
    - {{ compiler('c') }}
    - {{ compiler('cxx') }}
    - pkg-config
    - patch       # [not win]
    - m2-patch    # [win]
  host:
    - setuptools
    - python
    - pip
    - wheel
    - numpy {{ numpy }}
    - cython 0.29
    - zlib {{ zlib }}
    - bzip2 {{ bzip2 }}
    - xz {{ xz }}
    - zstd 1.5.5
    - lz4-c 1.9.4
    - libpng {{ libpng }}
    - libwebp {{ libwebp }}
    - libwebp-base {{ libwebp }}
    - jxrlib 1.1
    - jpeg {{ jpeg }}
    - giflib {{ giflib }}
    - openjpeg {{ openjpeg }}
    - blosc 1.21.3
    - lcms2 2.12
    - libaec 1.0.4
    - brotli 1.0.9
    - libzopfli 1.0.3
    - charls 2.2.0            # [not s390x]
    - snappy 1.1.9
    - libtiff 4.5.0
    - lerc 3                  # [not s390x]
    - zfp 1.0.0               # [not (s390x or aarch64)]
    - libdeflate 1.17
    - brunsli 0.1             # [not win and not s390x]
    # While jpeg-turbo is the preferred version upstream, the migration
    # to libjpeg-turbo has been contentious on conda-forge
    # - libjpeg-turbo
    - cfitsio 3.470
    - libavif 0.11.1

  run:
    - libdeflate >=1.17,<1.18.0a0
    - python
    # Work around missing `run_exports` in defaults package
    - "{{ pin_compatible('brotli', max_pin='x.x') }}"
    - {{ pin_compatible('numpy') }}

test:
  source_files:
    - tests
  requires:
    - pip
    - pytest
  imports:
    - imagecodecs
    - imagecodecs._imagecodecs
  commands:
    - pip check
    - cd tests
      # TODO: determine why OpenMP on Windows build workers is unreliable
    - set SKIP_OMP=true                # [win]
    # https://github.com/conda-forge/imagecodecs-feedstock/pull/32#issuecomment-863041029

    # disable test_jpeg2k_numthreads on all platform except win: it causes segmentation fault.
    
    # disable test_zfp as they are all failing on osx-64
    - pytest -vv test_imagecodecs.py -k "not (test_jpeg_rgb_mode or test_jpeg2k_numthreads or test_image_roundtrips[jpeg2k-uint16-rgb-out-bytearray-None] or test_zfp)"  # [osx and x86_64]
    
    - pytest -vv test_imagecodecs.py -k "not (test_jpeg_rgb_mode or test_jpeg2k_numthreads or test_image_roundtrips[jpeg2k-uint16-gray or test_image_roundtrips[jpeg2k-uint16-graya or test_image_roundtrips[jpeg2k-uint16-rgba or test_image_roundtrips[jpeg2k-uint16-rgb)"  # [osx and arm64]
    - pytest -vv test_imagecodecs.py -k "not (test_jpeg_rgb_mode or test_jpeg2k_numthreads or test_image_roundtrips[jpeg2k-uint16-rgb-out-bytearray-None)"  # [linux and not s390x]
    - pytest -vv test_imagecodecs.py -k "not (test_jpeg2k_numthreads or test_packints_decode or test_floatpred or test_float24 or test_jpegsof3 or test_image_roundtrip or test_spng_encode or test_ljpeg or test_jpeg_rgb_mode or test_cms_format)"  # [s390x]

    - pytest -vv test_imagecodecs.py -k "not (test_cms_profile or test_jpeg_rgb_mode)"  # [win]

    # CAPTURING FAILING S390x tests to be reviewed later (These tests are failing most likely from an upstream Endianess issue)
    # These may be fixed with future versions but needs to be checked.
    # - pytest -vv test_imagecodecs.py -k "test_jpeg2k_numthreads and test_packints_decode and test_floatpred and test_float24 and test_jpegsof3 and test_image_roundtrips and test_spng_encode and test_ljpeg and test_jpeg_rgb_mode and test_cms_format" || true  # [s390x]

about:
  home: https://www.cgohlke.com
  license: BSD-3-Clause
  license_family: BSD
  license_file:
    - LICENSE
    - 3rdparty/liblzf/LICENSE
    - 3rdparty/bitshuffle/LICENSE
    - 3rdparty/openjpeg/LICENSE
  summary: Image transformation, compression, and decompression codecs
  description: |
    The imagecodecs package provides various block-oriented, in-memory buffer
    transformation, compression, and decompression functions for use in the
    tifffile, czifile, and other Python imaging modules.

    Decode and/or encode functions are currently implemented for Zlib DEFLATE,
    ZStandard, Blosc, LZMA, BZ2, LZ4, LZW, LZF, PNG, WebP, JPEG 8-bit,
    JPEG 12-bit, JPEG SOF=0xC3, JPEG 2000, JPEG XR, PackBits, Packed Integers,
    Delta, XOR Delta, Floating Point Predictor, and Bitorder reversal.

  doc_url: https://www.cgohlke.com
  dev_url: https://github.com/cgohlke/imagecodecs

extra:
  recipe-maintainers:
    - csachs
    - hmaarrfk
    - sdvillal