aprict 0.0.24__tar.gz → 0.0.24.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 (157) hide show
  1. {aprict-0.0.24/src/aprict.egg-info → aprict-0.0.24.dev1}/PKG-INFO +5 -1
  2. {aprict-0.0.24 → aprict-0.0.24.dev1}/README.md +4 -0
  3. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/lib/ne_tools.py +4 -1
  4. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/scripts/recon_cbfp_cyl_fbp.py +4 -2
  5. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/scripts/recon_cbfp_cyl_gbc.py +8 -3
  6. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/scripts/recon_cbfp_landweber.py +1 -1
  7. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/version.py +1 -1
  8. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/volume.py +4 -2
  9. {aprict-0.0.24 → aprict-0.0.24.dev1/src/aprict.egg-info}/PKG-INFO +5 -1
  10. {aprict-0.0.24 → aprict-0.0.24.dev1}/LICENSE.txt +0 -0
  11. {aprict-0.0.24 → aprict-0.0.24.dev1}/LICENSE_GPLv3.txt +0 -0
  12. {aprict-0.0.24 → aprict-0.0.24.dev1}/MANIFEST.in +0 -0
  13. {aprict-0.0.24 → aprict-0.0.24.dev1}/pyproject.toml +0 -0
  14. {aprict-0.0.24 → aprict-0.0.24.dev1}/setup.cfg +0 -0
  15. {aprict-0.0.24 → aprict-0.0.24.dev1}/setup.py +0 -0
  16. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/__init__.py +0 -0
  17. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/cb/__init__.py +0 -0
  18. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/cb/_unused_old_fbp.py +0 -0
  19. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/cb/flatpanel.py +0 -0
  20. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/cb/noop_filter.py +0 -0
  21. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/cb/ramp_filter.py +0 -0
  22. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/cb/ramp_filter_cpu.py +0 -0
  23. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/cuda/__init__.py +0 -0
  24. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/cuda/_generate_cusrc.py +0 -0
  25. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/cuda/dtype_cacher.py +0 -0
  26. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/cuda/header_injection.py +0 -0
  27. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/cuda/kern_structs.py +0 -0
  28. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/cuda/ptx_cacher.py +0 -0
  29. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/cuda/structs/FORBILD_volumes.py +0 -0
  30. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/cuda/structs/__init__.py +0 -0
  31. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/cuda/structs/base.py +0 -0
  32. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/cuda/structs/config_cb_backproject.py +0 -0
  33. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/cuda/structs/config_cb_project.py +0 -0
  34. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/cuda/structs/config_cb_project_FORBILD.py +0 -0
  35. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/cuda/structs/cu/FORBILD_Box.cu +0 -0
  36. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/cuda/structs/cu/FORBILD_ClipAxisSpec.cu +0 -0
  37. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/cuda/structs/cu/FORBILD_Cone.cu +0 -0
  38. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/cuda/structs/cu/FORBILD_Cone_x.cu +0 -0
  39. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/cuda/structs/cu/FORBILD_Cone_y.cu +0 -0
  40. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/cuda/structs/cu/FORBILD_Cone_z.cu +0 -0
  41. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/cuda/structs/cu/FORBILD_Cylinder.cu +0 -0
  42. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/cuda/structs/cu/FORBILD_Cylinder_x.cu +0 -0
  43. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/cuda/structs/cu/FORBILD_Cylinder_y.cu +0 -0
  44. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/cuda/structs/cu/FORBILD_Cylinder_z.cu +0 -0
  45. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/cuda/structs/cu/FORBILD_Ellipsoid.cu +0 -0
  46. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/cuda/structs/cu/FORBILD_Ellipsoid_free.cu +0 -0
  47. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/cuda/structs/cu/FORBILD_Ellipt_Cyl.cu +0 -0
  48. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/cuda/structs/cu/FORBILD_Ellipt_Cyl_x.cu +0 -0
  49. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/cuda/structs/cu/FORBILD_Ellipt_Cyl_y.cu +0 -0
  50. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/cuda/structs/cu/FORBILD_Ellipt_Cyl_z.cu +0 -0
  51. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/cuda/structs/cu/FORBILD_Shape.cu +0 -0
  52. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/cuda/structs/cu/FORBILD_Sphere.cu +0 -0
  53. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/cuda/structs/cu/__init__.py +0 -0
  54. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/cuda/structs/geometry.py +0 -0
  55. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/cuda/structs/test_subdir/__init__.py +0 -0
  56. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/cuda/structs/test_subdir/test_config.py +0 -0
  57. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/.gitignore +0 -0
  58. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/FORBILD/abdomen/AbdomenPhantom.pha +0 -0
  59. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/FORBILD/abdomen/AbdomenPhantom_fixed.pha +0 -0
  60. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/FORBILD/abdomen/TableOfTissues +0 -0
  61. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/FORBILD/abdomen/Wirbel.pha +0 -0
  62. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/FORBILD/custom_composite/Ribs.pha +0 -0
  63. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/FORBILD/custom_composite/Shoulders.pha +0 -0
  64. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/FORBILD/custom_composite/TableOfTissues +0 -0
  65. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/FORBILD/custom_composite/Vertebra.pha +0 -0
  66. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/FORBILD/custom_composite/part_01_hip.pha +0 -0
  67. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/FORBILD/custom_composite/part_02_abdomen.pha +0 -0
  68. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/FORBILD/custom_composite/part_03_thorax.pha +0 -0
  69. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/FORBILD/custom_composite/part_04_head.pha +0 -0
  70. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/FORBILD/custom_composite/part_05_jaw.pha +0 -0
  71. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/FORBILD/custom_other/rock_canister_01.pha +0 -0
  72. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/FORBILD/custom_other/rock_canister_01_cavities_1e5.pha +0 -0
  73. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/FORBILD/custom_other/unit_Cyl_z.pha +0 -0
  74. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/FORBILD/head/HeadPhantom.pha +0 -0
  75. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/FORBILD/head/TableOfTissues +0 -0
  76. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/FORBILD/hip/HipPhantom.pha +0 -0
  77. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/FORBILD/jaw/JawPhantom.pha +0 -0
  78. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/FORBILD/lungs/LungPhantom3Generations.pha +0 -0
  79. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/FORBILD/thorax/Ribs.pha +0 -0
  80. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/FORBILD/thorax/Shoulders.pha +0 -0
  81. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/FORBILD/thorax/TableOfTissues +0 -0
  82. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/FORBILD/thorax/ThoraxPhantom.pha +0 -0
  83. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/FORBILD/thorax/Vertebra.pha +0 -0
  84. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/README.txt +0 -0
  85. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/cusrc/CB_backproject.cu +0 -0
  86. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/cusrc/CB_backproject_sharedmem.cu +0 -0
  87. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/cusrc/CB_project_sharedmem.cu +0 -0
  88. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/cusrc/CB_project_texture_chunked.cu +0 -0
  89. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/cusrc/FORBILD_volumes.h +0 -0
  90. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/cusrc/base.h +0 -0
  91. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/cusrc/config_cb_backproject.h +0 -0
  92. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/cusrc/config_cb_project.h +0 -0
  93. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/cusrc/config_cb_project_FORBILD.h +0 -0
  94. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/cusrc/geometry.h +0 -0
  95. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/cusrc/get_bboxes_FORBILD.cu +0 -0
  96. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/cusrc/ramlak_convolve.cu +0 -0
  97. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/cusrc/sample_FORBILD_volumes.cu +0 -0
  98. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/cusrc/test_kernel.cu +0 -0
  99. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/cusrc/test_subdir/test_config.h +0 -0
  100. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/data/cusrc/texture_operations.cu +0 -0
  101. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/examples/composite_human_sirt.py +0 -0
  102. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/examples/fan_beam_sirt.py +0 -0
  103. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/examples/helical_sirt.py +0 -0
  104. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/examples/lungs_sirt.py +0 -0
  105. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/examples/trajtest_A_sirt.py +0 -0
  106. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/examples/triangle_exp_fb.py +0 -0
  107. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/gbc/__init__.py +0 -0
  108. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/gbc/filters.py +0 -0
  109. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/gbc/weightinteg.py +0 -0
  110. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/image_view.py +0 -0
  111. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/iterators/__init__.py +0 -0
  112. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/iterators/landweber_vram.py +0 -0
  113. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/iterators/sirt_vram.py +0 -0
  114. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/lib/__init__.py +0 -0
  115. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/lib/argparse_tools.py +0 -0
  116. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/lib/bboxes_FORBILD.py +0 -0
  117. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/lib/click_tools.py +0 -0
  118. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/lib/empty_context_manager.py +0 -0
  119. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/lib/gpu_tools.py +0 -0
  120. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/lib/import_tools.py +0 -0
  121. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/lib/lds.py +0 -0
  122. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/lib/ng_tools.py +0 -0
  123. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/lib/np_tools.py +0 -0
  124. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/lib/process_pha_file.py +0 -0
  125. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/lib/sample_FORBILD.py +0 -0
  126. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/lib/texture_tools/__init__.py +0 -0
  127. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/lib/texture_tools/operations.py +0 -0
  128. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/lib/texture_tools/texture.py +0 -0
  129. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/liveplot.py +0 -0
  130. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/logtools/__init__.py +0 -0
  131. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/logtools/config.py +0 -0
  132. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/logtools/pbar.py +0 -0
  133. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/logtools/pbar_tqdm.py +0 -0
  134. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/logtools/rich_custombar.py +0 -0
  135. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/phantoms/FORBILD_phantoms.py +0 -0
  136. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/phantoms/__init__.py +0 -0
  137. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/ramp_kernels.py +0 -0
  138. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/scripts/cli.py +0 -0
  139. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/scripts/make_geometry_cone_cyl.py +0 -0
  140. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/scripts/make_geometry_fan_circ.py +0 -0
  141. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/scripts/neuroglance.py +0 -0
  142. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/scripts/project_cbfp.py +0 -0
  143. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/tests/__init__.py +0 -0
  144. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/tests/cuda_kernels/__init__.py +0 -0
  145. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/tests/cuda_kernels/test_backproject_cb.py +0 -0
  146. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/tests/cuda_kernels/test_cusrc/__init__.py +0 -0
  147. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/tests/cuda_kernels/test_kernel_structs.py +0 -0
  148. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/tests/cuda_kernels/test_project_cb.py +0 -0
  149. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/tests/cuda_kernels/test_project_cb_FORBILD_phantoms.py +0 -0
  150. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/tests/cuda_kernels/test_project_cb_FORBILD_shapes.py +0 -0
  151. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/tests/test_FORBILD_lungs_construction.py +0 -0
  152. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict/tests/test_volume.py +0 -0
  153. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict.egg-info/SOURCES.txt +0 -0
  154. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict.egg-info/dependency_links.txt +0 -0
  155. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict.egg-info/entry_points.txt +0 -0
  156. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict.egg-info/requires.txt +0 -0
  157. {aprict-0.0.24 → aprict-0.0.24.dev1}/src/aprict.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aprict
3
- Version: 0.0.24
3
+ Version: 0.0.24.dev1
4
4
  Summary: Tools to simulate and reconstruct XCT transmission data.
5
5
  Author: Murdock Grewar
6
6
  Author-email: Murdock Grewar <murdock.grewar@anu.edu.au>
@@ -36,6 +36,10 @@ Requires-Dist: neuroglancer>=2.41.0; extra == "gui"
36
36
  Dynamic: author
37
37
  Dynamic: license-file
38
38
 
39
+ [![Static Badge](https://img.shields.io/badge/ORCiD-0000--0002--0015--8284-green?logo=orcid)](https://orcid.org/0000-0002-0015-8284)
40
+ [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.23632625.svg)](https://doi.org/10.5281/zenodo.23632625)
41
+ ![PyPI Version](https://img.shields.io/pypi/v/aprict)
42
+ [![Project Status: WIP – Initial development is in progress, but there has not yet been a stable, usable release suitable for the public.](https://www.repostatus.org/badges/latest/wip.svg)](https://www.repostatus.org/#wip)
39
43
  <details open><summary><h1>About</h1></summary>
40
44
 
41
45
  Description
@@ -1,3 +1,7 @@
1
+ [![Static Badge](https://img.shields.io/badge/ORCiD-0000--0002--0015--8284-green?logo=orcid)](https://orcid.org/0000-0002-0015-8284)
2
+ [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.23632625.svg)](https://doi.org/10.5281/zenodo.23632625)
3
+ ![PyPI Version](https://img.shields.io/pypi/v/aprict)
4
+ [![Project Status: WIP – Initial development is in progress, but there has not yet been a stable, usable release suitable for the public.](https://www.repostatus.org/badges/latest/wip.svg)](https://www.repostatus.org/#wip)
1
5
  <details open><summary><h1>About</h1></summary>
2
6
 
3
7
  Description
@@ -162,12 +162,15 @@ def downbin( # ruff: ignore[complex-structure]
162
162
  return xnew
163
163
 
164
164
 
165
- def save(path: pathlib.Path, arr: np.ndarray) -> None:
165
+ def save(path: pathlib.Path, arr: np.ndarray, flush: bool = True) -> None:
166
166
  """Save an array to a path in a faster manner than np.save."""
167
167
  mm: np.memmap = np.lib.format.open_memmap(
168
168
  path, shape=arr.shape, dtype=arr.dtype, mode="w+"
169
169
  )
170
170
  ne.evaluate("x", out=mm, local_dict={"x": arr})
171
+ if flush:
172
+ # Write changes to disk now.
173
+ mm.flush()
171
174
 
172
175
 
173
176
  class NETHREADS(enum.Enum):
@@ -872,7 +872,7 @@ def main_from_args(args: types.SimpleNamespace) -> None: # ruff: ignore[complex
872
872
  if logger is not None:
873
873
  msg = f"Saving full volume to '{savepath}'..."
874
874
  logger.debug(msg)
875
- lib.ne_tools.save(savepath, x)
875
+ lib.ne_tools.save(savepath, x, flush=True)
876
876
  if logger is not None:
877
877
  msg = "Full volume now saved to disk."
878
878
  logger.debug(msg)
@@ -1139,7 +1139,9 @@ def main_from_args(args: types.SimpleNamespace) -> None: # ruff: ignore[complex
1139
1139
  logger.debug(msg)
1140
1140
  if vol is not None:
1141
1141
  # Not efficient. Can't copy from CUDAArray directly to the chunk because it's not C-contiguous.
1142
- vol.as_numpy(out=vol_np[..., sl_vol], allow_indirect_copy=True)
1142
+ vol.as_numpy(
1143
+ out=vol_np[..., sl_vol], allow_indirect_copy=True
1144
+ )
1143
1145
  del vol
1144
1146
  lib.gpu_tools.clear_cache()
1145
1147
  else:
@@ -946,7 +946,11 @@ def main_from_args(args: types.SimpleNamespace) -> None: # ruff: ignore[complex
946
946
 
947
947
  # Convert the progress display ta more intuitive set of units using the progratio.
948
948
  # The displayed progress will correspond to bytes in the padded backprojection.
949
- progratio: float = (math.prod(padded_volshape) * np.dtype(vol_dtype).itemsize / bytes_cumsum[-1])
949
+ progratio: float = (
950
+ math.prod(padded_volshape)
951
+ * np.dtype(vol_dtype).itemsize
952
+ / bytes_cumsum[-1]
953
+ )
950
954
  curr_slice: slice | None = None
951
955
  logger.info("Beginning reconstruction...")
952
956
  with logtools.ProgressBar(
@@ -1066,7 +1070,8 @@ def main_from_args(args: types.SimpleNamespace) -> None: # ruff: ignore[complex
1066
1070
  prog_evs_bytes.append(
1067
1071
  (
1068
1072
  ev,
1069
- progratio * (
1073
+ progratio
1074
+ * (
1070
1075
  (
1071
1076
  (sl.stop - sl.start)
1072
1077
  / tot_num_nonskipped_projs
@@ -1292,7 +1297,7 @@ def main_from_args(args: types.SimpleNamespace) -> None: # ruff: ignore[complex
1292
1297
  x = vol_filtered
1293
1298
  # Save the volume as a .npy file
1294
1299
  tomo_path = path_output.joinpath("recon.npy")
1295
- lib.ne_tools.save(tomo_path, x)
1300
+ lib.ne_tools.save(tomo_path, x, flush=True)
1296
1301
  msg = "Full volume now saved to disk."
1297
1302
  logger.debug(msg)
1298
1303
  # Now get rid of the temporary files, if applicable
@@ -521,7 +521,7 @@ def main() -> None:
521
521
  save_path.joinpath("tomograms") if is_intermediate else save_path
522
522
  )
523
523
  tomo_path.mkdir(exist_ok=True)
524
- lib.ne_tools.save(tomo_path.joinpath(id_str + ".npy"), x)
524
+ lib.ne_tools.save(tomo_path.joinpath(id_str + ".npy"), x, flush=True)
525
525
 
526
526
  # Save midslices from volume as .png files
527
527
  # The method used here can be a bit slow, because I get a full numpy array and process that.
@@ -16,4 +16,4 @@
16
16
  # This file is read from by 'setup.py', from '__init__.py', and also by a git hook which increments the dev number each time a commit is made on the 'dev' branch. There should only be one line in the file which begins with "version".
17
17
  """File which stores the current version number of this module."""
18
18
 
19
- version = "0.0.24"
19
+ version = "0.0.24.dev1"
@@ -193,7 +193,9 @@ class Volume[
193
193
  self._texture, vol._texture, tout=self._texture, eps=eps
194
194
  )
195
195
 
196
- def as_numpy(self, out: np.ndarray | None = None, allow_indirect_copy: bool = False) -> np.ndarray:
196
+ def as_numpy(
197
+ self, out: np.ndarray | None = None, allow_indirect_copy: bool = False
198
+ ) -> np.ndarray:
197
199
  """Copy this volume's data into a numpy array."""
198
200
  # Note: the option 'allow_indirect_copy' allows a fast-but-not-fastest copy when the output array is not C-contiguous.
199
201
  if out is not None and not out.flags["C_CONTIGUOUS"]:
@@ -220,7 +222,7 @@ class Volume[
220
222
  def save(self, path: pathlib.Path) -> None:
221
223
  """Save this volume into a numpy array on disk."""
222
224
  x = self.as_numpy()
223
- ne_tools.save(path, x)
225
+ ne_tools.save(path, x, flush=True)
224
226
 
225
227
  def as_cupy(self, out: cp.ndarray | None = None) -> cp.ndarray:
226
228
  """Copy this volume's data into a cupy array."""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aprict
3
- Version: 0.0.24
3
+ Version: 0.0.24.dev1
4
4
  Summary: Tools to simulate and reconstruct XCT transmission data.
5
5
  Author: Murdock Grewar
6
6
  Author-email: Murdock Grewar <murdock.grewar@anu.edu.au>
@@ -36,6 +36,10 @@ Requires-Dist: neuroglancer>=2.41.0; extra == "gui"
36
36
  Dynamic: author
37
37
  Dynamic: license-file
38
38
 
39
+ [![Static Badge](https://img.shields.io/badge/ORCiD-0000--0002--0015--8284-green?logo=orcid)](https://orcid.org/0000-0002-0015-8284)
40
+ [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.23632625.svg)](https://doi.org/10.5281/zenodo.23632625)
41
+ ![PyPI Version](https://img.shields.io/pypi/v/aprict)
42
+ [![Project Status: WIP – Initial development is in progress, but there has not yet been a stable, usable release suitable for the public.](https://www.repostatus.org/badges/latest/wip.svg)](https://www.repostatus.org/#wip)
39
43
  <details open><summary><h1>About</h1></summary>
40
44
 
41
45
  Description
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes