Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-czifile for openSUSE:Factory checked in at 2025-05-05 22:29:39 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-czifile (Old) and /work/SRC/openSUSE:Factory/.python-czifile.new.30101 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-czifile" Mon May 5 22:29:39 2025 rev:4 rq:1274605 version:2019.7.2.1 Changes: -------- --- /work/SRC/openSUSE:Factory/python-czifile/python-czifile.changes 2024-07-18 19:16:07.642603233 +0200 +++ /work/SRC/openSUSE:Factory/.python-czifile.new.30101/python-czifile.changes 2025-05-05 22:59:17.139758879 +0200 @@ -1,0 +2,9 @@ +Mon Apr 28 13:43:14 UTC 2025 - Dirk Müller <dmuel...@suse.com> + +- update to 2019.7.2.1: + * Czifile is a Python library to read Carl Zeiss Image (CZI) + files, the native file format of the ZEN software by Carl + Zeiss Microscopy GmbH. CZI files contain multidimensional + images and metadata from microscopy experiments. + +------------------------------------------------------------------- Old: ---- czifile-2019.7.2.tar.gz New: ---- czifile-2019.7.2.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-czifile.spec ++++++ --- /var/tmp/diff_new_pack.4ZFvzw/_old 2025-05-05 22:59:17.591777884 +0200 +++ /var/tmp/diff_new_pack.4ZFvzw/_new 2025-05-05 22:59:17.591777884 +0200 @@ -1,7 +1,7 @@ # # spec file for package python-czifile # -# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2025 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,7 +18,7 @@ %define packagename czifile Name: python-czifile -Version: 2019.7.2 +Version: 2019.7.2.1 Release: 0 Summary: Read Carl Zeiss(r) Image (CZI) files License: BSD-3-Clause @@ -35,9 +35,9 @@ BuildRequires: fdupes BuildRequires: python-rpm-macros Requires: python-imagecodecs >= 2019.1.1 +Requires: python-numpy >= 1.11.3 Requires: python-scipy >= 1.1 Requires: python-tifffile >= 2019.7.2 -Requires: python-numpy >= 1.11.3 Requires(post): update-alternatives Requires(postun): update-alternatives BuildArch: noarch ++++++ czifile-2019.7.2.tar.gz -> czifile-2019.7.2.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/czifile-2019.7.2/.gitignore new/czifile-2019.7.2.1/.gitignore --- old/czifile-2019.7.2/.gitignore 2019-07-03 17:44:04.000000000 +0200 +++ new/czifile-2019.7.2.1/.gitignore 2025-02-19 01:08:23.000000000 +0100 @@ -32,6 +32,7 @@ MANIFEST setup.cfg PKG-INFO +mypy.ini # PyInstaller # Usually these files are written by a python script from a template @@ -56,6 +57,7 @@ *.py,cover .hypothesis/ .pytest_cache/ +cover/ # Translations *.mo @@ -78,6 +80,7 @@ docs/_build/ # PyBuilder +.pybuilder/ target/ # Jupyter Notebook @@ -88,6 +91,8 @@ ipython_config.py # pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: .python-version # pipenv @@ -97,8 +102,35 @@ # install all needed dependencies. #Pipfile.lock -# celery beat schedule file +# UV +# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +uv.lock + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +#poetry.lock + +# pdm +# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. +#pdm.lock +# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it +# in version control. +# https://pdm.fming.dev/latest/usage/project/#working-with-version-control +.pdm.toml +.pdm-python +.pdm-build/ + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm +__pypackages__/ + +# Celery stuff celerybeat-schedule +celerybeat.pid # SageMath parsed files *.sage.py @@ -129,3 +161,19 @@ # Pyre type checker .pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# PyCharm +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +#.idea/ + +# PyPI configuration file +.pypirc diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/czifile-2019.7.2/LICENSE new/czifile-2019.7.2.1/LICENSE --- old/czifile-2019.7.2/LICENSE 2019-07-03 17:44:04.000000000 +0200 +++ new/czifile-2019.7.2.1/LICENSE 2025-02-19 01:08:23.000000000 +0100 @@ -1,21 +1,19 @@ -Copyright (c) 2013-2019, Christoph Gohlke -Copyright (c) 2013-2019, The Regents of the University of California -Produced at the Laboratory for Fluorescence Dynamics. +Copyright (c) 2013-2025, Christoph Gohlke All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: -* Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. +1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. -* Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/czifile-2019.7.2/README.rst new/czifile-2019.7.2.1/README.rst --- old/czifile-2019.7.2/README.rst 2019-07-03 17:44:04.000000000 +0200 +++ new/czifile-2019.7.2.1/README.rst 2025-02-19 01:08:23.000000000 +0100 @@ -1,75 +1,99 @@ -Read Carl Zeiss(r) Image (CZI) files -==================================== +Read Carl Zeiss Image (CZI) files +================================= Czifile is a Python library to read Carl Zeiss Image (CZI) files, the native -file format of the ZEN(r) software by Carl Zeiss Microscopy GmbH. CZI files +file format of the ZEN software by Carl Zeiss Microscopy GmbH. CZI files contain multidimensional images and metadata from microscopy experiments. -:Author: - `Christoph Gohlke <https://www.lfd.uci.edu/~gohlke/>`_ - -:Organization: - Laboratory for Fluorescence Dynamics. University of California, Irvine - -:License: 3-clause BSD - -:Version: 2019.7.2 +:Author: `Christoph Gohlke <https://www.cgohlke.com>`_ +:License: BSD 3-Clause +:Version: 2019.7.2.1 Requirements ------------ -* `CPython 2.7 or 3.5+ <https://www.python.org>`_ -* `Numpy 1.14 <https://www.numpy.org>`_ -* `Tifffile 2019.7.2 <https://pypi.org/project/tifffile/>`_ -* `Imagecodecs 2019.5.22 <https://pypi.org/project/imagecodecs/>`_ +- `CPython 2.7 or 3.5+ <https://www.python.org>`_ +- `Numpy 1.14 <https://www.numpy.org>`_ +- `Tifffile 2019.7.2 <https://pypi.org/project/tifffile/>`_ +- `Imagecodecs 2019.5.22 <https://pypi.org/project/imagecodecs/>`_ (optional; used for decoding LZW, JPEG, and JPEG XR) Revisions --------- +2019.7.2.1 + +- Fix broken and deprecated imports. +- Update copyright and package metadata. + 2019.7.2 - Require tifffile 2019.7.2. + +- Require tifffile 2019.7.2. + 2019.6.18 - Add package main function to view CZI files. - Fix BGR to RGB conversion. - Fix czi2tif conversion on Python 2. + +- Add package main function to view CZI files. +- Fix BGR to RGB conversion. +- Fix czi2tif conversion on Python 2. + 2019.5.22 - Fix czi2tif conversion when CZI metadata contain non-ASCII characters. - Use imagecodecs_lite as a fallback for imagecodecs. - Make CziFile.metadata a function (breaking). - Make scipy an optional dependency; fallback on ndimage or fail on zoom(). + +- Fix czi2tif conversion when CZI metadata contain non-ASCII characters. +- Use imagecodecs_lite as a fallback for imagecodecs. +- Make CziFile.metadata a function (breaking). +- Make scipy an optional dependency; fallback on ndimage or fail on zoom(). + 2019.1.26 - Fix czi2tif console script. - Update copyright year. + +- Fix czi2tif console script. +- Update copyright year. + 2018.10.18 - Rename zisraw package to czifile. + +- Rename zisraw package to czifile. + 2018.8.29 - Move czifile.py and related modules into zisraw package. - Move usage examples to main docstring. - Require imagecodecs package for decoding JpegXrFile, JpgFile, and LZW. + +- Move czifile.py and related modules into zisraw package. +- Move usage examples to main docstring. +- Require imagecodecs package for decoding JpegXrFile, JpgFile, and LZW. + 2018.6.18 - Save CZI metadata to TIFF description in czi2tif. - Fix AttributeError using max_workers=1. - Make Segment.SID and DimensionEntryDV1.dimension str types. - Return metadata as XML unicode string or dict, not etree. - Return timestamps, focus positions, events, and luts as tuple or ndarray + +- Save CZI metadata to TIFF description in czi2tif. +- Fix AttributeError using max_workers=1. +- Make Segment.SID and DimensionEntryDV1.dimension str types. +- Return metadata as XML unicode string or dict, not etree. +- Return timestamps, focus positions, events, and luts as tuple or ndarray + 2017.7.21 - Use multi-threading in CziFile.asarray to decode and copy segment data. - Always convert BGR to RGB. Remove bgr2rgb options. - Decode JpegXR directly from byte arrays. + +- Use multi-threading in CziFile.asarray to decode and copy segment data. +- Always convert BGR to RGB. Remove bgr2rgb options. +- Decode JpegXR directly from byte arrays. + 2017.7.13 - Add function to convert CZI file to memory-mappable TIFF file. + +- Add function to convert CZI file to memory-mappable TIFF file. + 2017.7.11 - Add 'out' parameter to CziFile.asarray. - Remove memmap option from CziFile.asarray (breaking). - Change spline interpolation order to 0 (breaking). - Make axes return a string. - Require tifffile 2017.7.11. + +- Add 'out' parameter to CziFile.asarray. +- Remove memmap option from CziFile.asarray (breaking). +- Change spline interpolation order to 0 (breaking). +- Make axes return a string. +- Require tifffile 2017.7.11. + 2014.10.10 - Read data into a memory mapped array (optional). + +- Read data into a memory mapped array (optional). + 2013.12.4 - Decode JpegXrFile and JpgFile via _czifle extension module. - Attempt to reconstruct tiled mosaic images. + +- Decode JpegXrFile and JpgFile via _czifle extension module. +- Attempt to reconstruct tiled mosaic images. + 2013.11.20 - Initial release. + +- Initial release. Notes ----- @@ -94,9 +118,9 @@ Other libraries for reading CZI files (all GPL licensed): -* `libCZI <https://github.com/zeiss-microscopy/libCZI>`_ -* `Python-bioformats <https://github.com/CellProfiler/python-bioformats>`_ -* `Pylibczi <https://github.com/elhuhdron/pylibczi>`_ +- `libCZI <https://github.com/zeiss-microscopy/libCZI>`_ +- `Python-bioformats <https://github.com/CellProfiler/python-bioformats>`_ +- `Pylibczi <https://github.com/elhuhdron/pylibczi>`_ References ---------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/czifile-2019.7.2/czifile/czifile.py new/czifile-2019.7.2.1/czifile/czifile.py --- old/czifile-2019.7.2/czifile/czifile.py 2019-07-03 17:44:04.000000000 +0200 +++ new/czifile-2019.7.2.1/czifile/czifile.py 2025-02-19 01:08:23.000000000 +0100 @@ -1,24 +1,22 @@ # -*- coding: utf-8 -*- # czifile.py -# Copyright (c) 2013-2019, Christoph Gohlke -# Copyright (c) 2013-2019, The Regents of the University of California -# Produced at the Laboratory for Fluorescence Dynamics. +# Copyright (c) 2013-2025, Christoph Gohlke # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # -# * Redistributions of source code must retain the above copyright notice, -# this list of conditions and the following disclaimer. +# 1. Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. # -# * Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the following disclaimer in the documentation -# and/or other materials provided with the distribution. +# 2. Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. # -# * Neither the name of the copyright holder nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. +# 3. Neither the name of the copyright holder nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE @@ -32,77 +30,101 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. -"""Read Carl Zeiss(r) Image (CZI) files. +"""Read Carl Zeiss Image (CZI) files. Czifile is a Python library to read Carl Zeiss Image (CZI) files, the native -file format of the ZEN(r) software by Carl Zeiss Microscopy GmbH. CZI files +file format of the ZEN software by Carl Zeiss Microscopy GmbH. CZI files contain multidimensional images and metadata from microscopy experiments. -:Author: - `Christoph Gohlke <https://www.lfd.uci.edu/~gohlke/>`_ - -:Organization: - Laboratory for Fluorescence Dynamics. University of California, Irvine - -:License: 3-clause BSD - -:Version: 2019.7.2 +:Author: `Christoph Gohlke <https://www.cgohlke.com>`_ +:License: BSD 3-Clause +:Version: 2019.7.2.1 Requirements ------------ -* `CPython 2.7 or 3.5+ <https://www.python.org>`_ -* `Numpy 1.14 <https://www.numpy.org>`_ -* `Tifffile 2019.7.2 <https://pypi.org/project/tifffile/>`_ -* `Imagecodecs 2019.5.22 <https://pypi.org/project/imagecodecs/>`_ +- `CPython 2.7 or 3.5+ <https://www.python.org>`_ +- `Numpy 1.14 <https://www.numpy.org>`_ +- `Tifffile 2019.7.2 <https://pypi.org/project/tifffile/>`_ +- `Imagecodecs 2019.5.22 <https://pypi.org/project/imagecodecs/>`_ (optional; used for decoding LZW, JPEG, and JPEG XR) Revisions --------- +2019.7.2.1 + +- Fix broken and deprecated imports. +- Update copyright and package metadata. + 2019.7.2 - Require tifffile 2019.7.2. + +- Require tifffile 2019.7.2. + 2019.6.18 - Add package main function to view CZI files. - Fix BGR to RGB conversion. - Fix czi2tif conversion on Python 2. + +- Add package main function to view CZI files. +- Fix BGR to RGB conversion. +- Fix czi2tif conversion on Python 2. + 2019.5.22 - Fix czi2tif conversion when CZI metadata contain non-ASCII characters. - Use imagecodecs_lite as a fallback for imagecodecs. - Make CziFile.metadata a function (breaking). - Make scipy an optional dependency; fallback on ndimage or fail on zoom(). + +- Fix czi2tif conversion when CZI metadata contain non-ASCII characters. +- Use imagecodecs_lite as a fallback for imagecodecs. +- Make CziFile.metadata a function (breaking). +- Make scipy an optional dependency; fallback on ndimage or fail on zoom(). + 2019.1.26 - Fix czi2tif console script. - Update copyright year. + +- Fix czi2tif console script. +- Update copyright year. + 2018.10.18 - Rename zisraw package to czifile. + +- Rename zisraw package to czifile. + 2018.8.29 - Move czifile.py and related modules into zisraw package. - Move usage examples to main docstring. - Require imagecodecs package for decoding JpegXrFile, JpgFile, and LZW. + +- Move czifile.py and related modules into zisraw package. +- Move usage examples to main docstring. +- Require imagecodecs package for decoding JpegXrFile, JpgFile, and LZW. + 2018.6.18 - Save CZI metadata to TIFF description in czi2tif. - Fix AttributeError using max_workers=1. - Make Segment.SID and DimensionEntryDV1.dimension str types. - Return metadata as XML unicode string or dict, not etree. - Return timestamps, focus positions, events, and luts as tuple or ndarray + +- Save CZI metadata to TIFF description in czi2tif. +- Fix AttributeError using max_workers=1. +- Make Segment.SID and DimensionEntryDV1.dimension str types. +- Return metadata as XML unicode string or dict, not etree. +- Return timestamps, focus positions, events, and luts as tuple or ndarray + 2017.7.21 - Use multi-threading in CziFile.asarray to decode and copy segment data. - Always convert BGR to RGB. Remove bgr2rgb options. - Decode JpegXR directly from byte arrays. + +- Use multi-threading in CziFile.asarray to decode and copy segment data. +- Always convert BGR to RGB. Remove bgr2rgb options. +- Decode JpegXR directly from byte arrays. + 2017.7.13 - Add function to convert CZI file to memory-mappable TIFF file. + +- Add function to convert CZI file to memory-mappable TIFF file. + 2017.7.11 - Add 'out' parameter to CziFile.asarray. - Remove memmap option from CziFile.asarray (breaking). - Change spline interpolation order to 0 (breaking). - Make axes return a string. - Require tifffile 2017.7.11. + +- Add 'out' parameter to CziFile.asarray. +- Remove memmap option from CziFile.asarray (breaking). +- Change spline interpolation order to 0 (breaking). +- Make axes return a string. +- Require tifffile 2017.7.11. + 2014.10.10 - Read data into a memory mapped array (optional). + +- Read data into a memory mapped array (optional). + 2013.12.4 - Decode JpegXrFile and JpgFile via _czifle extension module. - Attempt to reconstruct tiled mosaic images. + +- Decode JpegXrFile and JpgFile via _czifle extension module. +- Attempt to reconstruct tiled mosaic images. + 2013.11.20 - Initial release. + +- Initial release. Notes ----- @@ -127,9 +149,9 @@ Other libraries for reading CZI files (all GPL licensed): -* `libCZI <https://github.com/zeiss-microscopy/libCZI>`_ -* `Python-bioformats <https://github.com/CellProfiler/python-bioformats>`_ -* `Pylibczi <https://github.com/elhuhdron/pylibczi>`_ +- `libCZI <https://github.com/zeiss-microscopy/libCZI>`_ +- `Python-bioformats <https://github.com/CellProfiler/python-bioformats>`_ +- `Pylibczi <https://github.com/elhuhdron/pylibczi>`_ References ---------- @@ -154,9 +176,10 @@ from __future__ import division, print_function -__version__ = '2019.7.2' +__version__ = '2019.7.2.1' __docformat__ = 'restructuredtext en' __all__ = ( + '__version__', 'imread', 'CziFile', 'czi2tif', @@ -190,7 +213,7 @@ try: # TODO: use zoom fom imagecodecs implementation when available - from scipy.ndimage.interpolation import zoom + from scipy.ndimage import zoom except ImportError: try: from ndimage.interpolation import zoom @@ -206,8 +229,8 @@ imagecodecs = None from tifffile import ( - FileHandle, memmap, lazyattr, repeat_nd, product, stripnull, format_size, - squeeze_axes, create_output, xml2dict, pformat, imshow, askopenfilename, + FileHandle, memmap, repeat_nd, product, stripnull, format_size, + create_output, xml2dict, pformat, imshow, askopenfilename, nullfunc, Timer) @@ -222,6 +245,32 @@ return result +class lazyattr(object): + """Attribute whose value is computed on first access.""" + + # TODO: help() doesn't work + __slots__ = ('func',) + + def __init__(self, func): + self.func = func + # self.__name__ = func.__name__ + # self.__doc__ = func.__doc__ + # self.lock = threading.RLock() + + def __get__(self, instance, owner): + # with self.lock: + if instance is None: + return self + try: + value = self.func(instance) + except AttributeError as exc: + raise RuntimeError(exc) + if value is NotImplemented: + return getattr(super(owner, instance), self.func.__name__) + setattr(instance, self.func.__name__, value) + return value + + class CziFile(object): """Read Carl Zeiss Image (CZI) file. @@ -1231,6 +1280,24 @@ DECOMPRESS[4] = imagecodecs.jxr_decode +def squeeze_axes(shape, axes, skip=None): + """Return shape and axes with single-dimensional entries removed. + + Remove unused dimensions unless their axes are listed in 'skip'. + + >>> squeeze_axes((5, 1, 2, 1, 1), 'TZYXC') + ((5, 2, 1), 'TYX') + + """ + if len(shape) != len(axes): + raise ValueError('dimensions of axes and shape do not match') + if skip is None: + skip = 'XY' + shape, axes = zip(*(i for i in zip(shape, axes) + if i[0] > 1 or i[1] in skip)) + return tuple(shape), ''.join(axes) + + def czi2tif(czifile, tiffile=None, squeeze=True, verbose=True, **kwargs): """Convert CZI file to memory-mappable TIFF file. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/czifile-2019.7.2/setup.py new/czifile-2019.7.2.1/setup.py --- old/czifile-2019.7.2/setup.py 2019-07-03 17:44:04.000000000 +0200 +++ new/czifile-2019.7.2.1/setup.py 2025-02-19 01:08:23.000000000 +0100 @@ -41,9 +41,15 @@ version=version, description=description, long_description=readme, + long_description_content_type='text/x-rst', author='Christoph Gohlke', - author_email='cgoh...@uci.edu', - url='https://www.lfd.uci.edu/~gohlke/', + author_email='cgoh...@cgohlke.com', + url='https://www.cgohlke.com', + project_urls={ + 'Bug Tracker': 'https://github.com/cgohlke/czifile/issues', + 'Source Code': 'https://github.com/cgohlke/czifile', + # 'Documentation': 'https://', + }, license='BSD', packages=['czifile'], python_requires='>=2.7', @@ -53,7 +59,6 @@ 'tifffile>=2019.7.2', 'imagecodecs>=2019.5.22;platform_system=="Windows"', ], - tests_require=['pytest'], entry_points={ 'console_scripts': [ 'czifile = czifile.czifile:main',