dicube 0.2.0__tar.gz → 0.2.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. {dicube-0.2.0 → dicube-0.2.2}/.github/workflows/build-wheels.yml +10 -3
  2. {dicube-0.2.0 → dicube-0.2.2}/PKG-INFO +2 -1
  3. {dicube-0.2.0 → dicube-0.2.2}/dicube/core/io.py +8 -2
  4. {dicube-0.2.0 → dicube-0.2.2}/pyproject.toml +1 -0
  5. {dicube-0.2.0 → dicube-0.2.2}/tests/test_integration_exceptions.py +12 -0
  6. {dicube-0.2.0 → dicube-0.2.2}/.cursor/rules/error-handling.mdc +0 -0
  7. {dicube-0.2.0 → dicube-0.2.2}/.cursor/rules/file-formats.mdc +0 -0
  8. {dicube-0.2.0 → dicube-0.2.2}/.cursor/rules/key-classes.mdc +0 -0
  9. {dicube-0.2.0 → dicube-0.2.2}/.cursor/rules/project-structure.mdc +0 -0
  10. {dicube-0.2.0 → dicube-0.2.2}/.cursor/rules/python-style.mdc +0 -0
  11. {dicube-0.2.0 → dicube-0.2.2}/.github/actions/setup-python-env/action.yml +0 -0
  12. {dicube-0.2.0 → dicube-0.2.2}/.github/workflows/release.yml +0 -0
  13. {dicube-0.2.0 → dicube-0.2.2}/.github/workflows/test.yml +0 -0
  14. {dicube-0.2.0 → dicube-0.2.2}/.gitignore +0 -0
  15. {dicube-0.2.0 → dicube-0.2.2}/.gitmodules +0 -0
  16. {dicube-0.2.0 → dicube-0.2.2}/CMakeLists.txt +0 -0
  17. {dicube-0.2.0 → dicube-0.2.2}/README.md +0 -0
  18. {dicube-0.2.0 → dicube-0.2.2}/dicube/__init__.py +0 -0
  19. {dicube-0.2.0 → dicube-0.2.2}/dicube/codecs/__init__.py +0 -0
  20. {dicube-0.2.0 → dicube-0.2.2}/dicube/codecs/jph/__init__.py +0 -0
  21. {dicube-0.2.0 → dicube-0.2.2}/dicube/codecs/jph/codec.py +0 -0
  22. {dicube-0.2.0 → dicube-0.2.2}/dicube/codecs/jph/decode_complete.cpp +0 -0
  23. {dicube-0.2.0 → dicube-0.2.2}/dicube/codecs/jph/encode_complete.cpp +0 -0
  24. {dicube-0.2.0 → dicube-0.2.2}/dicube/core/__init__.py +0 -0
  25. {dicube-0.2.0 → dicube-0.2.2}/dicube/core/image.py +0 -0
  26. {dicube-0.2.0 → dicube-0.2.2}/dicube/core/pixel_header.py +0 -0
  27. {dicube-0.2.0 → dicube-0.2.2}/dicube/dicom/__init__.py +0 -0
  28. {dicube-0.2.0 → dicube-0.2.2}/dicube/dicom/dcb_streaming.py +0 -0
  29. {dicube-0.2.0 → dicube-0.2.2}/dicube/dicom/dicom_io.py +0 -0
  30. {dicube-0.2.0 → dicube-0.2.2}/dicube/dicom/dicom_meta.py +0 -0
  31. {dicube-0.2.0 → dicube-0.2.2}/dicube/dicom/dicom_status.py +0 -0
  32. {dicube-0.2.0 → dicube-0.2.2}/dicube/dicom/dicom_tags.py +0 -0
  33. {dicube-0.2.0 → dicube-0.2.2}/dicube/dicom/merge_utils.py +0 -0
  34. {dicube-0.2.0 → dicube-0.2.2}/dicube/dicom/space_from_meta.py +0 -0
  35. {dicube-0.2.0 → dicube-0.2.2}/dicube/exceptions.py +0 -0
  36. {dicube-0.2.0 → dicube-0.2.2}/dicube/storage/__init__.py +0 -0
  37. {dicube-0.2.0 → dicube-0.2.2}/dicube/storage/dcb_file.py +0 -0
  38. {dicube-0.2.0 → dicube-0.2.2}/dicube/storage/pixel_utils.py +0 -0
  39. {dicube-0.2.0 → dicube-0.2.2}/dicube/utils/__init__.py +0 -0
  40. {dicube-0.2.0 → dicube-0.2.2}/dicube/validation.py +0 -0
  41. {dicube-0.2.0 → dicube-0.2.2}/example/example.ipynb +0 -0
  42. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/.devcontainer/Dockerfile +0 -0
  43. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/.devcontainer/devcontainer.json +0 -0
  44. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/.github/FUNDING.yml +0 -0
  45. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/.github/workflows/ccp-workflow.yml +0 -0
  46. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/.github/workflows/codeql.yml +0 -0
  47. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/.github/workflows/emcc.yml +0 -0
  48. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/.gitignore +0 -0
  49. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/CMakeLists.txt +0 -0
  50. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/Dockerfile +0 -0
  51. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/LICENSE +0 -0
  52. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/README.md +0 -0
  53. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/_config.yml +0 -0
  54. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/docs/.gitignore +0 -0
  55. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/docs/Doxyfile +0 -0
  56. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/docs/OpenJPH_docs.css +0 -0
  57. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/docs/compiling.md +0 -0
  58. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/docs/docker.md +0 -0
  59. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/docs/doxygen_style.md +0 -0
  60. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/docs/status.md +0 -0
  61. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/docs/usage_examples.md +0 -0
  62. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/docs/web_demos.md +0 -0
  63. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/ojph_version.cmake +0 -0
  64. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/apps/CMakeLists.txt +0 -0
  65. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/apps/common/ojph_img_io.h +0 -0
  66. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/apps/common/ojph_sockets.h +0 -0
  67. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/apps/common/ojph_threads.h +0 -0
  68. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/apps/ojph_compress/CMakeLists.txt +0 -0
  69. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/apps/ojph_compress/ojph_compress.cpp +0 -0
  70. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/apps/ojph_expand/CMakeLists.txt +0 -0
  71. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/apps/ojph_expand/ojph_expand.cpp +0 -0
  72. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/apps/ojph_stream_expand/CMakeLists.txt +0 -0
  73. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/apps/ojph_stream_expand/ojph_stream_expand.cpp +0 -0
  74. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/apps/ojph_stream_expand/stream_expand_support.cpp +0 -0
  75. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/apps/ojph_stream_expand/stream_expand_support.h +0 -0
  76. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/apps/ojph_stream_expand/threaded_frame_processors.cpp +0 -0
  77. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/apps/ojph_stream_expand/threaded_frame_processors.h +0 -0
  78. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/apps/others/ojph_img_io.cpp +0 -0
  79. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/apps/others/ojph_img_io_avx2.cpp +0 -0
  80. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/apps/others/ojph_img_io_sse41.cpp +0 -0
  81. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/apps/others/ojph_sockets.cpp +0 -0
  82. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/apps/others/ojph_threads.cpp +0 -0
  83. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/CMakeLists.txt +0 -0
  84. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/codestream/ojph_bitbuffer_read.h +0 -0
  85. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/codestream/ojph_bitbuffer_write.h +0 -0
  86. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/codestream/ojph_codeblock.cpp +0 -0
  87. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/codestream/ojph_codeblock.h +0 -0
  88. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/codestream/ojph_codeblock_fun.cpp +0 -0
  89. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/codestream/ojph_codeblock_fun.h +0 -0
  90. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/codestream/ojph_codestream.cpp +0 -0
  91. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/codestream/ojph_codestream_avx.cpp +0 -0
  92. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/codestream/ojph_codestream_avx2.cpp +0 -0
  93. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/codestream/ojph_codestream_gen.cpp +0 -0
  94. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/codestream/ojph_codestream_local.cpp +0 -0
  95. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/codestream/ojph_codestream_local.h +0 -0
  96. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/codestream/ojph_codestream_sse.cpp +0 -0
  97. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/codestream/ojph_codestream_sse2.cpp +0 -0
  98. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/codestream/ojph_codestream_wasm.cpp +0 -0
  99. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/codestream/ojph_params.cpp +0 -0
  100. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/codestream/ojph_params_local.h +0 -0
  101. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/codestream/ojph_precinct.cpp +0 -0
  102. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/codestream/ojph_precinct.h +0 -0
  103. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/codestream/ojph_resolution.cpp +0 -0
  104. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/codestream/ojph_resolution.h +0 -0
  105. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/codestream/ojph_subband.cpp +0 -0
  106. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/codestream/ojph_subband.h +0 -0
  107. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/codestream/ojph_tile.cpp +0 -0
  108. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/codestream/ojph_tile.h +0 -0
  109. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/codestream/ojph_tile_comp.cpp +0 -0
  110. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/codestream/ojph_tile_comp.h +0 -0
  111. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/coding/ojph_block_common.cpp +0 -0
  112. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/coding/ojph_block_common.h +0 -0
  113. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/coding/ojph_block_decoder.h +0 -0
  114. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/coding/ojph_block_decoder32.cpp +0 -0
  115. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/coding/ojph_block_decoder64.cpp +0 -0
  116. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/coding/ojph_block_decoder_avx2.cpp +0 -0
  117. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/coding/ojph_block_decoder_ssse3.cpp +0 -0
  118. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/coding/ojph_block_decoder_wasm.cpp +0 -0
  119. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/coding/ojph_block_encoder.cpp +0 -0
  120. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/coding/ojph_block_encoder.h +0 -0
  121. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/coding/ojph_block_encoder_avx2.cpp +0 -0
  122. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/coding/ojph_block_encoder_avx512.cpp +0 -0
  123. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/coding/table0.h +0 -0
  124. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/coding/table1.h +0 -0
  125. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/common/ojph_arch.h +0 -0
  126. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/common/ojph_arg.h +0 -0
  127. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/common/ojph_base.h +0 -0
  128. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/common/ojph_codestream.h +0 -0
  129. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/common/ojph_defs.h +0 -0
  130. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/common/ojph_file.h +0 -0
  131. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/common/ojph_mem.h +0 -0
  132. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/common/ojph_message.h +0 -0
  133. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/common/ojph_params.h +0 -0
  134. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/common/ojph_version.h +0 -0
  135. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/others/ojph_arch.cpp +0 -0
  136. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/others/ojph_file.cpp +0 -0
  137. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/others/ojph_mem.cpp +0 -0
  138. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/others/ojph_message.cpp +0 -0
  139. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/transform/ojph_colour.cpp +0 -0
  140. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/transform/ojph_colour.h +0 -0
  141. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/transform/ojph_colour_avx.cpp +0 -0
  142. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/transform/ojph_colour_avx2.cpp +0 -0
  143. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/transform/ojph_colour_local.h +0 -0
  144. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/transform/ojph_colour_sse.cpp +0 -0
  145. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/transform/ojph_colour_sse2.cpp +0 -0
  146. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/transform/ojph_colour_wasm.cpp +0 -0
  147. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/transform/ojph_transform.cpp +0 -0
  148. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/transform/ojph_transform.h +0 -0
  149. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/transform/ojph_transform_avx.cpp +0 -0
  150. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/transform/ojph_transform_avx2.cpp +0 -0
  151. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/transform/ojph_transform_avx512.cpp +0 -0
  152. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/transform/ojph_transform_local.h +0 -0
  153. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/transform/ojph_transform_sse.cpp +0 -0
  154. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/transform/ojph_transform_sse2.cpp +0 -0
  155. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/core/transform/ojph_transform_wasm.cpp +0 -0
  156. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/openjph-config.cmake.in +0 -0
  157. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/src/openjph.pc.in +0 -0
  158. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/subprojects/.gitignore +0 -0
  159. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/subprojects/js/.gitignore +0 -0
  160. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/subprojects/js/CMakeLists.txt +0 -0
  161. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/subprojects/js/emscripten-docker.sh +0 -0
  162. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/subprojects/js/html/.gitignore +0 -0
  163. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/subprojects/js/html/index.html +0 -0
  164. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/subprojects/js/html/libopenjph.js +0 -0
  165. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/subprojects/js/html/libopenjph.wasm +0 -0
  166. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/subprojects/js/html/libopenjph_simd.js +0 -0
  167. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/subprojects/js/html/libopenjph_simd.wasm +0 -0
  168. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/subprojects/js/html/test.j2c +0 -0
  169. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/subprojects/js/src/ojph_wrapper.cpp +0 -0
  170. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/subprojects/js/standalone/README.md +0 -0
  171. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/subprojects/js/standalone/com_decom.sh +0 -0
  172. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/subprojects/js/standalone/com_decom_yuv.sh +0 -0
  173. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/target_arch.cmake +0 -0
  174. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/tests/CMakeLists.txt +0 -0
  175. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/tests/compare_files.cpp +0 -0
  176. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/tests/mse_pae.cmake +0 -0
  177. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/tests/mse_pae.cpp +0 -0
  178. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/tests/test_executables.cpp +0 -0
  179. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/tests/test_helpers/Readme.md +0 -0
  180. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/tests/test_helpers/convert_mse_pae_to_tests.cpp +0 -0
  181. {dicube-0.2.0 → dicube-0.2.2}/source/OpenJPH/tests/test_helpers/ht_cmdlines.txt +0 -0
  182. {dicube-0.2.0 → dicube-0.2.2}/tests/conftest.py +0 -0
  183. {dicube-0.2.0 → dicube-0.2.2}/tests/test_codec_integration.py +0 -0
  184. {dicube-0.2.0 → dicube-0.2.2}/tests/test_codec_system.py +0 -0
  185. {dicube-0.2.0 → dicube-0.2.2}/tests/test_dcb_streaming.py +0 -0
  186. {dicube-0.2.0 → dicube-0.2.2}/tests/test_dicom_meta.py +0 -0
  187. {dicube-0.2.0 → dicube-0.2.2}/tests/test_dicom_status.py +0 -0
  188. {dicube-0.2.0 → dicube-0.2.2}/tests/test_dicom_tags.py +0 -0
  189. {dicube-0.2.0 → dicube-0.2.2}/tests/test_exceptions.py +0 -0
  190. {dicube-0.2.0 → dicube-0.2.2}/tests/test_image.py +0 -0
  191. {dicube-0.2.0 → dicube-0.2.2}/tests/test_image_exceptions.py +0 -0
  192. {dicube-0.2.0 → dicube-0.2.2}/tests/test_validation.py +0 -0
