nxtomomill 2.1.0.dev4__tar.gz → 2.1.1__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 (176) hide show
  1. {nxtomomill-2.1.0.dev4/nxtomomill.egg-info → nxtomomill-2.1.1}/PKG-INFO +1 -1
  2. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/doc/conf.py +3 -13
  3. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/app/fluo2nx.py +3 -2
  4. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/app/z_concatenate_scans.py +5 -3
  5. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/edf/tests/test_edf2nx.py +3 -1
  6. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/fluo/fluoconverter.py +3 -3
  7. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/fluo/fluoscan.py +13 -6
  8. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/fscan/fscanconverter.py +1 -1
  9. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/hdf5/acquisition/standardacquisition.py +13 -8
  10. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/hdf5/acquisition/tests/test_back_and_forth.py +1 -1
  11. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/hdf5/acquisition/tests/test_holotomo.py +2 -2
  12. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/hdf5/acquisition/tests/test_legacy.py +2 -2
  13. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/hdf5/acquisitionConstructor.py +1 -2
  14. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/hdf5/tests/test_hdf5converter.py +2 -2
  15. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/utils/utils.py +2 -2
  16. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/version.py +3 -3
  17. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1/nxtomomill.egg-info}/PKG-INFO +1 -1
  18. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/LICENSE +0 -0
  19. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/README.md +0 -0
  20. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/__init__.py +0 -0
  21. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/__main__.py +0 -0
  22. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/app/__init__.py +0 -0
  23. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/app/blissfluo2nx.py +0 -0
  24. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/app/blissfluoconfig.py +0 -0
  25. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/app/dxfile2nx.py +0 -0
  26. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/app/edf2nx.py +0 -0
  27. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/app/edf2nx_check.py +0 -0
  28. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/app/edfconfig.py +0 -0
  29. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/app/fluoconfig.py +0 -0
  30. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/app/fscan2nx.py +0 -0
  31. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/app/h52nx.py +0 -0
  32. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/app/h5config.py +0 -0
  33. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/app/nxcopy.py +0 -0
  34. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/app/patch_nx.py +0 -0
  35. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/app/split_nxfile.py +0 -0
  36. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/app/tests/test_bliss_fluo2nx_app.py +0 -0
  37. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/app/tests/test_dxfile2nx_app.py +0 -0
  38. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/app/tests/test_edf2nx_app.py +0 -0
  39. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/app/tests/test_edf_config_app.py +0 -0
  40. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/app/tests/test_fluo2nx_app.py +0 -0
  41. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/app/tests/test_h52nx_app.py +0 -0
  42. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/app/tests/test_h5_config_app.py +0 -0
  43. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/app/tests/test_nx_copy.py +0 -0
  44. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/app/tests/test_patch_nx_app.py +0 -0
  45. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/app/tests/test_split_nxfile_app.py +0 -0
  46. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/app/zstages2nxs.py +0 -0
  47. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/__init__.py +0 -0
  48. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/baseconverter.py +0 -0
  49. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/dxfile/__init__.py +0 -0
  50. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/dxfile/dxfileconverter.py +0 -0
  51. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/dxfile/tests/test_dxfile.py +0 -0
  52. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/edf/__init__.py +0 -0
  53. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/edf/checks.py +0 -0
  54. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/edf/edfconverter.py +0 -0
  55. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/edf/tests/test_checks.py +0 -0
  56. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/edf/tests/test_edf2nx_check.py +0 -0
  57. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/fluo/__init__.py +0 -0
  58. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/fluo/blissfluoscan.py +0 -0
  59. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/fluo/tests/__init__.py +0 -0
  60. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/fluo/tests/test_fluoscan2D.py +0 -0
  61. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/fluo/tests/test_fluoscan3D.py +0 -0
  62. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/fscan/__init__.py +0 -0
  63. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/hdf5/__init__.py +0 -0
  64. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/hdf5/acquisition/__init__.py +0 -0
  65. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/hdf5/acquisition/_bliss_activeconfig.py +0 -0
  66. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/hdf5/acquisition/backandforth.py +0 -0
  67. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/hdf5/acquisition/baseacquisition.py +0 -0
  68. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/hdf5/acquisition/blisstomoconfig.py +0 -0
  69. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/hdf5/acquisition/multitomo.py +0 -0
  70. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/hdf5/acquisition/pcotomoacquisition.py +0 -0
  71. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/hdf5/acquisition/tests/bliss_tomo_datasets.py +0 -0
  72. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/hdf5/acquisition/tests/test_acquisition.py +0 -0
  73. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/hdf5/acquisition/tests/test_acquisition_utils.py +0 -0
  74. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/hdf5/acquisition/tests/test_bliss_tomo_config.py +0 -0
  75. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/hdf5/acquisition/tests/test_multitomo_zseries.py +0 -0
  76. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/hdf5/acquisition/tests/test_multitomoacquisition.py +0 -0
  77. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/hdf5/acquisition/utils/__init__.py +0 -0
  78. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/hdf5/acquisition/utils/_context.py +0 -0
  79. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/hdf5/acquisition/utils/_keys.py +0 -0
  80. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/hdf5/acquisition/utils/_scan_type_finder.py +0 -0
  81. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/hdf5/acquisition/utils/bliss_scan_type.py +0 -0
  82. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/hdf5/acquisition/utils/detector.py +0 -0
  83. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/hdf5/acquisition/utils/machine_current.py +0 -0
  84. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/hdf5/acquisition/utils/series.py +0 -0
  85. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/hdf5/acquisition/utils/timestamps.py +0 -0
  86. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/hdf5/acquisition/zseriesacquisition.py +0 -0
  87. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/hdf5/hdf5converter.py +0 -0
  88. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/hdf5/post_processing/__init__.py +0 -0
  89. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/hdf5/post_processing/dark_flat_copy.py +0 -0
  90. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/hdf5/tests/test_frame_flip.py +0 -0
  91. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/hdf5/tests/test_h52nx_utils.py +0 -0
  92. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/hdf5/utils.py +0 -0
  93. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/converter/version.py +0 -0
  94. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/io/__init__.py +0 -0
  95. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/io/config/__init__.py +0 -0
  96. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/io/config/configbase.py +0 -0
  97. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/io/config/confighandler.py +0 -0
  98. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/io/config/dxconfig.py +0 -0
  99. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/io/config/edfconfig.py +0 -0
  100. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/io/config/fluoconfig.py +0 -0
  101. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/io/config/hdf5config.py +0 -0
  102. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/io/config/tests/__init__.py +0 -0
  103. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/io/config/tests/test_confighandler.py +0 -0
  104. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/io/tests/test_frame_group.py +0 -0
  105. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/io/tests/utils.py +0 -0
  106. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/models/__init__.py +0 -0
  107. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/models/base/ConfigBase.py +0 -0
  108. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/models/base/FrmFlatToNestedBase.py +0 -0
  109. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/models/base/NestedModelBase.py +0 -0
  110. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/models/base/__init__.py +0 -0
  111. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/models/base/general_section.py +0 -0
  112. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/models/base/instrument_section.py +0 -0
  113. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/models/base/source_section.py +0 -0
  114. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/models/blissfluo2nx/__init__.py +0 -0
  115. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/models/blissfluo2nx/blissfluo2nx.py +0 -0
  116. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/models/blissfluo2nx/general_section.py +0 -0
  117. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/models/dx2nx.py +0 -0
  118. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/models/edf2nx/__init__.py +0 -0
  119. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/models/edf2nx/dark_and_flat_section.py +0 -0
  120. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/models/edf2nx/detector_section.py +0 -0
  121. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/models/edf2nx/edf2nx.py +0 -0
  122. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/models/edf2nx/general_section.py +0 -0
  123. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/models/edf2nx/keys_section.py +0 -0
  124. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/models/edf2nx/sample_section.py +0 -0
  125. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/models/edf2nx/unit_section.py +0 -0
  126. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/models/fluo2nx/__init__.py +0 -0
  127. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/models/fluo2nx/fluo2nx.py +0 -0
  128. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/models/fluo2nx/general_section.py +0 -0
  129. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/models/h52nx/FrameGroup.py +0 -0
  130. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/models/h52nx/__init__.py +0 -0
  131. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/models/h52nx/_acquisitionstep.py +0 -0
  132. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/models/h52nx/_context.py +0 -0
  133. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/models/h52nx/entries_and_title_section.py +0 -0
  134. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/models/h52nx/extra_params_section.py +0 -0
  135. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/models/h52nx/frame_type_section.py +0 -0
  136. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/models/h52nx/general_section.py +0 -0
  137. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/models/h52nx/h52nx.py +0 -0
  138. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/models/h52nx/keys_section.py +0 -0
  139. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/models/h52nx/multitomo_section.py +0 -0
  140. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/models/tests/test_context.py +0 -0
  141. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/models/tests/test_edf2nx_model.py +0 -0
  142. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/models/tests/test_fluo2nx_model.py +0 -0
  143. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/models/tests/test_h52nx_model.py +0 -0
  144. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/models/tests/test_io_utils.py +0 -0
  145. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/models/utils.py +0 -0
  146. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/settings.py +0 -0
  147. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/test.py +0 -0
  148. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/tests/__init__.py +0 -0
  149. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/tests/datasets.py +0 -0
  150. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/tests/resources/__init__.py +0 -0
  151. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/tests/resources/edf2nx_config_files/__init__.py +0 -0
  152. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/tests/resources/fluo2nx_config_files/__init__.py +0 -0
  153. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/tests/resources/h52nx_config_files/__init__.py +0 -0
  154. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/tests/test_version.py +0 -0
  155. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/tests/utils/__init__.py +0 -0
  156. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/tests/utils/bliss.py +0 -0
  157. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/tests/utils/dxfile.py +0 -0
  158. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/utils/__init__.py +0 -0
  159. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/utils/_os.py +0 -0
  160. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/utils/flat_reducer.py +0 -0
  161. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/utils/h5pyutils.py +0 -0
  162. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/utils/hdf5.py +0 -0
  163. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/utils/io.py +0 -0
  164. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/utils/nexus.py +0 -0
  165. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/utils/pintutils.py +0 -0
  166. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/utils/tests/test_flat_reducer.py +0 -0
  167. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/utils/tests/test_h5pyutils.py +0 -0
  168. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/utils/tests/test_nexus_utils.py +0 -0
  169. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill/utils/tests/test_utils.py +0 -0
  170. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill.egg-info/SOURCES.txt +0 -0
  171. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill.egg-info/dependency_links.txt +0 -0
  172. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill.egg-info/entry_points.txt +0 -0
  173. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill.egg-info/requires.txt +0 -0
  174. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/nxtomomill.egg-info/top_level.txt +0 -0
  175. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/pyproject.toml +0 -0
  176. {nxtomomill-2.1.0.dev4 → nxtomomill-2.1.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nxtomomill
3
- Version: 2.1.0.dev4
3
+ Version: 2.1.1
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:
@@ -4,26 +4,16 @@
4
4
  # list see the documentation:
5
5
  # https://www.sphinx-doc.org/en/master/usage/configuration.html
6
6
 
7
- # -- Path setup --------------------------------------------------------------
8
-
9
- # If extensions (or modules to document with autodoc) are in another directory,
10
- # add these directories to sys.path here. If the directory is relative to the
11
- # documentation root, use os.path.abspath to make it absolute, like shown here.
12
- #
13
- # import os
14
- # import sys
15
- # sys.path.insert(0, os.path.abspath('.'))
16
-
17
7
 
18
8
  # -- Project information -----------------------------------------------------
9
+ from importlib.metadata import version as get_version
19
10
 
20
11
  project = "nxtomomill"
21
12
  copyright = "2020-2025, ESRF"
22
13
  author = "P.-O. Autran, J. Lesaint, A. Mirone, C. Nemoz, P. Paleo, H. Payno, A. Sole, N. Vigano"
23
14
 
24
- # The full version, including alpha/beta/rc tags
25
- release = "2.0"
26
- version = release
15
+ release = get_version("nxtomomill")
16
+ version = ".".join(release.split(".")[:2])
27
17
 
28
18
 
29
19
  # -- General configuration ---------------------------------------------------
@@ -13,7 +13,7 @@ import os
13
13
 
14
14
  from nxtomomill import utils
15
15
  from nxtomomill import converter
16
- from nxtomomill.io.config.fluoconfig import TomoFluoConfig
16
+ from nxtomomill.models.fluo2nx import Fluo2nxModel
17
17
 
18
18
  from tqdm import tqdm
19
19
 
@@ -75,7 +75,8 @@ def main(argv):
75
75
  )
