nxtomomill 2.1.5__tar.gz → 2.2.0.dev1__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 (177) hide show
  1. {nxtomomill-2.1.5/nxtomomill.egg-info → nxtomomill-2.2.0.dev1}/PKG-INFO +3 -2
  2. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/doc/conf.py +1 -1
  3. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/__init__.py +5 -2
  4. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/__main__.py +2 -2
  5. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/app/patch_nx.py +1 -1
  6. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/app/split_nxfile.py +1 -1
  7. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/app/tests/test_edf2nx_app.py +1 -1
  8. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/app/tests/test_patch_nx_app.py +1 -1
  9. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/app/tests/test_split_nxfile_app.py +2 -2
  10. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/app/z_concatenate_scans.py +4 -4
  11. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/dxfile/dxfileconverter.py +1 -1
  12. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/dxfile/tests/test_dxfile.py +1 -1
  13. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/edf/checks.py +1 -1
  14. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/edf/edfconverter.py +4 -4
  15. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/edf/tests/test_checks.py +2 -2
  16. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/edf/tests/test_edf2nx.py +6 -6
  17. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/edf/tests/test_edf2nx_check.py +2 -2
  18. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/fluo/fluoscan.py +3 -3
  19. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/fscan/fscanconverter.py +2 -2
  20. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/hdf5/acquisition/tests/test_acquisition.py +3 -2
  21. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/hdf5/acquisition/tests/test_acquisition_utils.py +1 -1
  22. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/hdf5/acquisition/tests/test_back_and_forth.py +2 -1
  23. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/hdf5/acquisition/tests/test_bliss_tomo_config.py +3 -2
  24. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/hdf5/acquisition/tests/test_holotomo.py +2 -1
  25. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/hdf5/acquisition/tests/test_legacy.py +4 -2
  26. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/hdf5/acquisition/tests/test_multitomo_zseries.py +2 -1
  27. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/hdf5/acquisition/tests/test_multitomoacquisition.py +4 -4
  28. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/hdf5/hdf5converter.py +2 -2
  29. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/hdf5/post_processing/dark_flat_copy.py +1 -1
  30. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/hdf5/tests/test_frame_flip.py +4 -0
  31. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/hdf5/tests/test_h52nx_utils.py +5 -5
  32. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/hdf5/tests/test_hdf5converter.py +17 -22
  33. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/models/h52nx/FrameGroup.py +1 -1
  34. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/models/utils.py +1 -1
  35. nxtomomill-2.2.0.dev1/nxtomomill/tests/test_version.py +7 -0
  36. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/tests/utils/bliss.py +1 -1
  37. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/tests/utils/dxfile.py +1 -1
  38. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/utils/_os.py +1 -1
  39. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/utils/flat_reducer.py +2 -2
  40. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/utils/nexus.py +1 -1
  41. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/utils/tests/test_flat_reducer.py +2 -2
  42. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/utils/tests/test_utils.py +22 -24
  43. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/utils/utils.py +1 -2
  44. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1/nxtomomill.egg-info}/PKG-INFO +3 -2
  45. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill.egg-info/SOURCES.txt +0 -1
  46. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill.egg-info/requires.txt +2 -1
  47. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/pyproject.toml +3 -5
  48. nxtomomill-2.1.5/nxtomomill/tests/test_version.py +0 -7
  49. nxtomomill-2.1.5/nxtomomill/version.py +0 -109
  50. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/LICENSE +0 -0
  51. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/README.md +0 -0
  52. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/app/__init__.py +0 -0
  53. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/app/blissfluo2nx.py +0 -0
  54. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/app/blissfluoconfig.py +0 -0
  55. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/app/dxfile2nx.py +0 -0
  56. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/app/edf2nx.py +0 -0
  57. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/app/edf2nx_check.py +0 -0
  58. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/app/edfconfig.py +0 -0
  59. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/app/fluo2nx.py +0 -0
  60. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/app/fluoconfig.py +0 -0
  61. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/app/fscan2nx.py +0 -0
  62. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/app/h52nx.py +0 -0
  63. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/app/h5config.py +0 -0
  64. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/app/nxcopy.py +0 -0
  65. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/app/tests/test_bliss_fluo2nx_app.py +0 -0
  66. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/app/tests/test_dxfile2nx_app.py +0 -0
  67. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/app/tests/test_edf_config_app.py +0 -0
  68. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/app/tests/test_fluo2nx_app.py +0 -0
  69. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/app/tests/test_h52nx_app.py +0 -0
  70. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/app/tests/test_h5_config_app.py +0 -0
  71. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/app/tests/test_nx_copy.py +0 -0
  72. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/app/zstages2nxs.py +0 -0
  73. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/__init__.py +0 -0
  74. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/baseconverter.py +0 -0
  75. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/dxfile/__init__.py +0 -0
  76. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/edf/__init__.py +0 -0
  77. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/fluo/__init__.py +0 -0
  78. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/fluo/blissfluoscan.py +0 -0
  79. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/fluo/fluoconverter.py +0 -0
  80. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/fluo/tests/__init__.py +0 -0
  81. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/fluo/tests/test_fluoscan2D.py +0 -0
  82. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/fluo/tests/test_fluoscan3D.py +0 -0
  83. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/fscan/__init__.py +0 -0
  84. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/hdf5/__init__.py +0 -0
  85. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/hdf5/acquisition/__init__.py +0 -0
  86. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/hdf5/acquisition/_bliss_activeconfig.py +0 -0
  87. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/hdf5/acquisition/backandforth.py +0 -0
  88. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/hdf5/acquisition/baseacquisition.py +0 -0
  89. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/hdf5/acquisition/blisstomoconfig.py +0 -0
  90. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/hdf5/acquisition/multitomo.py +0 -0
  91. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/hdf5/acquisition/pcotomoacquisition.py +0 -0
  92. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/hdf5/acquisition/standardacquisition.py +0 -0
  93. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/hdf5/acquisition/tests/bliss_tomo_datasets.py +0 -0
  94. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/hdf5/acquisition/utils/__init__.py +0 -0
  95. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/hdf5/acquisition/utils/_context.py +0 -0
  96. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/hdf5/acquisition/utils/_keys.py +0 -0
  97. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/hdf5/acquisition/utils/_scan_type_finder.py +0 -0
  98. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/hdf5/acquisition/utils/bliss_scan_type.py +0 -0
  99. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/hdf5/acquisition/utils/detector.py +0 -0
  100. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/hdf5/acquisition/utils/machine_current.py +0 -0
  101. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/hdf5/acquisition/utils/series.py +0 -0
  102. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/hdf5/acquisition/utils/timestamps.py +0 -0
  103. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/hdf5/acquisition/zseriesacquisition.py +0 -0
  104. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/hdf5/acquisitionConstructor.py +0 -0
  105. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/hdf5/post_processing/__init__.py +0 -0
  106. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/hdf5/utils.py +0 -0
  107. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/converter/version.py +0 -0
  108. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/io/__init__.py +0 -0
  109. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/io/config/__init__.py +0 -0
  110. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/io/config/configbase.py +0 -0
  111. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/io/config/confighandler.py +0 -0
  112. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/io/config/dxconfig.py +0 -0
  113. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/io/config/edfconfig.py +0 -0
  114. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/io/config/fluoconfig.py +0 -0
  115. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/io/config/hdf5config.py +0 -0
  116. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/io/config/tests/__init__.py +0 -0
  117. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/io/config/tests/test_confighandler.py +0 -0
  118. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/io/tests/test_frame_group.py +0 -0
  119. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/io/tests/utils.py +0 -0
  120. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/models/__init__.py +0 -0
  121. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/models/base/ConfigBase.py +0 -0
  122. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/models/base/FrmFlatToNestedBase.py +0 -0
  123. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/models/base/NestedModelBase.py +0 -0
  124. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/models/base/__init__.py +0 -0
  125. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/models/base/general_section.py +0 -0
  126. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/models/base/instrument_section.py +0 -0
  127. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/models/base/source_section.py +0 -0
  128. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/models/blissfluo2nx/__init__.py +0 -0
  129. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/models/blissfluo2nx/blissfluo2nx.py +0 -0
  130. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/models/blissfluo2nx/general_section.py +0 -0
  131. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/models/dx2nx.py +0 -0
  132. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/models/edf2nx/__init__.py +0 -0
  133. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/models/edf2nx/dark_and_flat_section.py +0 -0
  134. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/models/edf2nx/detector_section.py +0 -0
  135. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/models/edf2nx/edf2nx.py +0 -0
  136. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/models/edf2nx/general_section.py +0 -0
  137. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/models/edf2nx/keys_section.py +0 -0
  138. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/models/edf2nx/sample_section.py +0 -0
  139. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/models/edf2nx/unit_section.py +0 -0
  140. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/models/fluo2nx/__init__.py +0 -0
  141. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/models/fluo2nx/fluo2nx.py +0 -0
  142. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/models/fluo2nx/general_section.py +0 -0
  143. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/models/h52nx/__init__.py +0 -0
  144. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/models/h52nx/_acquisitionstep.py +0 -0
  145. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/models/h52nx/_context.py +0 -0
  146. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/models/h52nx/entries_and_title_section.py +0 -0
  147. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/models/h52nx/extra_params_section.py +0 -0
  148. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/models/h52nx/frame_type_section.py +0 -0
  149. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/models/h52nx/general_section.py +0 -0
  150. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/models/h52nx/h52nx.py +0 -0
  151. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/models/h52nx/keys_section.py +0 -0
  152. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/models/h52nx/multitomo_section.py +0 -0
  153. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/models/tests/test_context.py +0 -0
  154. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/models/tests/test_edf2nx_model.py +0 -0
  155. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/models/tests/test_fluo2nx_model.py +0 -0
  156. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/models/tests/test_h52nx_model.py +0 -0
  157. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/models/tests/test_io_utils.py +0 -0
  158. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/settings.py +0 -0
  159. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/test.py +0 -0
  160. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/tests/__init__.py +0 -0
  161. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/tests/datasets.py +0 -0
  162. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/tests/resources/__init__.py +0 -0
  163. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/tests/resources/edf2nx_config_files/__init__.py +0 -0
  164. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/tests/resources/fluo2nx_config_files/__init__.py +0 -0
  165. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/tests/resources/h52nx_config_files/__init__.py +0 -0
  166. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/tests/utils/__init__.py +0 -0
  167. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/utils/__init__.py +0 -0
  168. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/utils/h5pyutils.py +0 -0
  169. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/utils/hdf5.py +0 -0
  170. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/utils/io.py +0 -0
  171. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/utils/pintutils.py +0 -0
  172. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/utils/tests/test_h5pyutils.py +0 -0
  173. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill/utils/tests/test_nexus_utils.py +0 -0
  174. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill.egg-info/dependency_links.txt +0 -0
  175. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill.egg-info/entry_points.txt +0 -0
  176. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/nxtomomill.egg-info/top_level.txt +0 -0
  177. {nxtomomill-2.1.5 → nxtomomill-2.2.0.dev1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nxtomomill
3
- Version: 2.1.5
3
+ Version: 2.2.0.dev1
4
4
  Summary: applications and library to convert raw format to NXtomo format
5
5
  Author-email: Henri Payno <henri.payno@esrf.fr>, Pierre Paleo <pierre.paleo@esrf.fr>, Pierre-Olivier Autran <pierre-olivier.autran@esrf.fr>, Jérôme Lesaint <jerome.lesaint@esrf.fr>, Alessandro Mirone <mirone@esrf.fr>
6
6
  License:
@@ -58,7 +58,8 @@ Requires-Dist: silx>=2.0
58
58
  Requires-Dist: nxtomo>=3.1.0dev1
59
59
  Requires-Dist: pint
60
60
  Requires-Dist: packaging
61
- Requires-Dist: tomoscan[full]<3.0,>=2.2.0a4
61
+ Requires-Dist: tomoscan>=3.0.0dev0
62
+ Requires-Dist: tomobase>=0.0.0dev0
62
63
  Requires-Dist: tqdm
63
64
  Requires-Dist: pydantic
64
65
  Requires-Dist: eval_type_backport; python_version < "3.10"
@@ -9,7 +9,7 @@
9
9
  from importlib.metadata import version as get_version
10
10
 
11
11
  project = "nxtomomill"
12
- copyright = "2020-2025, ESRF"
12
+ copyright = "2020-2026, ESRF"
13
13
  author = "P.-O. Autran, J. Lesaint, A. Mirone, C. Nemoz, P. Paleo, H. Payno, A. Sole, N. Vigano"
14
14
 
15
15
  release = get_version("nxtomomill")
@@ -4,9 +4,12 @@ import atexit
4
4
 
5
5
  import logging
6
6
 
7
- from .version import version as __version
7
+ from importlib.metadata import version as _get_version, PackageNotFoundError
8
8
 
9
- __version__ = __version
9
+ try:
10
+ __version__ = _get_version("nxtomomill")
11
+ except PackageNotFoundError:
12
+ __version__ = "unknown"
10
13
 
11
14
  _logger = logging.getLogger(__name__)
12
15
 
@@ -12,7 +12,7 @@ from collections import namedtuple
12
12
 
13
13
  from silx.utils.launcher import Launcher as _Launcher
14
14
 
15
- import nxtomomill.version
15
+ import nxtomomill
16
16
  from nxtomomill.utils.io import deprecated_warning
17
17
 
18
18
  logging.basicConfig()
@@ -118,7 +118,7 @@ def main():
118
118
 
119
119
  :returns: The execution status
120
120
  """
121
- _version = nxtomomill.version.version
121
+ _version = nxtomomill.__version__
122
122
  launcher = Launcher(prog="nxtomomill", version=_version)
123
123
  launcher.add_command(
124
124
  "nx-copy",
@@ -13,7 +13,7 @@ import os
13
13
 
14
14
  from silx.io.url import DataUrl
15
15
  from silx.utils.enum import Enum as _Enum
16
- from tomoscan.esrf.scan.nxtomoscan import NXtomoScan
16
+ from tomoscan.scans.nxtomoscan import NXtomoScan
17
17
 
18
18
  from nxtomomill import utils
19
19
  from nxtomo.nxobject.nxdetector import ImageKey
@@ -11,7 +11,7 @@ import logging
11
11
  import string
12
12
 
13
13
  from nxtomo.application.nxtomo import NXtomo
14
- from tomoscan.esrf.scan.nxtomoscan import NXtomoScan
14
+ from tomoscan.scans.nxtomoscan import NXtomoScan
15
15
  from silx.io.utils import open as open_hdf5
16
16
  from nxtomomill.utils._os import abspath
17
17
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  import os
4
4
 
5
- from tomoscan.esrf.mock import MockEDF
5
+ from tomoscan.tests.mock import MockEDF
6
6
 
7
7
  from nxtomomill.app.edf2nx import main
8
8
 
@@ -3,7 +3,7 @@
3
3
  import os
4
4
  import tempfile
5
5
 
6
- from tomoscan.esrf.mock import MockNXtomo
6
+ from tomoscan.tests.mock import MockNXtomo
7
7
 
8
8
  from nxtomomill.app.patch_nx import main
9
9
 
@@ -2,7 +2,8 @@ import os
2
2
  import numpy
3
3
  import pytest
4
4
  import pint
5
- from tomoscan.io import HDF5File, get_swmr_mode
5
+ from h5py import File as HDF5File
6
+
6
7
  from nxtomo.application.nxtomo import NXtomo
7
8
  from nxtomomill.app.split_nxfile import split
8
9
 
@@ -73,7 +74,6 @@ def test_split_nxfile(tmp_path, duplicate_data):
73
74
  with HDF5File(
74
75
  tmp_path / "test_split_nx_file/output_dir_2/entry0002.nx",
75
76
  mode="r",
76
- swmr=get_swmr_mode(),
77
77
  ) as h5f:
78
78
  assert "entry0002" in h5f.keys()
79
79
  assert "entry0000" not in h5f.keys()
@@ -9,10 +9,10 @@ import json
9
9
  import pint
10
10
 
11
11
  import numpy as np
12
+ from h5py import File as HDF5File
12
13
  from silx.io.url import DataUrl
13
- from tomoscan.esrf.scan.nxtomoscan import NXtomoScan
14
- from tomoscan.scanbase import ReducedFramesInfos
15
- from tomoscan.io import HDF5File, get_swmr_mode
14
+ from tomoscan.scans.nxtomoscan import NXtomoScan
15
+ from tomoscan.scans.scanbase import ReducedFramesInfos
16
16
 
17
17
  from nxtomo.application.nxtomo import NXtomo
18
18
  from nxtomo.nxobject.utils import concatenate as nx_concatenate
@@ -178,7 +178,7 @@ def get_arguments(argv):
178
178
  args.pixel_size_m = float(args.pixel_size_m)
179
179
  else:
180
180
  args.overwrite_pixel_size = False
181
- with HDF5File(args.file_list[0], "r", swmr=get_swmr_mode()) as h5f:
181
+ with HDF5File(args.file_list[0], "r") as h5f:
182
182
  args.pixel_size_m = h5f[
183
183
  os.path.join(args.entry_name, "instrument", "detector", "x_pixel_size")
184
184
  ][()]
@@ -14,7 +14,7 @@ import h5py
14
14
  import numpy
15
15
  from silx.io.url import DataUrl
16
16
  from silx.io.utils import get_data, h5py_read_dataset
17
- from tomoscan.io import HDF5File
17
+ from nxtomo.io import HDF5File
18
18
  from nxtomo.nxobject.nxdetector import FieldOfView, ImageKey
19
19
  from nxtomo.utils.frameappender import FrameAppender
20
20
 
@@ -9,7 +9,7 @@ from nxtomomill.converter.dxfile.dxfileconverter import from_dx_config_to_nx
9
9
  from nxtomomill.models.dx2nx import DX2nxModel
10
10
  from nxtomomill.tests.utils.dxfile import MockDxFile
11
11
 
12
- from tomoscan.esrf.scan.nxtomoscan import NXtomoScan
12
+ from tomoscan.scans.nxtomoscan import NXtomoScan
13
13
  from tomoscan.validator import is_valid_for_reconstruction
14
14
 
15
15
  from silx.io.utils import get_data, h5py_read_dataset
@@ -4,7 +4,7 @@ from silx.utils.enum import Enum as _Enum
4
4
  from silx.io.utils import open as open_hdf5
5
5
  from silx.io.utils import get_data
6
6
 
7
- from tomoscan.esrf.scan.nxtomoscan import NXtomoScan
7
+ from tomoscan.scans.nxtomoscan import NXtomoScan
8
8
  from nxtomo.paths.nxtomo import get_paths as get_nexus_paths
9
9
 
10
10
  _logger = logging.getLogger(__name__)
@@ -19,10 +19,10 @@ from tqdm import tqdm
19
19
  from silx.io.dictdump import dicttoh5
20
20
  from silx.utils.deprecation import deprecated
21
21
 
22
- from tomoscan.esrf.scan.edfscan import EDFTomoScan
23
- from tomoscan.esrf.scan.nxtomoscan import NXtomoScan
24
- from tomoscan.esrf.scan.utils import get_parameters_frm_par_or_info
25
- from tomoscan.io import HDF5File
22
+ from tomoscan.scans.edfscan import EDFTomoScan
23
+ from tomoscan.scans.nxtomoscan import NXtomoScan
24
+ from tomoscan.scan_utils import get_parameters_frm_par_or_info
25
+ from nxtomo.io import HDF5File
26
26
 
27
27
  from nxtomo.paths.nxtomo import get_paths as get_nexus_paths
28
28
  from nxtomo.nxobject.nxdetector import FieldOfView, ImageKey
@@ -3,8 +3,8 @@ import numpy
3
3
  from fabio.edfimage import EdfImage
4
4
  from silx.io.url import DataUrl
5
5
  from nxtomomill.converter.edf.checks import compare_volumes
6
- from tomoscan.esrf.scan.nxtomoscan import NXtomoScan
7
- from tomoscan.io import HDF5File
6
+ from tomoscan.scans.nxtomoscan import NXtomoScan
7
+ from nxtomo.io import HDF5File
8
8
 
9
9
 
10
10
  def test_compare_volumes(tmp_path):
@@ -10,13 +10,13 @@ import numpy
10
10
  import pytest
11
11
 
12
12
  from tqdm import tqdm
13
+ from h5py import File as HDF5File
13
14
 
14
- from tomoscan.esrf.mock import MockEDF
15
- from tomoscan.esrf.scan.edfscan import EDFTomoScan
16
- from tomoscan.esrf.scan.nxtomoscan import NXtomoScan
17
- from tomoscan.esrf.scan.utils import dump_info_file
15
+ from tomoscan.tests.mock import MockEDF
16
+ from tomoscan.scans.edfscan import EDFTomoScan
17
+ from tomoscan.scans.nxtomoscan import NXtomoScan
18
+ from tomoscan.scan_utils import dump_info_file
18
19
  from tomoscan.validator import is_valid_for_reconstruction
19
- from tomoscan.io import HDF5File, get_swmr_mode
20
20
 
21
21
  from nxtomo.io import cwd_context
22
22
 
@@ -83,7 +83,7 @@ def test_edf_to_nx_converter(
83
83
  # this will work with the tomotools suite as tomoscan will automatically create a working dircetory context when reading the file.
84
84
  # but this can be an issue when sharing data or reading data outside the tomotools suite
85
85
  with cwd_context(output_file):
86
- with HDF5File(output_file, mode="r", swmr=get_swmr_mode()) as h5f:
86
+ with HDF5File(output_file, mode="r") as h5f:
87
87
  detector_data_path = f"/{nx_entry}/instrument/detector/data"
88
88
  assert (
89
89
  f"/{nx_entry}/instrument/detector/data" in h5f
@@ -1,8 +1,8 @@
1
1
  import os
2
2
  import pytest
3
3
  from glob import glob
4
- from tomoscan.esrf.mock import MockEDF
5
- from tomoscan.esrf.scan.edfscan import EDFTomoScan
4
+ from tomoscan.tests.mock import MockEDF
5
+ from tomoscan.scans.edfscan import EDFTomoScan
6
6
  from nxtomomill.converter.edf.checks import OUPUT_CHECK
7
7
  from nxtomomill.models.edf2nx import EDF2nxModel
8
8
  from nxtomomill.converter.edf.edfconverter import from_edf_to_nx, post_processing_check
@@ -9,9 +9,9 @@ import pint
9
9
 
10
10
  import numpy
11
11
 
12
- from tomoscan.identifier import ScanIdentifier
13
- from tomoscan.scanbase import TomoScanBase
14
- from tomoscan.utils import docstring
12
+ from tomoscan.identifiers.base import ScanIdentifier
13
+ from tomoscan.scans.scanbase import TomoScanBase
14
+ from tomobase.utils import docstring
15
15
 
16
16
 
17
17
  from dataclasses import dataclass, field
@@ -2,10 +2,10 @@ import logging
2
2
  from posixpath import join
3
3
  import numpy as np
4
4
  import pint
5
- from tomoscan.esrf.scan.h5utils import get_h5_value
5
+ from tomoscan.h5utils import get_h5_value
6
6
  from nxtomo.application.nxtomo import NXtomo
7
7
  from nxtomo.nxobject.nxdetector import ImageKey
8
- from tomoscan.esrf.scan.fscan import FscanDataset, list_datasets
8
+ from tomoscan.fscan import FscanDataset, list_datasets
9
9
  from silx.utils.deprecation import deprecated
10
10
 
11
11
  _logger = logging.getLogger(__name__)
@@ -7,7 +7,7 @@ import h5py
7
7
  import pytest
8
8
  from silx.io.url import DataUrl
9
9
 
10
- from tomoscan.io import HDF5File
10
+ from nxtomo.io import HDF5File
11
11
  from nxtomomill.converter.hdf5.acquisition.baseacquisition import (
12
12
  BaseAcquisition,
13
13
  get_dataset_name_from_motor,
@@ -93,7 +93,8 @@ def test_frame_flips(tmp_path, monkeypatch):
93
93
  )
94
94
 
95
95
  scan_dir = GitlabDataset.get_dataset("h5_datasets")
96
- assert scan_dir is not None
96
+ if scan_dir is None:
97
+ raise FileNotFoundError("Unable to download h5_datasets not found")
97
98
 
98
99
  configuration = TomoHDF5Config()
99
100
  configuration.input_file = os.path.join(
@@ -6,7 +6,7 @@ import pytest
6
6
  import h5py
7
7
 
8
8
  from silx.io.url import DataUrl
9
- from tomoscan.io import HDF5File
9
+ from nxtomo.io import HDF5File
10
10
  from nxtomo.nxobject.nxdetector import ImageKey
11
11
 
12
12
  from nxtomomill.io.config import TomoHDF5Config
@@ -17,7 +17,8 @@ _ureg = pint.get_application_registry()
17
17
  def test_back_and_forth_conversion(tmp_path):
18
18
  """test nxtomomill fluo2nx CLI with default parameters (handle all detectors found)"""
19
19
  scan_dir = GitlabDataset.get_dataset("h5_datasets")
20
- assert scan_dir is not None
20
+ if scan_dir is None:
21
+ raise FileNotFoundError("Unable to download h5_datasets not found")
21
22
  input_file = os.path.join(scan_dir, "back_and_forth/bliss_tomo_2025_06_17.h5")
22
23
 
23
24
  output_file = os.path.join(tmp_path, "nexus_file.nx")
@@ -1,7 +1,8 @@
1
1
  import pytest
2
2
  import os
3
3
  import numpy
4
- from tomoscan.io import HDF5File, get_swmr_mode
4
+ from h5py import File as HDF5File
5
+
5
6
  from nxtomomill.converter.hdf5.acquisition.blisstomoconfig import TomoConfig
6
7
 
7
8
 
@@ -56,7 +57,7 @@ def test_tomo_config(tmp_path):
56
57
  with pytest.raises(KeyError):
57
58
  TomoConfig.from_technique_group(h5s)
58
59
 
59
- with HDF5File(file_path, mode="r", swmr=get_swmr_mode()) as h5s:
60
+ with HDF5File(file_path, mode="r") as h5s:
60
61
  tomo_config = TomoConfig.from_technique_group(h5s["/0/test/instrument"])
61
62
 
62
63
  numpy.testing.assert_array_equal(
@@ -42,7 +42,8 @@ def test_holotomo_conversion_id16a(tmp_path):
42
42
  "h5_datasets", "holotomo", "id16a", "SiemensStar_HT_025nm_0002.h5"
43
43
  )
44
44
  input_file = GitlabDataset.get_dataset(dataset_file)
45
- assert os.path.exists(input_file)
45
+ if input_file is None:
46
+ raise FileNotFoundError(f"Unable to download {dataset_file} not found")
46
47
  output_file = os.path.join(tmp_path, "nexus_file.nx")
47
48
 
48
49
  assert not os.path.exists(output_file), "output_file exists already"
@@ -19,14 +19,16 @@ _ureg = pint.get_application_registry()
19
19
  @pytest.fixture(scope="class")
20
20
  def S59_68p41b_16mm_6p5mm_F8_0001_Dataset() -> Path:
21
21
  scan_dir = GitlabDataset.get_dataset("h5_datasets")
22
- assert scan_dir is not None
22
+ if scan_dir is None:
23
+ raise FileNotFoundError("Unable to download h5_datasets not found")
23
24
  return Path(os.path.join(scan_dir, "legacy", "S59_68p41b_16mm_6p5mm_F8_0001.h5"))
24
25
 
25
26
 
26
27
  @pytest.fixture(scope="class")
27
28
  def WGN_01_0000_P_110_8128_D_129_Dataset():
28
29
  scan_dir = GitlabDataset.get_dataset("h5_datasets")
29
- assert scan_dir is not None
30
+ if scan_dir is None:
31
+ raise FileNotFoundError("Unable to download h5_datasets not found")
30
32
  return Path(os.path.join(scan_dir, "legacy", "WGN_01_0000_P_110_8128_D_129.h5"))
31
33
 
32
34
 
@@ -17,7 +17,8 @@ def test_multitomo_z_series(tmp_path):
17
17
  """test nxtomomill h52nx with a 'multitomo z-series' acquisition"""
18
18
 
19
19
  scan_dir = GitlabDataset.get_dataset("h5_datasets")
20
- assert scan_dir is not None
20
+ if scan_dir is None:
21
+ raise FileNotFoundError("Unable to download h5_datasets not found")
21
22
  input_file = os.path.join(
22
23
  scan_dir, "multitomo/Zseries_Volcano_passedevis_-1.7-aka720-bis_0002.h5"
23
24
  )
@@ -3,12 +3,12 @@
3
3
  import os
4
4
  import numpy
5
5
  import pytest
6
+ from h5py import File as HDF5File
6
7
 
7
8
  from nxtomo.application.nxtomo import NXtomo
8
9
  from nxtomo.nxobject.nxdetector import ImageKey
9
10
 
10
- from tomoscan.io import HDF5File, get_swmr_mode
11
- from tomoscan.esrf.scan.nxtomoscan import NXtomoScan
11
+ from tomoscan.scans.nxtomoscan import NXtomoScan
12
12
 
13
13
  from nxtomomill import converter
14
14
  from nxtomomill.converter.hdf5.acquisition.multitomo import MultiTomoAcquisition
@@ -61,7 +61,7 @@ def test_multitomo_conversion(tmp_path, config: dict, multitomo_version: int):
61
61
  assert len(result) == nb_loop * nb_tomo
62
62
  n_projs = 10 * nb_loop * nb_tomo
63
63
  # check saved datasets
64
- with HDF5File(sample_file, mode="r", swmr=get_swmr_mode()) as h5f:
64
+ with HDF5File(sample_file, mode="r") as h5f:
65
65
  darks = h5f["2.1/instrument/pcolinux/data"][()]
66
66
  assert len(darks) == n_darks
67
67
  flats_1 = h5f["3.1/instrument/pcolinux/data"][()]
@@ -72,7 +72,7 @@ def test_multitomo_conversion(tmp_path, config: dict, multitomo_version: int):
72
72
  assert len(flats_2) == n_flats
73
73
 
74
74
  for i_nx_tomo, (file_path, data_path) in enumerate(result):
75
- with HDF5File(file_path, mode="r", swmr=get_swmr_mode()) as h5f:
75
+ with HDF5File(file_path, mode="r") as h5f:
76
76
  detector_path = "/".join([data_path, "instrument", "detector", "data"])
77
77
  detector_data = h5f[detector_path][()]
78
78
  expected_data = numpy.concatenate(
@@ -14,8 +14,8 @@ import h5py
14
14
  from tqdm import tqdm
15
15
 
16
16
  from silx.io.url import DataUrl
17
- from tomoscan.io import HDF5File
18
- from tomoscan.utils.io import filter_esrf_mounting_points
17
+ from nxtomo.io import HDF5File
18
+ from tomobase.utils.io import filter_esrf_mounting_points
19
19
 
20
20
  from nxtomomill.converter.hdf5.acquisition.utils import group_series
21
21
  from nxtomomill.converter.baseconverter import BaseConverter
@@ -6,7 +6,7 @@ from typing import Literal
6
6
 
7
7
  from silx.io.url import DataUrl
8
8
 
9
- from tomoscan.esrf.scan.utils import get_series_slice, get_n_series
9
+ from tomoscan.scan_utils import get_series_slice, get_n_series
10
10
 
11
11
  from nxtomo.application.nxtomo import NXtomo
12
12
  from nxtomo.nxobject.nxdetector import ImageKey
@@ -17,6 +17,10 @@ def dataset_id16a(tmp_path):
17
17
  source_file = GitlabDataset.get_dataset(
18
18
  "h5_datasets/holotomo/id16a/Atomium_S2_holo4_HT_010nm_0001.h5"
19
19
  )
20
+ if source_file is None:
21
+ raise FileNotFoundError(
22
+ "Unable to download h5_datasets/holotomo/id16a/Atomium_S2_holo4_HT_010nm_0001.h5 not found"
23
+ )
20
24
  return shutil.copyfile(
21
25
  source_file,
22
26
  os.path.join(tmp_path, "Atomium_S2_holo1_HT_010nm_500proj_0003.h5"),
@@ -236,7 +236,7 @@ def test_read_key(read_key_datasets, caplog):
236
236
  expected_unit=_ureg.centimeter,
237
237
  )
238
238
  numpy.testing.assert_array_equal(
239
- quantity.to_base_units(), numpy.array([0.02] * 10)
239
+ quantity.to_base_units().magnitude, numpy.array([0.02] * 10)
240
240
  )
241
241
 
242
242
  # test with dataset with coherent size but incoherent units
@@ -256,7 +256,7 @@ def test_read_key(read_key_datasets, caplog):
256
256
  expected_unit=_ureg.centimeter,
257
257
  )
258
258
  numpy.testing.assert_array_equal(
259
- quantity.to_base_units(), numpy.array([1.01] * 10)
259
+ quantity.to_base_units().magnitude, numpy.array([1.01] * 10)
260
260
  )
261
261
 
262
262
  # test arrays with incoherent size
@@ -274,7 +274,7 @@ def test_read_key(read_key_datasets, caplog):
274
274
  expected_unit=_ureg.centimeter,
275
275
  )
276
276
  numpy.testing.assert_array_equal(
277
- quantity.to_base_units(), numpy.array([1.02] * 6)
277
+ quantity.to_base_units().magnitude, numpy.array([1.02] * 6)
278
278
  )
279
279
  assert expected_warning in caplog.record_tuples
280
280
 
@@ -286,7 +286,7 @@ def test_read_key(read_key_datasets, caplog):
286
286
  expected_unit=_ureg.centimeter,
287
287
  )
288
288
  numpy.testing.assert_array_equal(
289
- quantity.to_base_units(), numpy.array([1 + 0.014 - 2] * 10)
289
+ quantity.to_base_units().magnitude, numpy.array([1 + 0.014 - 2] * 10)
290
290
  )
291
291
  # test incoherent arrays with scalar
292
292
  quantity: pint.Quantity = read_key(
@@ -296,5 +296,5 @@ def test_read_key(read_key_datasets, caplog):
296
296
  expected_unit=_ureg.centimeter,
297
297
  )
298
298
  numpy.testing.assert_array_equal(
299
- quantity.to_base_units(), numpy.array([1 - 0.014 + 1] * 9)
299
+ quantity.to_base_units().magnitude, numpy.array([1 - 0.014 + 1] * 9)
300
300
  )
@@ -5,6 +5,7 @@ import sys
5
5
  import tempfile
6
6
 
7
7
  import h5py
8
+ from h5py import File as HDF5File
8
9
  import numpy
9
10
  import pint
10
11
  import shutil
@@ -27,12 +28,7 @@ from nxtomomill.converter.hdf5.utils import (
27
28
  )
28
29
  from nxtomomill.models.h52nx import H52nxModel
29
30
 
30
- from tomoscan.io import HDF5File, get_swmr_mode
31
-
32
- try:
33
- from tomoscan.esrf.scan.hdf5scan import NXtomoScan
34
- except ImportError:
35
- from tomoscan.esrf.hdf5scan import NXtomoScan
31
+ from tomoscan.scans.nxtomoscan import NXtomoScan
36
32
 
37
33
  import subprocess # nosec B404
38
34
  from glob import glob
@@ -107,7 +103,7 @@ def test_simple_converter_with_nx_detector_attr(tmp_path):
107
103
  # insure only one file is generated
108
104
  assert os.path.exists(config.output_file)
109
105
  # insure data is here
110
- with HDF5File(config.output_file, mode="r", swmr=get_swmr_mode()) as h5s:
106
+ with HDF5File(config.output_file, mode="r") as h5s:
111
107
  for _, entry_node in h5s.items():
112
108
  assert "instrument/detector/data" in entry_node
113
109
  dataset = entry_node["instrument/detector/data"]
@@ -187,7 +183,7 @@ def test_simple_converter_without_nx_detector_attr(tmp_path, create_tomo_config:
187
183
  # insure only one file is generated
188
184
  assert os.path.exists(output_file)
189
185
  # insure data is here
190
- with HDF5File(output_file, mode="r", swmr=get_swmr_mode()) as h5s:
186
+ with HDF5File(output_file, mode="r") as h5s:
191
187
  for _, entry_node in h5s.items():
192
188
  assert "instrument/detector/data" in entry_node
193
189
  dataset = entry_node["instrument/detector/data"]
@@ -242,7 +238,7 @@ def test_providing_existing_camera_name(tmp_path):
242
238
  # insure only one file is generated
243
239
  assert os.path.exists(config.output_file)
244
240
  # insure data is here
245
- with HDF5File(config.output_file, mode="r", swmr=get_swmr_mode()) as h5s:
241
+ with HDF5File(config.output_file, mode="r") as h5s:
246
242
  for _, entry_node in h5s.items():
247
243
  assert "instrument/detector/data" in entry_node
248
244
  dataset = entry_node["instrument/detector/data"]
@@ -408,7 +404,7 @@ def test_ignore_sub_entries(tmp_path):
408
404
  # insure only one file is generated
409
405
  assert os.path.exists(config.output_file)
410
406
  # insure data is here
411
- with HDF5File(config.output_file, mode="r", swmr=get_swmr_mode()) as h5s:
407
+ with HDF5File(config.output_file, mode="r") as h5s:
412
408
  for _, entry_node in h5s.items():
413
409
  assert "instrument/detector/data" in entry_node
414
410
  dataset = entry_node["instrument/detector/data"]
@@ -445,7 +441,7 @@ def test_get_nx_detectors(tmp_path):
445
441
  with HDF5File(h5file, mode="w") as h5s:
446
442
  create_nx_detector(node=h5s, name="det1", with_nx_class=True)
447
443
  create_nx_detector(node=h5s, name="det2", with_nx_class=False)
448
- with HDF5File(h5file, mode="r", swmr=get_swmr_mode()) as h5s:
444
+ with HDF5File(h5file, mode="r") as h5s:
449
445
  dets = get_nx_detectors(h5s)
450
446
  assert len(dets) == 1
451
447
  assert dets[0].name == "/det1"
@@ -453,7 +449,7 @@ def test_get_nx_detectors(tmp_path):
453
449
  with HDF5File(h5file, mode="a") as h5s:
454
450
  create_nx_detector(node=h5s, name="det3", with_nx_class=True)
455
451
  create_nx_detector(node=h5s, name="det4", with_nx_class=True)
456
- with HDF5File(h5file, mode="r", swmr=get_swmr_mode()) as h5s:
452
+ with HDF5File(h5file, mode="r") as h5s:
457
453
  dets = get_nx_detectors(h5s)
458
454
  assert len(dets) == 3
459
455
 
@@ -467,7 +463,7 @@ def test_guess_nx_detector(tmp_path):
467
463
 
468
464
  with HDF5File(h5file, mode="w") as h5s:
469
465
  create_nx_detector(node=h5s, name="det2", with_nx_class=False)
470
- with HDF5File(h5file, mode="r", swmr=get_swmr_mode()) as h5s:
466
+ with HDF5File(h5file, mode="r") as h5s:
471
467
  dets = get_nx_detectors(h5s)
472
468
  assert len(dets) == 0
473
469
  dets = guess_nx_detector(h5s)
@@ -553,7 +549,7 @@ def test_dataset_1(tmp_path):
553
549
 
554
550
  assert os.path.exists(config.output_file), "output file does not exists"
555
551
 
556
- with HDF5File(config.output_file, mode="r", swmr=get_swmr_mode()) as h5s:
552
+ with HDF5File(config.output_file, mode="r") as h5s:
557
553
  assert len(h5s.items()) == 1
558
554
  assert "entry0000" in h5s
559
555
 
@@ -564,7 +560,7 @@ def test_dataset_1(tmp_path):
564
560
  assert len(scan.projections) == 20
565
561
  assert len(scan.darks) == 10
566
562
  # check data is a virtual dataset
567
- with HDF5File(config.output_file, mode="r", swmr=get_swmr_mode()) as h5f:
563
+ with HDF5File(config.output_file, mode="r") as h5f:
568
564
  dataset = h5f["entry0000/instrument/detector/data"]
569
565
  assert dataset.is_virtual
570
566
  assert dataset.dtype == frame_data_type
@@ -663,14 +659,13 @@ def test_dataset_2(tmp_path):
663
659
 
664
660
  assert os.path.exists(config.output_file)
665
661
 
666
- with HDF5File(config.output_file, mode="r", swmr=get_swmr_mode()) as h5s:
662
+ with HDF5File(config.output_file, mode="r") as h5s:
667
663
  assert "entry0000" in h5s
668
664
  assert len(h5s.items()) == 1
669
665
 
670
666
  with HDF5File(
671
667
  config.output_file.replace(".nx", "_0000.nx"),
672
668
  mode="r",
673
- swmr=get_swmr_mode(),
674
669
  ) as h5s:
675
670
  assert "entry0000" in h5s
676
671
  assert "duplicate_data" in h5s
@@ -714,7 +709,7 @@ def test_dataset_2(tmp_path):
714
709
  flat_data = get_data(url)
715
710
  assert flat_data.min() != flat_data.max()
716
711
 
717
- with HDF5File(config.output_file, mode="r", swmr=get_swmr_mode()) as h5f:
712
+ with HDF5File(config.output_file, mode="r") as h5f:
718
713
  dataset = h5f["entry0000/instrument/detector/data"][()]
719
714
  assert dataset.shape[0] == 60
720
715
  with EntryReader(dark_url_1, open_mode_for_reading="safe") as dark_entry:
@@ -873,7 +868,7 @@ def test_z_series_conversion_with_external_urls(tmp_path, z_series_version: str)
873
868
  )
874
869
  assert len(new_scans) == 3
875
870
  assert os.path.exists(config.output_file)
876
- with HDF5File(config.output_file, mode="r", swmr=get_swmr_mode()) as h5f:
871
+ with HDF5File(config.output_file, mode="r") as h5f:
877
872
  assert "entry0000" in h5f
878
873
  assert "entry0001" in h5f
879
874
  assert "entry0002" in h5f
@@ -894,7 +889,7 @@ def test_z_series_conversion_with_external_urls(tmp_path, z_series_version: str)
894
889
  assert not url_has_been_copied(file_path=config.output_file, url=url)
895
890
 
896
891
  # test a few slices
897
- with HDF5File(config.output_file, mode="r", swmr=get_swmr_mode()) as h5f:
892
+ with HDF5File(config.output_file, mode="r") as h5f:
898
893
  dataset = h5f["entry0000/instrument/detector/data"]
899
894
  assert dataset.shape[0] == 30
900
895
 
@@ -1049,7 +1044,7 @@ def test_h52nx_from_command_line(tmp_path):
1049
1044
  assert dataset.dtype == numpy.uint32
1050
1045
  # FIXME: avoid keeping some file open. not clear why this is needed
1051
1046
  dataset = None
1052
- with HDF5File(output_file, "r", swmr=get_swmr_mode()) as h5f:
1047
+ with HDF5File(output_file, "r") as h5f:
1053
1048
  assert "/entry0000/instrument/diode" not in h5f
1054
1049
 
1055
1050
  # insure an nxtomo can be created from it
@@ -1121,7 +1116,7 @@ def test_simple_conversion(input_type, tmp_path, rotation_is_clockwise: bool):
1121
1116
  # insure only one file is generated
1122
1117
  assert os.path.exists(config.output_file)
1123
1118
  # insure data is here
1124
- with HDF5File(config.output_file, mode="r", swmr=get_swmr_mode()) as h5s:
1119
+ with HDF5File(config.output_file, mode="r") as h5s:
1125
1120
  for _, entry_node in h5s.items():
1126
1121
  assert "instrument/detector/data" in entry_node
1127
1122
  dataset = entry_node["instrument/detector/data"]