@@ -25,6 +25,13 @@ jobs:
25
25
  # Ensure full history to prevent setuptools_scm issues
26
26
  fetch-depth: 0
27
27
 
28
+ # Set up QEMU for cross-platform builds (Linux only)
29
+ - name: Set up QEMU
30
+ if: runner.os == 'Linux'
31
+ uses: docker/setup-qemu-action@v3
32
+ with:
33
+ platforms: arm64
34
+
28
35
  # For Windows, we need to manually install pip
29
36
  - name: Set up Windows environment
30
37
  if: runner.os == 'Windows'
@@ -38,10 +45,10 @@ jobs:
38
45
  python -m cibuildwheel
39
46
  env:
40
47
  CIBW_BUILD: cp38-* cp39-* cp310-* cp311-* cp312-*
41
- CIBW_SKIP: pp* *-musllinux*
42
- CIBW_ARCHS_LINUX: auto
48
+ CIBW_SKIP: pp* *-musllinux* *-win32 *-i686
49
+ CIBW_ARCHS_LINUX: x86_64 aarch64
43
50
  CIBW_ARCHS_MACOS: x86_64 arm64
44
- CIBW_ARCHS_WINDOWS: auto
51
+ CIBW_ARCHS_WINDOWS: AMD64
45
52
 
