[med-svn] [Git][med-team/insighttoolkit][master] 4 commits: New upstream version 5.4.4
Steven Robbins (@smr)
gitlab at salsa.debian.org
Mon Oct 13 05:28:05 BST 2025
Steven Robbins pushed to branch master at Debian Med / insighttoolkit
Commits:
afe9b5ce by Steve Robbins at 2025-10-09T17:58:04-05:00
New upstream version 5.4.4
- - - - -
6b829547 by Steve Robbins at 2025-10-09T17:58:41-05:00
Update upstream source from tag 'upstream/5.4.4'
Update to upstream version '5.4.4'
with Debian dir 495ffea519a3bf23ce178c9bb16c0443dec4a2d9
- - - - -
e69b339a by Steve Robbins at 2025-10-11T10:31:50-05:00
Update version to 5.4.4.
- - - - -
2fe08ff1 by Steve Robbins at 2025-10-12T22:18:09-05:00
New upstream.
- - - - -
30 changed files:
- CMake/itkVersion.cmake
- Documentation/docs/download.md
- + Documentation/docs/releases/5.4.3.md
- Documentation/docs/releases/index.md
- Modules/Bridge/NumPy/wrapping/PyBuffer.i.init
- Modules/Core/Common/include/itkFloatingPointExceptions.h
- Modules/IO/ImageBase/test/CMakeLists.txt
- Modules/IO/TIFF/src/itkTIFFImageIO.cxx
- Modules/IO/TIFF/test/CMakeLists.txt
- + Modules/IO/TIFF/test/itkImageSeriesReaderReverse.cxx
- Modules/Remote/Montage.remote.cmake
- Modules/Remote/MorphologicalContourInterpolation.remote.cmake
- Modules/Remote/WebAssemblyInterface.remote.cmake
- Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmJPEG2000Codec.cxx
- Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmRAWCodec.cxx
- Testing/ContinuousIntegration/AzurePipelinesBatch.yml
- Testing/ContinuousIntegration/AzurePipelinesLinux.yml
- Testing/ContinuousIntegration/AzurePipelinesLinuxPython.yml
- Testing/ContinuousIntegration/AzurePipelinesMacOS.yml
- Testing/ContinuousIntegration/AzurePipelinesMacOSPython.yml
- Testing/ContinuousIntegration/AzurePipelinesWindows.yml
- Testing/ContinuousIntegration/AzurePipelinesWindowsPython.yml
- Wrapping/Generators/Python/CMakeLists.txt
- Wrapping/Generators/Python/PyBase/pyBase.i
- Wrapping/Generators/Python/Tests/extras.py
- Wrapping/Generators/Python/itk/support/extras.py
- Wrapping/Generators/Python/itk/support/types.py
- Wrapping/macro_files/itk_end_wrap_module.cmake
- debian/changelog
- debian/rules
Changes:
=====================================
CMake/itkVersion.cmake
=====================================
@@ -1,4 +1,4 @@
# ITK version number components.
set(ITK_VERSION_MAJOR "5")
set(ITK_VERSION_MINOR "4")
-set(ITK_VERSION_PATCH "3")
+set(ITK_VERSION_PATCH "4")
=====================================
Documentation/docs/download.md
=====================================
@@ -20,31 +20,31 @@ Additionally, wheels for external modules are available through the Python Packa
**Guide and Textbook**
-- [InsightSoftwareGuide-Book1-5.4.0.pdf](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4.0/InsightSoftwareGuide-Book1-5.4.0.pdf)
-- [InsightSoftwareGuide-Book2-5.4.0.pdf](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4.0/InsightSoftwareGuide-Book2-5.4.0.pdf)
+- [InsightSoftwareGuide-Book1-5.4.3.pdf](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4.3/InsightSoftwareGuide-Book1-5.4.3.pdf)
+- [InsightSoftwareGuide-Book2-5.4.3.pdf](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4.3/InsightSoftwareGuide-Book2-5.4.3.pdf)
**Library Sources**
-- [InsightToolkit-5.4.0.tar.gz](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4.0/InsightToolkit-5.4.0.tar.gz)
-- [InsightToolkit-5.4.0.zip](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4.0/InsightToolkit-5.4.0.zip)
+- [InsightToolkit-5.4.3.tar.gz](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4.3/InsightToolkit-5.4.3.tar.gz)
+- [InsightToolkit-5.4.3.zip](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4.3/InsightToolkit-5.4.3.zip)
**Testing Data**
Unpack optional testing data in the same directory where the Library Source is unpacked.
-- [InsightData-5.4.0.tar.gz](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4.0/InsightData-5.4.0.tar.gz)
-- [InsightData-5.4.0.zip](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4.0/InsightData-5.4.0.zip)
+- [InsightData-5.4.3.tar.gz](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4.3/InsightData-5.4.3.tar.gz)
+- [InsightData-5.4.3.zip](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4.3/InsightData-5.4.3.zip)
**Checksums and Signatures**
-- [InsightToolkit-5.4.0.tar.gz.asc](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4.0/InsightToolkit-5.4.0.tar.gz.asc)
-- [InsightToolkit-5.4.0.zip.asc](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4.0/InsightToolkit-5.4.0.zip.asc)
+- [InsightToolkit-5.4.3.tar.gz.asc](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4.3/InsightToolkit-5.4.3.tar.gz.asc)
+- [InsightToolkit-5.4.3.zip.asc](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4.3/InsightToolkit-5.4.3.zip.asc)
-- [InsightData-5.4.0.tar.gz.asc](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4.0/InsightData-5.4.0.tar.gz.asc)
-- [InsightData-5.4.0.zip.asc](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4.0/InsightData-5.4.0.zip.asc)
+- [InsightData-5.4.3.tar.gz.asc](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4.3/InsightData-5.4.3.tar.gz.asc)
+- [InsightData-5.4.3.zip.asc](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4.3/InsightData-5.4.3.zip.asc)
-- [MD5SUMS](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4.0/MD5SUMS)
-- [SHA512SUMS](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4.0/SHA512SUMS)
+- [MD5SUMS](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4.3/MD5SUMS)
+- [SHA512SUMS](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4.3/SHA512SUMS)
Additional releases can be downloaded from [ITK's GitHub Releases page].
@@ -110,9 +110,9 @@ where `ITKLatestRelease` is the name of the local repository created.
Additionally, specific releases can be cloned using the tags, for example:
```bash
-git clone -b v5.4.0 https://github.com/InsightSoftwareConsortium/ITK ITK-5.4.0
+git clone -b v5.4.3 https://github.com/InsightSoftwareConsortium/ITK ITK-5.4.3
```
-where `v5.4.0` corresponds to ITK 5.4.0, and the `ITK-5.4.0` is the name
+where `v5.4.3` corresponds to ITK 5.4.3, and the `ITK-5.4.3` is the name
of the local repository created.
### Update
@@ -147,7 +147,7 @@ instructions to update it.
Alternatively, one may checkout a specific release tag using
```bash
-git checkout v5.4.0
+git checkout v5.4.3
```
Release tags never move. Repeat the command with a different tag to get a
=====================================
Documentation/docs/releases/5.4.3.md
=====================================
@@ -0,0 +1,285 @@
+# ITK 5.4.3 Release Notes
+
+We are pleased to announce the release of [ITK 5.4.3](https://docs.itk.org), the latest maintenance update for this cross-platform, open-source toolkit supporting N-dimensional scientific image analysis with spatially-aware algorithms. 🎉 🍻 🥳 This patch release addresses several key issues identified since ITK 5.4.2 while maintaining API stability.
+
+🔦 Highlights
+-------------
+
+As a maintenance update following 5.4.2, version 5.4.3 incorporates critical improvements including:
+
+- **Bug Fixes**: Resolved issues affecting the default number of threads, particularly in multi-threaded image processing pipelines where thread limits were not respected, and corrected the b-spline size calculation for closed parametric dimensions, ensuring accurate interpolation in applications such as 3D image registration and deformation modeling.
+- **License Fixes**: Removed unused VNL Netlib rpoly files to ensure compliance with our Apache 2.0 licensing requirements.
+- **Software Guide Updates**: Spelling corrections for the [ITK Software Guide](https://github.com/InsightSoftwareConsortium/ITKSoftwareGuide/releases).
+- **Doxygen Documentation**: Updated Doxygen documentation to reflect the [latest changes and improvements in ITK](https://docs.itk.org/en/latest/releases/5.4.0.html), including links to the [ReadTheDocs site](https://docs.itk.org/projects/doxygen/).
+- **Remote Module Updates**: Improvements to the [`LabelErodeDilate`](https://github.com/InsightSoftwareConsortium/ITKLabelErodeDilate) and [`MeshToPolyData`](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData) remote modules, including bug fixes and enhancements.
+
+A full list of changes can be found in the changelog below.
+
+🔢 Versioning Note
+------------------
+
+For comprehensive details on ITK 5.4.0, please review the [ITK 5.4.0 Release Notes](https://docs.itk.org/en/latest/releases/5.4.0.html).
+
+💾 Download
+-----------
+
+**Python Packages**
+
+Install [ITK Python packages](https://docs.itk.org/en/latest/learn/python_quick_start.html) with:
+
+```bash
+pip install itk
+```
+
+**Guide and Textbook**
+
+- [InsightSoftwareGuide-Book1-5.4.3.pdf](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4.3/InsightSoftwareGuide-Book1-5.4.3.pdf)
+- [InsightSoftwareGuide-Book2-5.4.3.pdf](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4.3/InsightSoftwareGuide-Book2-5.4.3.pdf)
+
+**Library Sources**
+
+- [InsightToolkit-5.4.3.tar.gz](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4.3/InsightToolkit-5.4.3.tar.gz)
+- [InsightToolkit-5.4.3.zip](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4.3/InsightToolkit-5.4.3.zip)
+
+**Testing Data**
+
+Unpack optional testing data in the same directory where the Library Source is unpacked.
+
+- [InsightData-5.4.3.tar.gz](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4.3/InsightData-5.4.3.tar.gz)
+- [InsightData-5.4.3.zip](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4.3/InsightData-5.4.3.zip)
+
+**Checksums and Signatures**
+
+- [InsightToolkit-5.4.3.tar.gz.asc](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4.3/InsightToolkit-5.4.3.tar.gz.asc)
+- [InsightToolkit-5.4.3.zip.asc](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4.3/InsightToolkit-5.4.3.zip.asc)
+
+- [InsightData-5.4.3.tar.gz.asc](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4.3/InsightData-5.4.3.tar.gz.asc)
+- [InsightData-5.4.3.zip.asc](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4.3/InsightData-5.4.3.zip.asc)
+
+- [MD5SUMS](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4.3/MD5SUMS)
+- [SHA512SUMS](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4.3/SHA512SUMS)
+
+🙏 Congratulations
+------------------
+
+Congratulations and **thank you** to everyone who contributed to this release.
+
+🗣️ What's Next
+---------------
+
+**ITK 6 Preparation**
+
+The development community is currently focused on delivering **ITK 6**, a major modernization release featuring:
+
+- Architectural upgrades for contemporary C++ development
+- Enhanced template metaprogramming capabilities
+- Streamlined build system configurations
+
+Early access builds (alpha/beta releases) will become available during ongoing 5.4.x maintenance, enabling parallel evaluation of new features while maintaining production stability.
+
+**5.4 Maintenance Commitment**
+
+We remain dedicated to supporting current users through:
+
+- Regular security and regression patches
+- Critical bug resolution
+- Platform compatibility updates
+
+**Enjoy ITK!**
+
+ITK Changes Since v5.4.2
+------------------------
+
+### Bradley Lowekamp (2):
+
+#### Enhancements
+
+- Use get_schedaffin to determine number of threads ([50ab3e0f6e](https://github.com/InsightSoftwareConsortium/ITK/commit/50ab3e0f6e))
+
+#### Bug Fixes
+
+- Update LabelErodeDilate remote module ([ea1ee3a961](https://github.com/InsightSoftwareConsortium/ITK/commit/ea1ee3a961))
+
+
+### Dženan Zukić (1):
+
+#### Documentation Updates
+
+- Remove duplicate new author name (Matthieu LAURENDEAU) ([6d82d2bd8f](https://github.com/InsightSoftwareConsortium/ITK/commit/6d82d2bd8f))
+
+
+### Matthew McCormick (10):
+
+#### Enhancements
+
+- Bump ITK version to 5.4.3 ([0913f2a962](https://github.com/InsightSoftwareConsortium/ITK/commit/0913f2a962))
+
+#### Documentation Updates
+
+- Update maintenance branch for 5.4 series ([146bc6de06](https://github.com/InsightSoftwareConsortium/ITK/commit/146bc6de06))
+- Point to RTD Doxygen documentation, ITKDoxygen Docker build ([8ba1cfc8f2](https://github.com/InsightSoftwareConsortium/ITK/commit/8ba1cfc8f2))
+- Update Doxygen class links to use ReadTheDocs ([d3189c245e](https://github.com/InsightSoftwareConsortium/ITK/commit/d3189c245e))
+- Update versioned Doxygen links to point to ReadTheDocs ([ce4fa184e8](https://github.com/InsightSoftwareConsortium/ITK/commit/ce4fa184e8))
+- ITK 5.4.0 release notes ([f2852f6ee9](https://github.com/InsightSoftwareConsortium/ITK/commit/f2852f6ee9))
+- Add ITK 5.4.2 release notes ([f817e2f775](https://github.com/InsightSoftwareConsortium/ITK/commit/f817e2f775))
+
+#### Platform Fixes
+
+- Bump MeshToPolyData Remote Module to 2024-03-14 main ([7366509c1c](https://github.com/InsightSoftwareConsortium/ITK/commit/7366509c1c))
+
+#### Bug Fixes
+
+- Remove VNL Netlib rpoly files ([6894a1715c](https://github.com/InsightSoftwareConsortium/ITK/commit/6894a1715c))
+- Clamp GlobalDefault threads with GlobalMaximum with initialization ([7e485eac71](https://github.com/InsightSoftwareConsortium/ITK/commit/7e485eac71))
+
+
+### Simon Rit (1):
+
+#### Bug Fixes
+
+- Remove check on WrapITK.pth existence in itk_python_add_test ([71d5cce482](https://github.com/InsightSoftwareConsortium/ITK/commit/71d5cce482))
+
+
+### Nick Tustison (1):
+
+#### Bug Fixes
+
+- Incorrect size for closed parametric dimension. ([0dd02ac9f1](https://github.com/InsightSoftwareConsortium/ITK/commit/0dd02ac9f1))
+
+
+ITK Software Guide Changes Since v5.4.2
+---------------------------------------
+
+### Matthew McCormick (1):
+
+#### Enhancements
+
+- Bump ITK to v5.4.3 ([0db3df8](https://github.com/InsightSoftwareConsortium/ITKSoftwareGuide/commit/0db3df8))
+
+### albert-github (1):
+
+#### Documentation Updates
+
+- Spelling corrections ([5849c78](https://github.com/InsightSoftwareConsortium/ITKSoftwareGuide/commit/5849c78))
+
+
+
+
+Remote Module Changes Since v5.4.2
+---------------------------------------------
+
+## LabelErodeDilate:
+### Bradley Lowekamp (4):
+
+#### Bug Fixes
+
+- Addressed memory leak of progress object ([05a0a1c](https://github.com/InsightSoftwareConsortium/ITKLabelErodeDilate/commit/05a0a1c))
+- Address uninitialized value ([921aaab](https://github.com/InsightSoftwareConsortium/ITKLabelErodeDilate/commit/921aaab))
+- Fix Valgrind defect with uninitialized array in doOneDimensionErode ([b9567df](https://github.com/InsightSoftwareConsortium/ITKLabelErodeDilate/commit/b9567df))
+
+#### Miscellaneous Changes
+
+- Update CI infrastructure to use 5.4.2 infrastructure ([c9f9037](https://github.com/InsightSoftwareConsortium/ITKLabelErodeDilate/commit/c9f9037))
+
+
+### Hans Johnson (4):
+
+#### Enhancements
+
+- Update to support the clang-format-linter CI ([b25c27e](https://github.com/InsightSoftwareConsortium/ITKLabelErodeDilate/commit/b25c27e))
+- Update to use local error message. ([22d8846](https://github.com/InsightSoftwareConsortium/ITKLabelErodeDilate/commit/22d8846))
+
+#### Style Changes
+
+- Add itkVirtualGetNameOfClassMacro + itkOverrideGetNameOfClassMacro ([6a892cd](https://github.com/InsightSoftwareConsortium/ITKLabelErodeDilate/commit/6a892cd))
+- Update to match clang-format-19 from ITK ([32e7773](https://github.com/InsightSoftwareConsortium/ITKLabelErodeDilate/commit/32e7773))
+
+
+### Jon Haitz Legarreta Gorroño (12):
+
+#### Enhancements
+
+- Transition project configuration to `pyproject.toml` ([8197f14](https://github.com/InsightSoftwareConsortium/ITKLabelErodeDilate/commit/8197f14))
+- Initialize all arrays in `LabelSetUtils.h` file ([108b0ba](https://github.com/InsightSoftwareConsortium/ITKLabelErodeDilate/commit/108b0ba))
+
+#### Platform Fixes
+
+- Bump to minimum CMake 3.16.3 ([f247673](https://github.com/InsightSoftwareConsortium/ITKLabelErodeDilate/commit/f247673))
+
+#### Style Changes
+
+- Conform to ITK style guidelines in local variable naming ([61c7a93](https://github.com/InsightSoftwareConsortium/ITKLabelErodeDilate/commit/61c7a93))
+- Do no use `m_` to start function parameter names ([c347f23](https://github.com/InsightSoftwareConsortium/ITKLabelErodeDilate/commit/c347f23))
+- Use medial capitals for variable naming in C++ code ([518fab1](https://github.com/InsightSoftwareConsortium/ITKLabelErodeDilate/commit/518fab1))
+- Use `ITK_TRY_EXPECT_NO_EXCEPTION` macro in tests ([5f37494](https://github.com/InsightSoftwareConsortium/ITKLabelErodeDilate/commit/5f37494))
+- Make the input argument checking be the first task in tests ([1a5febf](https://github.com/InsightSoftwareConsortium/ITKLabelErodeDilate/commit/1a5febf))
+- Conform to ITK style guidelines in test arg check ([7f9ffc7](https://github.com/InsightSoftwareConsortium/ITKLabelErodeDilate/commit/7f9ffc7))
+- Remove unnecessary brackets around `EXIT_FAILURE` ([02de4bd](https://github.com/InsightSoftwareConsortium/ITKLabelErodeDilate/commit/02de4bd))
+- Remove unreachable `break` after `return` statement ([0fbfa1c](https://github.com/InsightSoftwareConsortium/ITKLabelErodeDilate/commit/0fbfa1c))
+- Remove unnecessary/empty comment statements in tests ([276b195](https://github.com/InsightSoftwareConsortium/ITKLabelErodeDilate/commit/276b195))
+
+
+
+## MeshToPolyData:
+### Dženan Zukić (1):
+
+#### Platform Fixes
+
+- ITK_DISALLOW_COPY_AND_ASSIGN -> ITK_DISALLOW_COPY_AND_MOVE ([b866a68](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/b866a68))
+
+
+### Hans Johnson (7):
+
+#### Enhancements
+
+- Use latest actions, do not pin to latest version ([8aed3c7](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/8aed3c7))
+- Use tag v5.4.2 for the build packages tags ([9c0209b](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/9c0209b))
+
+#### Style Changes
+
+- Add itkVirtualGetNameOfClassMacro + itkOverrideGetNameOfClassMacro ([c3c0006](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/c3c0006))
+- Replace itkStaticConstMacro with static constexpr ([86435bd](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/86435bd))
+- CoordRepType -> CoordinateType code readability ([d90e542](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/d90e542))
+- Update to match clang-format-19 from ITK ([6aa2abf](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/6aa2abf))
+- Fix KWStyleError ([597c780](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/597c780))
+
+
+### Jon Haitz Legarreta Gorroño (1):
+
+#### Platform Fixes
+
+- Bump to minimum CMake 3.16.3 ([97c575f](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/97c575f))
+
+
+### Matt McCormick (12):
+
+#### Enhancements
+
+- Bump itk-wasm to 1.0.0-b.173 ([08779a7](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/08779a7))
+- Bump itk-wasm version to 1.0.0-b.175 ([254a24d](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/254a24d))
+- Add VTK C++ conversion example ([8153ecc](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/8153ecc))
+- Update ITK to 5.4.0 ([4ce9813](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/4ce9813))
+- Bump wasm package version to 1.1.1 ([a9d1fd7](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/a9d1fd7))
+- Bump pnpm to 10.6.2 ([bd893e4](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/bd893e4))
+- Update pyproject.toml for 0.11.1 ([8941ee1](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/8941ee1))
+
+#### Documentation Updates
+
+- Lines to Vertices in method description ([ff3cc60](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/ff3cc60))
+
+#### Platform Fixes
+
+- Provide backwards compatible CoordRepType in itk::PolyData ([c9e0aba](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/c9e0aba))
+- Update wasm for ITK 5.4.2 ([1c2a0b5](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/1c2a0b5))
+
+#### Bug Fixes
+
+- Update Python package version to 0.11.0 ([5e8de5d](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/5e8de5d))
+- Support Variable-Length-Vector in mesh-to-polydata ([e9b30dc](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/e9b30dc))
+
+### dependabot[bot] (2):
+
+#### Miscellaneous Changes
+
+- Bump vite from 4.5.3 to 4.5.6 ([02b88a3](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/02b88a3))
+- Bump esbuild from 0.19.12 to 0.25.0 ([edf43cb](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/edf43cb))
=====================================
Documentation/docs/releases/index.md
=====================================
@@ -4,6 +4,7 @@
:maxdepth: 1
:caption: 📝 ITK Release Notes
+5.4.3.md
5.4.2.md
5.4.0.md
5.4rc04.md
=====================================
Modules/Bridge/NumPy/wrapping/PyBuffer.i.init
=====================================
@@ -29,29 +29,29 @@ else:
loads = dask_deserialize.dispatch(np.ndarray)
return NDArrayITKBase(loads(header, frames))
-def _get_numpy_pixelid(itk_Image_type):
+def _get_numpy_pixelid(itk_Image_type) -> np.dtype:
"""Returns a ITK PixelID given a numpy array."""
# This is a Mapping from numpy array types to itk pixel types.
- _np_itk = {"UC":np.uint8,
- "US":np.uint16,
- "UI":np.uint32,
- "UL":np.uint64,
- "ULL":np.uint64,
- "SC":np.int8,
- "SS":np.int16,
- "SI":np.int32,
- "SL":np.int64,
- "SLL":np.int64,
- "F":np.float32,
- "D":np.float64,
- "PF2":np.float32,
- "PF3":np.float32,
+ _np_itk = {"UC":np.dtype(np.uint8),
+ "US":np.dtype(np.uint16),
+ "UI":np.dtype(np.uint32),
+ "UL":np.dtype(np.uint64),
+ "ULL":np.dtype(np.uint64),
+ "SC":np.dtype(np.int8),
+ "SS":np.dtype(np.int16),
+ "SI":np.dtype(np.int32),
+ "SL":np.dtype(np.int64),
+ "SLL":np.dtype(np.int64),
+ "F":np.dtype(np.float32),
+ "D":np.dtype(np.float64),
+ "PF2":np.dtype(np.float32),
+ "PF3":np.dtype(np.float32),
}
import os
if os.name == 'nt':
- _np_itk['UL'] = np.uint32
- _np_itk['SL'] = np.int32
+ _np_itk['UL'] = np.dtype(np.uint32)
+ _np_itk['SL'] = np.dtype(np.int32)
try:
return _np_itk[itk_Image_type]
except KeyError as e:
=====================================
Modules/Core/Common/include/itkFloatingPointExceptions.h
=====================================
@@ -18,6 +18,8 @@
#ifndef itkFloatingPointExceptions_h
#define itkFloatingPointExceptions_h
+#include <cstdint>
+
#include "itkMacro.h" // for ITKCommon_EXPORT
#include "itkSingletonMacro.h"
=====================================
Modules/IO/ImageBase/test/CMakeLists.txt
=====================================
@@ -933,7 +933,6 @@ itk_add_test(
COMMAND
itkUnicodeIOTest)
-set(ITKIOImageBaseGTests itkWriteImageFunctionGTest.cxx)
+set(ITKIOImageBaseGTests itkWriteImageFunctionGTest.cxx
+)
creategoogletestdriver(ITKIOImageBase "${ITKIOImageBase-Test_LIBRARIES}" "${ITKIOImageBaseGTests}")
-
-target_compile_definitions(ITKIOImageBaseGTestDriver PRIVATE "-DITK_TEST_OUTPUT_DIR=${ITK_TEST_OUTPUT_DIR}")
=====================================
Modules/IO/TIFF/src/itkTIFFImageIO.cxx
=====================================
@@ -182,12 +182,13 @@ TIFFImageIO::Read(void * buffer)
{
// re-open the file if it was closed
- if (!m_InternalImage->m_IsOpen)
+ if (!m_InternalImage->m_IsOpen || m_FileName != TIFFFileName(m_InternalImage->m_Image))
{
if (!this->CanReadFile(m_FileName.c_str()))
{
itkExceptionMacro("Cannot open file " << this->m_FileName << '!');
}
+ m_InternalImage->Open(m_FileName.c_str());
}
// The IO region should be of dimensions 3 otherwise we read only the first
@@ -333,14 +334,16 @@ TIFFImageIO::InitializeColors()
void
TIFFImageIO::ReadImageInformation()
{
- // If the internal image was not open we open it.
+
+ // If the internal image was not open or the filenames are the same we open it.
// This is usually done when the user sets the ImageIO manually
- if (!m_InternalImage->m_IsOpen)
+ if (!m_InternalImage->m_IsOpen || m_FileName != TIFFFileName(m_InternalImage->m_Image))
{
if (!this->CanReadFile(m_FileName.c_str()))
{
itkExceptionMacro("Cannot open file " << this->m_FileName << '!');
}
+ m_InternalImage->Open(m_FileName.c_str());
}
ReadTIFFTags();
=====================================
Modules/IO/TIFF/test/CMakeLists.txt
=====================================
@@ -632,3 +632,12 @@ itk_add_test(
ITKIOTIFFTestDriver
itkTIFFImageIOIntPixelTest
DATA{Input/int.tiff})
+
+# Add GTest for TIFF module
+set(ITKIOTIFFGTests
+ itkImageSeriesReaderReverse.cxx
+)
+creategoogletestdriver(ITKIOTIFF "${ITKIOTIFF-Test_LIBRARIES}" "${ITKIOTIFFGTests}")
+
+
+target_compile_definitions(ITKIOTIFFGTestDriver PRIVATE "-DITK_TEST_OUTPUT_DIR=${ITK_TEST_OUTPUT_DIR}")
=====================================
Modules/IO/TIFF/test/itkImageSeriesReaderReverse.cxx
=====================================
@@ -0,0 +1,140 @@
+/*=========================================================================
+ *
+ * Copyright NumFOCUS
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0.txt
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *=========================================================================*/
+
+#include "itkImageSeriesWriter.h"
+#include "itkImageSeriesReader.h"
+#include "itkImage.h"
+#include "itkTIFFImageIO.h"
+
+#include "itkGTest.h"
+#include "itksys/SystemTools.hxx"
+#include "itkTestDriverIncludeRequiredFactories.h"
+#include <string>
+
+
+#define _STRING(s) #s
+#define TOSTRING(s) std::string(_STRING(s))
+
+namespace
+{
+
+struct ITKIOTIFF : public ::testing::Test
+{
+ void
+ SetUp() override
+ {
+ RegisterRequiredFactories();
+
+ itksys::SystemTools::MakeDirectory(m_TempDir);
+ }
+
+ void
+ TearDown() override
+ {
+ // Remove the temporary directory and its contents
+ itksys::SystemTools::RemoveADirectory(m_TempDir);
+ }
+
+ std::string m_TempDir = TOSTRING(ITK_TEST_OUTPUT_DIR) + "/ImageSeriesReader.ReverseOrder";
+
+
+ template <typename PixelType>
+ typename itk::Image<PixelType, 3>::Pointer
+ MakeImage(unsigned int z_size)
+ {
+ using ImageType = itk::Image<PixelType, 3>;
+
+ typename ImageType::Pointer img = ImageType::New();
+ typename ImageType::SizeType size = { { 32, 32, z_size } };
+ typename ImageType::RegionType region;
+ region.SetSize(size);
+ img->SetRegions(region);
+ img->Allocate();
+ img->FillBuffer(0);
+
+ for (unsigned int z = 0; z < z_size; ++z)
+ {
+ for (unsigned int y = 0; y < 32; ++y)
+ for (unsigned int x = 0; x < 32; ++x)
+ {
+ typename ImageType::IndexType idx = { { x, y, z } };
+ img->SetPixel(idx, static_cast<PixelType>(1 + z * 5));
+ }
+ }
+ return img;
+ }
+};
+
+
+} // namespace
+
+TEST_F(ITKIOTIFF, ReverseOrder_with_ImageIO)
+{
+
+
+ // Create a series of 3 TIFF files with different values using native itk::Image
+ const unsigned int z_size = 3;
+ using PixelType = unsigned char;
+ constexpr unsigned int Dimension = 3;
+ using ImageType = itk::Image<PixelType, Dimension>;
+
+
+ auto img = MakeImage<PixelType>(z_size);
+
+ std::vector<std::string> filePaths;
+ for (unsigned int z = 0; z < z_size; ++z)
+ {
+ std::ostringstream oss;
+ oss << m_TempDir << "/test_reader_kwargs_" << z << ".tiff";
+ filePaths.push_back(oss.str());
+ }
+ {
+ // Create an ImageSeriesWriter to write the series of images
+ auto writer = itk::ImageSeriesWriter<
+ ImageType,
+ typename ImageType::RebindImageType<ImageType::PixelType, ImageType::ImageDimension - 1>>::New();
+ writer->SetFileNames(filePaths);
+ writer->SetInput(img);
+ writer->Update();
+ }
+
+ // Create ImageIO for TIFF
+ auto imageIO = itk::TIFFImageIO::New();
+
+ // Test reading with ReverseOrder=True
+ auto reader = itk::ImageSeriesReader<ImageType>::New();
+ reader->SetImageIO(imageIO);
+ reader->SetFileNames(filePaths);
+ reader->SetReverseOrder(true);
+ reader->Update();
+ ImageType::Pointer reversed_img = reader->GetOutput();
+
+
+ // Print the value at 0,0 of each slice for the two images
+ for (unsigned int z = 0; z < z_size; ++z)
+ {
+
+ ImageType::IndexType idx{ { 31, 31, z } };
+ auto actual = reversed_img->GetPixel(idx);
+
+ idx[2] = z_size - 1 - z;
+ auto expected = img->GetPixel(idx);
+
+ EXPECT_EQ(static_cast<int>(expected), static_cast<int>(actual)) << "Slice " << z << " value mismatch";
+ }
+}
=====================================
Modules/Remote/Montage.remote.cmake
=====================================
@@ -47,5 +47,5 @@ itk_fetch_module(
"Reconstruction of 3D volumetric dataset from a collection of 2D slices"
MODULE_COMPLIANCE_LEVEL 3
GIT_REPOSITORY https://github.com/InsightSoftwareConsortium/ITKMontage.git
- GIT_TAG 79c81953d87f891f9a2c96457480bdc9f9110f24
+ GIT_TAG f310be543baf7b233d231c6040a2d509d62bacba
)
=====================================
Modules/Remote/MorphologicalContourInterpolation.remote.cmake
=====================================
@@ -58,5 +58,5 @@ This work is supported by NIH grant R01 EB014346
'Continued development and maintenance of the ITK-SNAP 3D image segmentation software'."
MODULE_COMPLIANCE_LEVEL 3
GIT_REPOSITORY https://github.com/KitwareMedical/ITKMorphologicalContourInterpolation.git
- GIT_TAG fc7ffdc939395a272e1ccba8d027db80d0eb834e
+ GIT_TAG 821bf9b3ef8eaaab10391ed060dc9ca5e4d37b39
)
=====================================
Modules/Remote/WebAssemblyInterface.remote.cmake
=====================================
@@ -44,8 +44,8 @@
# Contact: Matt McCormick <matt.mccormick at kitware.com>
itk_fetch_module(
WebAssemblyInterface
- "The itk-wasm WebAssemblyInterface module provides tools to a) build C/C++ code to WebAssembly-compatible processing pipelines, b) bridge local filesystems, JavaScript/Typescript data structures, and traditional file formats, c) transfer data efficiently in and out of the WebAssembly runtime."
+ "The ITK-Wasm WebAssemblyInterface module provides tools to a) build C/C++ code to WebAssembly-compatible processing pipelines, b) bridge local filesystems, JavaScript/Typescript data structures, and traditional file formats, c) transfer data efficiently in and out of the WebAssembly runtime."
MODULE_COMPLIANCE_LEVEL 3
- GIT_REPOSITORY https://github.com/InsightSoftwareConsortium/itk-wasm.git
- GIT_TAG d140dd81a7b3a3d34753caa1b27a2b74696ecd6a
+ GIT_REPOSITORY https://github.com/InsightSoftwareConsortium/ITK-Wasm.git
+ GIT_TAG 982daf8ea91d5ecb052c3bf707542dbc43a4d1ef
)
=====================================
Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmJPEG2000Codec.cxx
=====================================
@@ -1484,7 +1484,8 @@ bool JPEG2000Codec::GetHeaderInfo(const char * dummy_buffer, size_t buf_size, Tr
&image) ? true : false;
if(!bResult)
{
- opj_stream_destroy(cio);
+ opj_destroy_codec(dinfo);
+ opj_stream_destroy(cio);
return false;
}
//image = opj_decode(dinfo, cio);
@@ -1527,6 +1528,8 @@ bool JPEG2000Codec::GetHeaderInfo(const char * dummy_buffer, size_t buf_size, Tr
if( !check_comp_valid( image ) )
{
+ opj_destroy_codec(dinfo);
+ opj_stream_destroy(cio);
gdcmErrorMacro( "Invalid test failed" );
return false;
}
@@ -1548,6 +1551,8 @@ bool JPEG2000Codec::GetHeaderInfo(const char * dummy_buffer, size_t buf_size, Tr
}
else
{
+ opj_destroy_codec(dinfo);
+ opj_stream_destroy(cio);
gdcmErrorMacro( "do not handle precision: " << comp->prec );
return false;
}
@@ -1600,6 +1605,8 @@ bool JPEG2000Codec::GetHeaderInfo(const char * dummy_buffer, size_t buf_size, Tr
}
else if( image->numcomps == 4 )
{
+ opj_destroy_codec(dinfo);
+ opj_stream_destroy(cio);
/* Yes this is legal */
// http://www.crc.ricoh.com/~gormish/jpeg2000conformance/
// jpeg2000testimages/Part4TestStreams/codestreams_profile0/p0_06.j2k
@@ -1609,6 +1616,8 @@ bool JPEG2000Codec::GetHeaderInfo(const char * dummy_buffer, size_t buf_size, Tr
}
else
{
+ opj_destroy_codec(dinfo);
+ opj_stream_destroy(cio);
// jpeg2000testimages/Part4TestStreams/codestreams_profile0/p0_13.j2k
gdcmErrorMacro( "Image is " << image->numcomps << " components which is not supported in DICOM" );
return false;
=====================================
Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmRAWCodec.cxx
=====================================
@@ -118,8 +118,12 @@ bool RAWCodec::DecodeBytes(const char* inBytes, size_t inBufferLength,
{
size_t len = str.size() * 16 / 12;
char * copy = new char[len];
- bool b = Unpacker12Bits::Unpack(copy, str.data(), str.size() ); (void)b;
- assert( b );
+ bool b = Unpacker12Bits::Unpack(copy, str.data(), str.size() );
+ if (!b)
+ {
+ delete[] copy;
+ return false;
+ }
assert (len == inOutBufferLength);
assert(inOutBufferLength == len);
memcpy(outBytes, copy, len);
=====================================
Testing/ContinuousIntegration/AzurePipelinesBatch.yml
=====================================
@@ -11,7 +11,7 @@ trigger:
pr: none
variables:
- ExternalDataVersion: 5.3.0
+ ExternalDataVersion: 5.4.3
jobs:
- job: Windows
timeoutInMinutes: 0
@@ -58,7 +58,7 @@ jobs:
curl -L https://github.com/InsightSoftwareConsortium/ITK/releases/download/v$(ExternalDataVersion)/InsightData-$(ExternalDataVersion).tar.gz -O
cmake -E tar xfz InsightData-$(ExternalDataVersion).tar.gz
- cmake -E rename InsightToolkit-$(ExternalDataVersion)/.ExternalData/MD5 $(Build.SourcesDirectory)/.ExternalData/MD5
+ cmake -E rename InsightToolkit-$(ExternalDataVersion)/.ExternalData/CID $(Build.SourcesDirectory)/.ExternalData/CID
workingDirectory: $(Agent.BuildDirectory)
displayName: 'Download dashboard script and testing data'
=====================================
Testing/ContinuousIntegration/AzurePipelinesLinux.yml
=====================================
@@ -25,13 +25,13 @@ pr:
- Utilities/ITKv5Preparation/*
- Utilities/Maintenance/*
variables:
- ExternalDataVersion: 5.3.0
+ ExternalDataVersion: 5.4.3
jobs:
- job: Linux
timeoutInMinutes: 0
cancelTimeoutInMinutes: 300
pool:
- vmImage: ubuntu-20.04
+ vmImage: ubuntu-22.04
steps:
- checkout: self
clean: true
@@ -62,7 +62,7 @@ jobs:
curl -L https://github.com/InsightSoftwareConsortium/ITK/releases/download/v$(ExternalDataVersion)/InsightData-$(ExternalDataVersion).tar.gz -O
cmake -E tar xfz InsightData-$(ExternalDataVersion).tar.gz
- cmake -E rename InsightToolkit-$(ExternalDataVersion)/.ExternalData/MD5 $(Build.SourcesDirectory)/.ExternalData/MD5
+ cmake -E rename InsightToolkit-$(ExternalDataVersion)/.ExternalData/CID $(Build.SourcesDirectory)/.ExternalData/CID
workingDirectory: $(Agent.BuildDirectory)
displayName: 'Download dashboard script and testing data'
@@ -108,7 +108,7 @@ jobs:
timeoutInMinutes: 0
cancelTimeoutInMinutes: 300
pool:
- vmImage: ubuntu-20.04
+ vmImage: ubuntu-22.04
steps:
- checkout: self
clean: true
@@ -134,7 +134,7 @@ jobs:
curl -L https://github.com/InsightSoftwareConsortium/ITK/releases/download/v$(ExternalDataVersion)/InsightData-$(ExternalDataVersion).tar.gz -O
cmake -E tar xfz InsightData-$(ExternalDataVersion).tar.gz
- cmake -E rename InsightToolkit-$(ExternalDataVersion)/.ExternalData/MD5 $(Build.SourcesDirectory)/.ExternalData/MD5
+ cmake -E rename InsightToolkit-$(ExternalDataVersion)/.ExternalData/CID $(Build.SourcesDirectory)/.ExternalData/CID
workingDirectory: $(Agent.BuildDirectory)
displayName: 'Download dashboard script and testing data'
=====================================
Testing/ContinuousIntegration/AzurePipelinesLinuxPython.yml
=====================================
@@ -25,13 +25,13 @@ pr:
- Utilities/ITKv5Preparation/*
- Utilities/Maintenance/*
variables:
- ExternalDataVersion: 5.3.0
+ ExternalDataVersion: 5.4.3
jobs:
- job: Linux
timeoutInMinutes: 0
cancelTimeoutInMinutes: 300
pool:
- vmImage: ubuntu-20.04
+ vmImage: ubuntu-22.04
steps:
- checkout: self
clean: true
@@ -61,7 +61,7 @@ jobs:
curl -L https://github.com/InsightSoftwareConsortium/ITK/releases/download/v$(ExternalDataVersion)/InsightData-$(ExternalDataVersion).tar.gz -O
cmake -E tar xfz InsightData-$(ExternalDataVersion).tar.gz
- cmake -E rename InsightToolkit-$(ExternalDataVersion)/.ExternalData/MD5 $(Build.SourcesDirectory)/.ExternalData/MD5
+ cmake -E rename InsightToolkit-$(ExternalDataVersion)/.ExternalData/CID $(Build.SourcesDirectory)/.ExternalData/CID
workingDirectory: $(Agent.BuildDirectory)
displayName: 'Download dashboard script and testing data'
=====================================
Testing/ContinuousIntegration/AzurePipelinesMacOS.yml
=====================================
@@ -25,7 +25,7 @@ pr:
- Utilities/ITKv5Preparation/*
- Utilities/Maintenance/*
variables:
- ExternalDataVersion: 5.3.0
+ ExternalDataVersion: 5.4.3
jobs:
- job: macOS
timeoutInMinutes: 0
@@ -63,7 +63,7 @@ jobs:
curl -L https://github.com/InsightSoftwareConsortium/ITK/releases/download/v$(ExternalDataVersion)/InsightData-$(ExternalDataVersion).tar.gz -O
cmake -E tar xfz InsightData-$(ExternalDataVersion).tar.gz
- cmake -E rename InsightToolkit-$(ExternalDataVersion)/.ExternalData/MD5 $(Build.SourcesDirectory)/.ExternalData/MD5
+ cmake -E rename InsightToolkit-$(ExternalDataVersion)/.ExternalData/CID $(Build.SourcesDirectory)/.ExternalData/CID
workingDirectory: $(Agent.BuildDirectory)
displayName: 'Download dashboard script and testing data'
=====================================
Testing/ContinuousIntegration/AzurePipelinesMacOSPython.yml
=====================================
@@ -25,7 +25,7 @@ pr:
- Utilities/ITKv5Preparation/*
- Utilities/Maintenance/*
variables:
- ExternalDataVersion: 5.3.0
+ ExternalDataVersion: 5.4.3
jobs:
- job: macOS
timeoutInMinutes: 0
@@ -66,7 +66,7 @@ jobs:
curl -L https://github.com/InsightSoftwareConsortium/ITK/releases/download/v$(ExternalDataVersion)/InsightData-$(ExternalDataVersion).tar.gz -O
cmake -E tar xfz InsightData-$(ExternalDataVersion).tar.gz
- cmake -E rename InsightToolkit-$(ExternalDataVersion)/.ExternalData/MD5 $(Build.SourcesDirectory)/.ExternalData/MD5
+ cmake -E rename InsightToolkit-$(ExternalDataVersion)/.ExternalData/CID $(Build.SourcesDirectory)/.ExternalData/CID
workingDirectory: $(Agent.BuildDirectory)
displayName: 'Download dashboard script and testing data'
=====================================
Testing/ContinuousIntegration/AzurePipelinesWindows.yml
=====================================
@@ -25,7 +25,7 @@ pr:
- Utilities/ITKv5Preparation/*
- Utilities/Maintenance/*
variables:
- ExternalDataVersion: 5.3.0
+ ExternalDataVersion: 5.4.3
jobs:
- job: Windows
timeoutInMinutes: 0
@@ -57,7 +57,7 @@ jobs:
curl -L https://github.com/InsightSoftwareConsortium/ITK/releases/download/v$(ExternalDataVersion)/InsightData-$(ExternalDataVersion).tar.gz -O
cmake -E tar xfz InsightData-$(ExternalDataVersion).tar.gz
- cmake -E rename InsightToolkit-$(ExternalDataVersion)/.ExternalData/MD5 $(Build.SourcesDirectory)/.ExternalData/MD5
+ cmake -E rename InsightToolkit-$(ExternalDataVersion)/.ExternalData/CID $(Build.SourcesDirectory)/.ExternalData/CID
workingDirectory: $(Agent.BuildDirectory)
displayName: 'Download dashboard script and testing data'
=====================================
Testing/ContinuousIntegration/AzurePipelinesWindowsPython.yml
=====================================
@@ -25,7 +25,7 @@ pr:
- Utilities/ITKv5Preparation/*
- Utilities/Maintenance/*
variables:
- ExternalDataVersion: 5.3.0
+ ExternalDataVersion: 5.4.3
jobs:
- job: Windows
timeoutInMinutes: 0
@@ -57,7 +57,7 @@ jobs:
curl -L https://github.com/InsightSoftwareConsortium/ITK/releases/download/v$(ExternalDataVersion)/InsightData-$(ExternalDataVersion).tar.gz -O
cmake -E tar xfz InsightData-$(ExternalDataVersion).tar.gz
- cmake -E rename InsightToolkit-$(ExternalDataVersion)/.ExternalData/MD5 $(Build.SourcesDirectory)/.ExternalData/MD5
+ cmake -E rename InsightToolkit-$(ExternalDataVersion)/.ExternalData/CID $(Build.SourcesDirectory)/.ExternalData/CID
workingDirectory: $(Agent.BuildDirectory)
displayName: 'Download dashboard script and testing data'
=====================================
Wrapping/Generators/Python/CMakeLists.txt
=====================================
@@ -83,10 +83,14 @@ macro(WRAP_ITK_PYTHON_BINDINGS_INSTALL path wrapper_library_name)
set(_component_module "${wrapper_library_name}")
endif()
endif()
+ set(_ORIG_DESTINATION "${PY_SITE_PACKAGES_PATH}/${path}")
+ cmake_path(NORMAL_PATH _ORIG_DESTINATION OUTPUT_VARIABLE _NORMALIZED_DESTINATION)
install(
FILES ${ARGN}
- DESTINATION "${PY_SITE_PACKAGES_PATH}/${path}"
+ DESTINATION "${_NORMALIZED_DESTINATION}"
COMPONENT ${_component_module}${WRAP_ITK_INSTALL_COMPONENT_IDENTIFIER}RuntimeLibraries)
+ unset(_ORIG_DESTINATION)
+ unset(_NORMALIZED_DESTINATION)
unset(_component_module)
endmacro()
=====================================
Wrapping/Generators/Python/PyBase/pyBase.i
=====================================
@@ -566,8 +566,13 @@ str = str
import numpy as np
from itk.support import types
- # if both a numpy dtype and a ctype exist, use the latter.
+ # Convert numpy type to dtype object for consistency
+ # i.e. <np.float32> -> np.dtype('float32')
if type(pixel_type) is type:
+ pixel_type = np.dtype(pixel_type)
+
+ # if both a numpy dtype and an ITK ctype exist, use the latter.
+ if issubclass(type(pixel_type), np.dtype):
c_pixel_type = types.itkCType.GetCTypeForDType(pixel_type)
if c_pixel_type is not None:
pixel_type = c_pixel_type
=====================================
Wrapping/Generators/Python/Tests/extras.py
=====================================
@@ -389,6 +389,10 @@ itk.transformwrite(transforms[0], sys.argv[7], compression=True)
# BridgeNumPy
+arr = np.zeros([3,4,5],dtype=np.dtype('uintc'))
+image = itk.image_from_array(arr)
+assert itk.template(image)[1] == (itk.UI, 3)
+
# Images
image = itk.imread(filename)
=====================================
Wrapping/Generators/Python/itk/support/extras.py
=====================================
@@ -273,26 +273,23 @@ def _get_itk_pixelid(numpy_array_type):
# This is a Mapping from numpy array types to itk pixel types.
_np_itk = {
- np.uint8: itk.UC,
- np.uint16: itk.US,
- np.uint32: itk.UI,
- np.uint64: _long_type(),
- np.int8: itk.SC,
- np.int16: itk.SS,
- np.int32: itk.SI,
- np.int64: itk.SL,
- np.float32: itk.F,
- np.float64: itk.D,
- np.complex64: itk.complex[itk.F],
- np.complex128: itk.complex[itk.D],
+ np.dtype(np.uint8): itk.UC,
+ np.dtype(np.uint16): itk.US,
+ np.dtype(np.uint32): itk.UI,
+ np.dtype(np.uint64): _long_type(),
+ np.dtype(np.int8): itk.SC,
+ np.dtype(np.int16): itk.SS,
+ np.dtype(np.int32): itk.SI,
+ np.dtype(np.int64): itk.SL,
+ np.dtype(np.float32): itk.F,
+ np.dtype(np.float64): itk.D,
+ np.dtype(np.complex64): itk.complex[itk.F],
+ np.dtype(np.complex128): itk.complex[itk.D],
}
try:
- return _np_itk[numpy_array_type.dtype.type]
+ return _np_itk[numpy_array_type.dtype]
except KeyError as e:
- for key in _np_itk:
- if np.issubdtype(numpy_array_type.dtype.type, key):
- return _np_itk[key]
- raise e
+ raise e
def _GetArrayFromImage(
=====================================
Wrapping/Generators/Python/itk/support/types.py
=====================================
@@ -119,28 +119,28 @@ class itkCType:
"""
import numpy as np
- _F: "itkCType" = itkCType("float", "F", np.float32)
- _D: "itkCType" = itkCType("double", "D", np.float64)
- _UC: "itkCType" = itkCType("unsigned char", "UC", np.uint8)
- _US: "itkCType" = itkCType("unsigned short", "US", np.uint16)
- _UI: "itkCType" = itkCType("unsigned int", "UI", np.uint32)
+ _F: "itkCType" = itkCType("float", "F", np.dtype(np.float32))
+ _D: "itkCType" = itkCType("double", "D", np.dtype(np.float64))
+ _UC: "itkCType" = itkCType("unsigned char", "UC", np.dtype(np.uint8))
+ _US: "itkCType" = itkCType("unsigned short", "US", np.dtype(np.uint16))
+ _UI: "itkCType" = itkCType("unsigned int", "UI", np.dtype(np.uint32))
if os.name == "nt":
- _UL: "itkCType" = itkCType("unsigned long", "UL", np.uint32)
- _SL: "itkCType" = itkCType("signed long", "SL", np.int32)
+ _UL: "itkCType" = itkCType("unsigned long", "UL", np.dtype(np.uint32))
+ _SL: "itkCType" = itkCType("signed long", "SL", np.dtype(np.int32))
_LD: "itkCType" = itkCType("long double", "LD")
else:
- _UL: "itkCType" = itkCType("unsigned long", "UL", np.uint64)
- _SL: "itkCType" = itkCType("signed long", "SL", np.int64)
+ _UL: "itkCType" = itkCType("unsigned long", "UL", np.dtype(np.uint64))
+ _SL: "itkCType" = itkCType("signed long", "SL", np.dtype(np.int64))
if hasattr(np, "float128"):
- _LD: "itkCType" = itkCType("long double", "LD", np.float128)
+ _LD: "itkCType" = itkCType("long double", "LD", np.dtype(np.float128))
else:
_LD: "itkCType" = itkCType("long double", "LD")
- _ULL: "itkCType" = itkCType("unsigned long long", "ULL", np.uint64)
- _SC: "itkCType" = itkCType("signed char", "SC", np.int8)
- _SS: "itkCType" = itkCType("signed short", "SS", np.int16)
- _SI: "itkCType" = itkCType("signed int", "SI", np.int32)
- _SLL: "itkCType" = itkCType("signed long long", "SLL", np.int64)
- _B: "itkCType" = itkCType("bool", "B", np.bool_)
+ _ULL: "itkCType" = itkCType("unsigned long long", "ULL", np.dtype(np.uint64))
+ _SC: "itkCType" = itkCType("signed char", "SC", np.dtype(np.int8))
+ _SS: "itkCType" = itkCType("signed short", "SS", np.dtype(np.int16))
+ _SI: "itkCType" = itkCType("signed int", "SI", np.dtype(np.int32))
+ _SLL: "itkCType" = itkCType("signed long long", "SLL", np.dtype(np.int64))
+ _B: "itkCType" = itkCType("bool", "B", np.dtype(np.bool))
return _F, _D, _UC, _US, _UI, _UL, _SL, _LD, _ULL, _SC, _SS, _SI, _SLL, _B
=====================================
Wrapping/macro_files/itk_end_wrap_module.cmake
=====================================
@@ -421,7 +421,15 @@ ${DO_NOT_WAIT_FOR_THREADS_CALLS}
if (ITK_USE_PYTHON_LIMITED_API)
set_target_properties(${lib} PROPERTIES SUFFIX .abi3.so)
else()
- set_target_properties(${lib} PROPERTIES SUFFIX .so)
+ if(NOT PYTHON3_FOUND)
+ find_package(Python3 ${PYTHON_VERSION_MIN}...${PYTHON_VERSION_MAX} COMPONENTS Interpreter Development.Module ${SKBUILD_SABI_COMPONENT})
+ endif()
+ if(PYTHON3_FOUND)
+# Graalpy Patch
+ set_target_properties(${lib} PROPERTIES SUFFIX .${Python3_SOABI}.so)
+ else()
+ set_target_properties(${lib} PROPERTIES SUFFIX .so)
+ endif()
endif()
endif()
if(NOT MSVC)
=====================================
debian/changelog
=====================================
@@ -1,3 +1,11 @@
+insighttoolkit5 (5.4.4-1) unstable; urgency=medium
+
+ [ Steve Robbins ]
+ * [afe9b5c] New upstream version 5.4.4
+ * [e69b339] d/rules: update version to 5.4.4.
+
+ -- Steve M. Robbins <smr at debian.org> Sat, 11 Oct 2025 10:31:54 -0500
+
insighttoolkit5 (5.4.3-5) unstable; urgency=medium
* Team upload.
=====================================
debian/rules
=====================================
@@ -2,7 +2,7 @@
VER_MAJOR = 5
VER_MINOR = 4
-VER_REVISION = 3
+VER_REVISION = 4
VERSION = $(VER_MAJOR).$(VER_MINOR).$(VER_REVISION)
SOVERSION = $(VER_MAJOR).$(VER_MINOR)
@@ -152,21 +152,14 @@ control-file:
# For ITK 5.4.3 this was done manually:
#
# 1. Download manually:
-# a. https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4.3/InsightToolkit-5.4.3.tar.gz
-# b. https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4.3/InsightData-5.4.3.tar.gz
+# a. https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4.4/InsightToolkit-5.4.4.tar.gz
+# b. https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4.4/InsightData-5.4.4.tar.gz
#
# 2. Extract in "tarballs", create new merged source tarball:
# mv ~/Downloads/Insight* .
-# tar xzf InsightToolkit-5.4.3.tar.gz
-# tar xzf InsightData-5.4.3.tar.gz
-# tar --xz -cf insighttoolkit5_5.4.3.orig.tar.xz InsightToolkit-5.4.3
+# tar xzf InsightToolkit-5.4.4.tar.gz
+# tar xzf InsightData-5.4.4.tar.gz
+# tar --xz -cf insighttoolkit5_5.4.4.orig.tar.xz InsightToolkit-5.4.4
#
# 3. Import into GIT
-# gbp import-orig --pristine-tar ../tarballs/insighttoolkit5_5.4.3.orig.tar.xz
-
-TARBALLDIR = "../tarballs"
-get-orig-source:
- echo "Create manually; see rules"
- #uscan --watchfile debian/data/watch --force-download --no-symlink --destdir $(TARBALLDIR)
- #uscan --force-download --rename --destdir $(TARBALLDIR)
- #cd $(TARBALLDIR) && mv `ls InsightData-$(VERSION).tar.xz` insighttoolkit$(VER_MAJOR)_$(VERSION)-dfsg1.orig-data.tar.xz
+# gbp import-orig --pristine-tar ../tarballs/insighttoolkit5_5.4.4.orig.tar.xz
View it on GitLab: https://salsa.debian.org/med-team/insighttoolkit/-/compare/a0ee84a71fe349f43124833364cec47623bfd52e...2fe08ff119e6a6baf06dea16385cadb08ad500ac
--
View it on GitLab: https://salsa.debian.org/med-team/insighttoolkit/-/compare/a0ee84a71fe349f43124833364cec47623bfd52e...2fe08ff119e6a6baf06dea16385cadb08ad500ac
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20251013/8c340fec/attachment-0001.htm>
More information about the debian-med-commit
mailing list