76
76
 
77
77
  options = parser.parse_args(argv[1:])
78
- config = TomoFluoConfig()
78
+ config = Fluo2nxModel()
79
+
79
80
  if options.config is not None:
80
81
  config = config.from_cfg_file(options.config)
81
82
 
@@ -230,11 +230,13 @@ def main(argv):
230
230
  # step 2: insert single 'empty' frame between the two stages (aka dummy frame)
231
231
  invalid_nxt = NXtomo(args.entry_name)
232
232
  invalid_nxt.instrument.detector.image_key_control = [ImageKey.INVALID]
233
- invalid_nxt.energy = nxt.energy.value
233
+ invalid_nxt.instrument.beam.incident_energy = (
234
+ nxt.instrument.beam.incident_energy.value
235
+ )
234
236
  invalid_nxt.control.data = np.ones(1, "f")
235
237
  invalid_nxt.sample.rotation_angle = [0.0] * _ureg.degree
236
- invalid_nxt.instrument.detector.field_of_view = (
237
- nxt.instrument.detector.field_of_view.value
238
+ invalid_nxt.instrument.detector.half_acquisition = (
239
+ nxt.instrument.detector.half_acquisition
238
240
  )
239
241
  invalid_nxt.instrument.detector.x_pixel_size = (
240
242
  nxt.instrument.detector.x_pixel_size.value
@@ -14,10 +14,12 @@ from tomoscan import version
14
14
  from tomoscan.esrf.mock import MockEDF
15
15
  from tomoscan.esrf.scan.edfscan import EDFTomoScan
16
16
  from tomoscan.esrf.scan.nxtomoscan import NXtomoScan
17
- from tomoscan.esrf.scan.utils import cwd_context, dump_info_file
17
+ from tomoscan.esrf.scan.utils import dump_info_file
18
18
  from tomoscan.validator import is_valid_for_reconstruction
19
19
  from tomoscan.io import HDF5File, get_swmr_mode
20
20
 
21
+ from nxtomo.io import cwd_context
22
+
21
23
  from nxtomomill import converter
22
24
  from nxtomomill.converter.edf.checks import OUPUT_CHECK
23
25
  from nxtomomill.models.edf2nx import EDF2nxModel
@@ -101,7 +101,7 @@ def from_fluo_to_nx(configuration: Fluo2nxModel, progress: tqdm | None = None) -
101
101
  my_nxtomo.instrument.detector.image_key_control = [
102
102
  ImageKey.PROJECTION
103
103
  ] * elmt_line_data.shape[0]
104
- my_nxtomo.sample.rotation_angle = scan.rot_angles_deg * _ureg.degree
104
+ my_nxtomo.sample.rotation_angle = scan.rot_angles_deg
105
105
  my_nxtomo.instrument.detector.x_pixel_size = scan.pixel_size * _ureg(
106
106
  "m"
107
107
  )
@@ -112,7 +112,7 @@ def from_fluo_to_nx(configuration: Fluo2nxModel, progress: tqdm | None = None) -
112
112
  # define a value to sample-detector and source-sample distance. To be set to the real value in the future
113
113
  my_nxtomo.instrument.detector.distance = 1.0 * _ureg.meter
114
114
  my_nxtomo.instrument.source.distance = 1.0 * _ureg.meter
115
- my_nxtomo.energy = scan.energy * _ureg.keV
115
+ my_nxtomo.instrument.beam.incident_energy = scan.energy * _ureg.keV
116
116
 
117
117
  data_path = f"{det}_{element}_{line}"
118
118
  my_nxtomo.save(
@@ -202,7 +202,7 @@ def from_blissfluo_to_nx(
202
202
  )
203
203
 
204
204
  my_nxtomo.instrument.name = configuration.instrument_section.instrument_name
205
- my_nxtomo.energy = scan.energy
205
+ my_nxtomo.instrument.beam.incident_energy = scan.energy
206
206
 
207
207
  data_path = f"{det}_{line}"
208
208
  my_nxtomo.save(
@@ -63,6 +63,10 @@ class FluoTomoScanBase:
63
63
  def __post_init__(self):
64
64
  self.detected_folders = self.detect_folders()
65
65
  self.detected_detectors = tuple(self.detect_detectors())
66
+
67
+ # Ensure given detectors is a tuple
68
+ if not isinstance(self.detectors, tuple):
69
+ self.detectors = (self.detectors,)
66
70
  self.get_metadata_from_h5_file()
67
71
  _logger.info(f"Detectors: {self.detected_detectors}")
68
72
  if len(self.detectors) == 0:
@@ -113,7 +117,7 @@ class FluoTomoScanBase:
113
117
  if len(self.detected_folders) == 0:
114
118
  raise ValueError("No folder found, unable to load metadata")
115
119
  h5_path = os.path.join(self.scan, self.detected_folders[0])
116
- h5_files = glob.glob1(h5_path, "*.h5")
120
+ h5_files = glob.glob("*.h5", root_dir=h5_path)
117
121
  if len(h5_files) > 1:
118
122
  raise ValueError(
119
123
  "More than one hdf5 file in scan directory. Expect only ONE to pick pixel size."
@@ -150,7 +154,7 @@ class FluoTomoScanBase:
150
154
  raise ValueError("No folder found, unable to detect detectors")
151
155
  proj_1_dir = os.path.join(self.scan, "fluofit", self.detected_folders[0])
152
156
  detected_detectors = []
153
- file_names = glob.glob1(proj_1_dir, "IMG_*area_density_ngmm2.tif")
157
+ file_names = glob.glob("IMG_*area_density_ngmm2.tif", root_dir=proj_1_dir)
154
158
  for file in file_names:
155
159
  det = file.split("_")[1]
156
160
  if det not in detected_detectors:
@@ -167,7 +171,9 @@ class FluoTomoScanBase:
167
171
  raise ValueError("No folder found, unable to detect elements")
168
172
  proj_1_dir = os.path.join(self.scan, "fluofit", self.detected_folders[0])
169
173
  detector = self.detectors[0]
170
- file_names = glob.glob1(proj_1_dir, f"IMG_{detector}*area_density_ngmm2.tif")
174
+ file_names = glob.glob(
175
+ f"IMG_{detector}*area_density_ngmm2.tif", root_dir=proj_1_dir
176
+ )
171
177
  for file in file_names:
172
178
  el_str = file.split("_")[2]
173
179
  element, line = el_str.split("-")
@@ -197,8 +203,9 @@ class FluoTomoScan3D(FluoTomoScanBase):
197
203
  """Dataset manipulation class."""
198
204
 
199
205
  def detect_folders(self):
200
- fit_folders = glob.glob1(
201
- os.path.join(self.scan, "fluofit"), rf"{self.dataset_basename}_projection*"
206
+ fit_folders = glob.glob(
207
+ rf"{self.dataset_basename}_projection*",
208
+ root_dir=os.path.join(self.scan, "fluofit"),
202
209
  )
203
210
  fit_folders.sort()
204
211
  proj_indices = [int(f[-3:]) for f in fit_folders]
@@ -284,7 +291,7 @@ class FluoTomoScan2D(FluoTomoScanBase):
284
291
  def get_metadata_from_h5_file(self):
285
292
  super().get_metadata_from_h5_file()
286
293
  h5_path = os.path.join(self.scan, self.detected_folders[0])
287
- h5_files = glob.glob1(h5_path, "*.h5")
294
+ h5_files = glob.glob("*.h5", root_dir=h5_path)
288
295
  if len(h5_files) > 1:
289
296
  raise ValueError(
290
297
  "More than one hdf5 file in scan directory. Expect only ONE to pick pixel size."
@@ -136,7 +136,7 @@ def from_fscan_to_nx(
136
136
  )
137
137
 
138
138
  if energy is not None:
139
- my_nxtomo.energy = energy # in keV by default
139
+ my_nxtomo.instrument.beam.incident_energy = energy # in keV by default
140
140
  if distance is not None:
141
141
  my_nxtomo.instrument.detector.distance = distance # in meter
142
142
 
@@ -19,6 +19,7 @@ from nxtomo.nxobject.nxdetector import ImageKey
19
19
  from nxtomo.nxobject.utils.concatenate import (
20
20
  concatenate_pint_quantities as _concatenate_pint_quantities,
21
21
  )
22
+ from nxtomo.io import cwd_context
22
23
 
23
24
  from .utils._context import (
24
25
  update_config_keys_from_tomo_config_context,
@@ -520,9 +521,13 @@ class StandardAcquisition(BaseAcquisition):
520
521
  return False
521
522
 
522
523
  def _preprocess_registered_entry(self, entry_url, type_):
523
- with EntryReader(
524
- entry_url, open_mode_for_reading=self.configuration.open_mode_for_reading
525
- ) as entry:
524
+ with (
525
+ cwd_context(entry_url.file_path()),
526
+ EntryReader(
527
+ entry_url,
528
+ open_mode_for_reading=self.configuration.open_mode_for_reading,
529
+ ) as entry,
530
+ ):
526
531
  entry_path = self._entries_o_path[entry_url.path()]
527
532
  input_file_path = entry_url.file_path()
528
533
  input_file_path = abspath(os.path.relpath(input_file_path, os.getcwd()))
@@ -1293,8 +1298,7 @@ class StandardAcquisition(BaseAcquisition):
1293
1298
  energy = None
1294
1299
 
1295
1300
  if energy is not None:
1296
- # TODO: better management of energy ? might be energy.beam or energy.instrument.beam ?
1297
- nx_tomo.energy = energy
1301
+ nx_tomo.instrument.beam.incident_energy = energy
1298
1302
 
1299
1303
  # 3. define instrument
1300
1304
  nx_tomo.instrument.name = self._get_instrument_name()
@@ -1389,9 +1393,10 @@ class StandardAcquisition(BaseAcquisition):
1389
1393
  # Note: default value is False and not None. So if the half_acquisition is not found in the metadata we will set it to False
1390
1394
  nx_tomo.instrument.detector.half_acquisition = half_acquisition
1391
1395
  # fov (deprecated. half-acquisition is preferred)
1392
- fov = self._get_field_of_view()
1393
- if fov is not None:
1394
- nx_tomo.instrument.detector.field_of_view = fov
1396
+ if half_acquisition is None:
1397
+ fov = self._get_field_of_view()
1398
+ if fov is not None:
1399
+ nx_tomo.instrument.detector.field_of_view = fov
1395
1400
 
1396
1401
  # x_rotation_axis_pixel_position
1397
1402
  # TODO Missing calibration mechanism from Bliss
@@ -102,7 +102,7 @@ def test_back_and_forth_conversion(tmp_path):
102
102
 
103
103
  assert nx_tomo.instrument.detector.distance == 3500 * _ureg.millimeter
104
104
  # check energy
105
- assert nx_tomo.energy == 10.0 * _ureg.keV
105
+ assert nx_tomo.instrument.beam.incident_energy == 10.0 * _ureg.keV
106
106
  # check sample
107
107
  assert nx_tomo.sample.x_pixel_size == 2.4 * _ureg.micrometer
108
108
  assert nx_tomo.sample.y_pixel_size == 2.4 * _ureg.micrometer
@@ -109,7 +109,7 @@ def test_holotomo_conversion_id16a(tmp_path):
109
109
  nx_tomo.instrument.detector.distance, 1206.69 * _ureg.millimeter
110
110
  )
111
111
  # check energy
112
- assert nx_tomo.energy == 17.1 * _ureg.keV
112
+ assert nx_tomo.instrument.beam.incident_energy == 17.1 * _ureg.keV
113
113
  # check sample
114
114
  numpy.testing.assert_almost_equal(
115
115
  nx_tomo.sample.x_pixel_size.magnitude,
@@ -230,7 +230,7 @@ def test_holotomo_conversion_id16b(tmp_path):
230
230
  nx_tomo.instrument.detector.distance, 723.908 * _ureg.millimeter
231
231
  )
232
232
  # check energy
233
- assert nx_tomo.energy == 29.6 * _ureg.keV
233
+ assert nx_tomo.instrument.beam.incident_energy == 29.6 * _ureg.keV
234
234
  # check sample
235
235
  numpy.testing.assert_almost_equal(
236
236
  nx_tomo.sample.x_pixel_size.magnitude,
@@ -51,7 +51,7 @@ def test_S59_68p41b_16mm_6p5mm_F8_0001_dataset(
51
51
 
52
52
  nxtomo = NXtomo().load(*result[0])
53
53
 
54
- nxtomo.energy = 70.0 * _ureg.keV
54
+ nxtomo.instrument.beam.incident_energy = 70.0 * _ureg.keV
55
55
  n_frames = 10252
56
56
 
57
57
  assert len(nxtomo.sample.x_translation) == n_frames
@@ -119,7 +119,7 @@ def test_WGN_01_0000_P_110_8128_D_129(WGN_01_0000_P_110_8128_D_129_Dataset, tmp_
119
119
 
120
120
  nxtomo = NXtomo().load(*result[0])
121
121
 
122
- nxtomo.energy = 80.0 * _ureg.keV
122
+ nxtomo.instrument.beam.incident_energy = 80.0 * _ureg.keV
123
123
  n_frames = 4602
124
124
 
125
125
  assert len(nxtomo.sample.x_translation) == n_frames
@@ -2,7 +2,6 @@ from __future__ import annotations
2
2
 
3
3
  import os
4
4
  import h5py
5
- import numpy
6
5
  import logging
7
6
  from tqdm import tqdm
8
7
 
@@ -381,7 +380,7 @@ class _AcquisitionConstructorFromTitles(_AcquisitionConstructorBase):
381
380
  return self.sort_fct(name, h5d=h5d)
382
381
 
383
382
  groups.sort(key=sort)
384
- except numpy.core._exceptions._UFuncNoLoopError:
383
+ except TypeError:
385
384
  raise ValueError(
386
385
  "Fail to order according to 'start_time'. Probably not all scans have a 'start_time' dataset"
387
386
  )
@@ -9,7 +9,7 @@ import numpy
9
9
  import pint
10
10
  import shutil
11
11
 
12
- from tomoscan.esrf.scan.utils import cwd_context
12
+ from nxtomo.io import cwd_context
13
13
 
14
14
  from nxtomomill import converter
15
15
  from nxtomomill.tests.datasets import GitlabDataset
@@ -760,7 +760,7 @@ def test_dataset_2(tmp_path):
760
760
  config.y_sample_pixel_size_m = 2.7 * 10e-6
761
761
 
762
762
  config.overwrite = True
763
- config.field_of_view = "Half"
763
+ config.half_acquisition = True
764
764
 
765
765
  init_url_1 = DataUrl(file_path=file_1, data_path="/1.1", scheme="silx")
766
766
 
@@ -13,10 +13,10 @@ from silx.io.url import DataUrl
13
13
  from silx.io.utils import get_data
14
14
  from silx.utils.deprecation import deprecated
15
15
  from silx.utils.enum import Enum as _Enum
16
- from tomoscan.esrf.scan.utils import cwd_context
17
16
  from tomoscan.io import HDF5File
18
17
  from nxtomomill.utils.hdf5 import open_hdf5_readonly
19
18
 
19
+ from nxtomo.io import cwd_context
20
20
  from nxtomo.nxobject.nxdetector import ImageKey
21
21
  from nxtomo.utils.frameappender import FrameAppender
22
22
  from nxtomo.application.nxtomo import NXtomo
@@ -445,7 +445,7 @@ def str_datetime_to_numpy_datetime64(my_datetime: str | datetime) -> numpy.datet
445
445
  )
446
446
 
447
447
  datetime_as_utc_datetime = datetime_as_datetime.astimezone(timezone.utc)
448
- tz_free_datetime_as_datetime = datetime_as_utc_datetime.replace(tzinfo=timezone.utc)
448
+ tz_free_datetime_as_datetime = datetime_as_utc_datetime.replace(tzinfo=None)
449
449
  return numpy.datetime64(tz_free_datetime_as_datetime).astype("<M8[ms]")
450
450
 
451
451
 
@@ -55,9 +55,9 @@ RELEASE_LEVEL_VALUE = {
55
55
 
56
56
  MAJOR = 2
57
57
  MINOR = 1
58
- MICRO = 0
59
- RELEV = "dev" # <16
60
- SERIAL = 4 # <16
58
+ MICRO = 1
59
+ RELEV = "final" # <16
60
+ SERIAL = 0 # <16
61
61
 
62
62
  date = __date__
63
63
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nxtomomill
3
- Version: 2.1.0.dev4
3
+ Version: 2.1.1
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:
File without changes
File without changes
File without changes