46
53
  # 更健壮的依赖安装方式
47
54
  CIBW_BEFORE_ALL_LINUX: |
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: dicube
3
- Version: 0.2.0
3
+ Version: 0.2.2
4
4
  Summary: Medical Image Storage Library with DICOM compatibility
5
5
  Author: Fangzhou Liao
6
6
  License: MIT
@@ -38,6 +38,7 @@ Requires-Dist: mypy>=1.0.0; extra == "dev"
38
38
  Requires-Dist: build>=0.8.0; extra == "dev"
39
39
  Requires-Dist: pylibjpeg>=2.0; extra == "dev"
40
40
  Requires-Dist: pylibjpeg-openjpeg>=2.0; extra == "dev"
41
+ Requires-Dist: nibabel>=3.2.0; extra == "dev"
41
42
  Provides-Extra: all
42
43
  Requires-Dist: pybind11>=2.10.0; extra == "all"
43
44
  Requires-Dist: nibabel>=3.2.0; extra == "all"
@@ -239,6 +239,12 @@ class DicomCubeImageIO:
239
239
  intercept = meta.get_shared_value(CommonTags.RescaleIntercept)
240
240
  wind_center = meta.get_shared_value(CommonTags.WindowCenter)
241
241
  wind_width = meta.get_shared_value(CommonTags.WindowWidth)
242
+ try:
243
+ wind_center = float(wind_center)
244
+ wind_width = float(wind_width)
245
+ except:
246
+ wind_center = None
247
+ wind_width = None
242
248
 
243
249
  # Create pixel_header
244
250
  pixel_header = PixelDataHeader(
@@ -246,8 +252,8 @@ class DicomCubeImageIO:
246
252
  RescaleIntercept=float(intercept) if intercept is not None else 0.0,
247
253
  OriginalPixelDtype=str(images[0].dtype),
248
254
  PixelDtype=str(images[0].dtype),
249
- WindowCenter=float(wind_center) if wind_center is not None else None,
250
- WindowWidth=float(wind_width) if wind_width is not None else None,
255
+ WindowCenter=wind_center,
256
+ WindowWidth=wind_width,
251
257
  )
252
258
 
253
259
  # Validate PixelDataHeader initialization success
@@ -49,6 +49,7 @@ dev = [
49
49
  "build>=0.8.0",
50
50
  "pylibjpeg>=2.0",
51
51
  "pylibjpeg-openjpeg>=2.0",
52
+ "nibabel>=3.2.0",
52
53
  ]
53
54
  all = ["pybind11>=2.10.0", "nibabel>=3.2.0"]
54
55
 
@@ -87,6 +87,12 @@ class TestFileIOIntegration:
87
87
 
88
88
  def test_load_from_nifti_nonexistent_file(self):
89
89
  """Test loading from non-existent NIfTI file."""
90
+ # Skip test if nibabel is not available
91
+ try:
92
+ import nibabel
93
+ except ImportError:
94
+ pytest.skip("nibabel not available, skipping NIfTI test")
95
+
90
96
  with pytest.raises(InvalidCubeFileError) as error:
91
97
  DicomCubeImageIO.load_from_nifti("/nonexistent/file.nii")
92
98
 
@@ -95,6 +101,12 @@ class TestFileIOIntegration:
95
101
 
96
102
  def test_save_to_nifti_without_space(self):
97
103
  """Test saving to NIfTI without space information."""
104
+ # Skip test if nibabel is not available
105
+ try:
106
+ import nibabel
107
+ except ImportError:
108
+ pytest.skip("nibabel not available, skipping NIfTI test")
109
+
98
110
  # Create a simple image without space information
99
111
  raw_data = np.random.randint(0, 1000, size=(5, 10, 15), dtype=np.uint16)
100
112
  pixel_header = PixelDataHeader(
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes