careamics 0.0.11__tar.gz → 0.0.13__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.

Potentially problematic release.


This version of careamics might be problematic. Click here for more details.

Files changed (346) hide show
  1. {careamics-0.0.11 → careamics-0.0.13}/.github/ISSUE_TEMPLATE/bug_report.md +1 -1
  2. {careamics-0.0.11 → careamics-0.0.13}/.github/workflows/ci.yml +7 -5
  3. careamics-0.0.13/.github/workflows/ci_macos.yml +67 -0
  4. {careamics-0.0.11 → careamics-0.0.13}/.github/workflows/codecov.yml +1 -1
  5. {careamics-0.0.11 → careamics-0.0.13}/.github/workflows/lvae.yml +2 -2
  6. {careamics-0.0.11 → careamics-0.0.13}/.pre-commit-config.yaml +7 -6
  7. {careamics-0.0.11 → careamics-0.0.13}/PKG-INFO +12 -11
  8. {careamics-0.0.11 → careamics-0.0.13}/pyproject.toml +24 -12
  9. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/careamist.py +24 -7
  10. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/cli/utils.py +1 -1
  11. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/algorithms/n2v_algorithm_model.py +1 -1
  12. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/architectures/unet_model.py +3 -0
  13. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/callback_model.py +23 -34
  14. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/configuration.py +55 -4
  15. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/configuration_factories.py +288 -23
  16. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/data/__init__.py +2 -0
  17. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/data/data_model.py +41 -4
  18. careamics-0.0.13/src/careamics/config/data/ng_data_model.py +381 -0
  19. careamics-0.0.13/src/careamics/config/data/patching_strategies/__init__.py +14 -0
  20. careamics-0.0.13/src/careamics/config/data/patching_strategies/_overlapping_patched_model.py +103 -0
  21. careamics-0.0.13/src/careamics/config/data/patching_strategies/_patched_model.py +56 -0
  22. careamics-0.0.13/src/careamics/config/data/patching_strategies/random_patching_model.py +21 -0
  23. careamics-0.0.13/src/careamics/config/data/patching_strategies/sequential_patching_model.py +25 -0
  24. careamics-0.0.13/src/careamics/config/data/patching_strategies/tiled_patching_model.py +40 -0
  25. careamics-0.0.13/src/careamics/config/data/patching_strategies/whole_patching_model.py +12 -0
  26. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/inference_model.py +6 -3
  27. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/optimizer_models.py +1 -3
  28. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/support/supported_data.py +7 -0
  29. careamics-0.0.13/src/careamics/config/support/supported_patching_strategies.py +22 -0
  30. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/training_model.py +0 -2
  31. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/validators/validator_utils.py +4 -3
  32. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/dataset/dataset_utils/iterate_over_files.py +2 -2
  33. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/dataset/in_memory_dataset.py +2 -1
  34. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/dataset/iterable_dataset.py +2 -2
  35. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/dataset/iterable_pred_dataset.py +2 -2
  36. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/dataset/iterable_tiled_pred_dataset.py +2 -2
  37. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/dataset/patching/patching.py +3 -2
  38. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/dataset/tiling/lvae_tiled_patching.py +16 -6
  39. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/dataset/tiling/tiled_patching.py +2 -1
  40. careamics-0.0.13/src/careamics/dataset_ng/README.md +212 -0
  41. careamics-0.0.13/src/careamics/dataset_ng/dataset.py +229 -0
  42. careamics-0.0.13/src/careamics/dataset_ng/demos/bsd68_demo.ipynb +361 -0
  43. careamics-0.0.13/src/careamics/dataset_ng/demos/care_U2OS_demo.ipynb +330 -0
  44. careamics-0.0.13/src/careamics/dataset_ng/demos/demo_custom_image_stack.ipynb +734 -0
  45. careamics-0.0.13/src/careamics/dataset_ng/demos/demo_datamodule.ipynb +447 -0
  46. {careamics-0.0.11/src/careamics/dataset_ng → careamics-0.0.13/src/careamics/dataset_ng/demos}/demo_dataset.ipynb +60 -53
  47. {careamics-0.0.11/src/careamics/dataset_ng → careamics-0.0.13/src/careamics/dataset_ng/demos}/demo_patch_extractor.py +7 -9
  48. careamics-0.0.13/src/careamics/dataset_ng/demos/mouse_nuclei_demo.ipynb +292 -0
  49. careamics-0.0.13/src/careamics/dataset_ng/factory.py +451 -0
  50. careamics-0.0.13/src/careamics/dataset_ng/legacy_interoperability.py +170 -0
  51. careamics-0.0.13/src/careamics/dataset_ng/patch_extractor/__init__.py +5 -0
  52. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/dataset_ng/patch_extractor/demo_custom_image_stack_loader.py +7 -5
  53. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/dataset_ng/patch_extractor/image_stack/__init__.py +4 -1
  54. careamics-0.0.13/src/careamics/dataset_ng/patch_extractor/image_stack/czi_image_stack.py +360 -0
  55. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/dataset_ng/patch_extractor/image_stack/image_stack_protocol.py +5 -1
  56. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/dataset_ng/patch_extractor/image_stack/in_memory_image_stack.py +1 -1
  57. careamics-0.0.13/src/careamics/dataset_ng/patch_extractor/image_stack_loader.py +70 -0
  58. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/dataset_ng/patch_extractor/patch_extractor.py +5 -4
  59. careamics-0.0.13/src/careamics/dataset_ng/patch_extractor/patch_extractor_factory.py +217 -0
  60. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/dataset_ng/patching_strategies/__init__.py +6 -1
  61. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/dataset_ng/patching_strategies/patching_strategy_protocol.py +31 -0
  62. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/dataset_ng/patching_strategies/random_patching.py +5 -1
  63. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/dataset_ng/patching_strategies/sequential_patching.py +5 -5
  64. careamics-0.0.13/src/careamics/dataset_ng/patching_strategies/tiling_strategy.py +172 -0
  65. careamics-0.0.13/src/careamics/dataset_ng/patching_strategies/whole_sample.py +36 -0
  66. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/file_io/read/get_func.py +2 -1
  67. careamics-0.0.13/src/careamics/lightning/dataset_ng/__init__.py +1 -0
  68. careamics-0.0.13/src/careamics/lightning/dataset_ng/data_module.py +678 -0
  69. careamics-0.0.13/src/careamics/lightning/dataset_ng/lightning_modules/__init__.py +9 -0
  70. careamics-0.0.13/src/careamics/lightning/dataset_ng/lightning_modules/care_module.py +97 -0
  71. careamics-0.0.13/src/careamics/lightning/dataset_ng/lightning_modules/n2v_module.py +106 -0
  72. careamics-0.0.13/src/careamics/lightning/dataset_ng/lightning_modules/unet_module.py +212 -0
  73. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/lightning/lightning_module.py +5 -1
  74. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/lightning/predict_data_module.py +2 -1
  75. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/lightning/train_data_module.py +2 -1
  76. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/losses/loss_factory.py +2 -1
  77. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/lvae_training/dataset/__init__.py +8 -3
  78. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/lvae_training/dataset/config.py +3 -3
  79. careamics-0.0.13/src/careamics/lvae_training/dataset/ms_dataset_ref.py +1067 -0
  80. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/lvae_training/dataset/multich_dataset.py +46 -17
  81. careamics-0.0.13/src/careamics/lvae_training/dataset/multicrop_dset.py +196 -0
  82. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/lvae_training/dataset/types.py +3 -3
  83. careamics-0.0.13/src/careamics/lvae_training/dataset/utils/index_manager.py +491 -0
  84. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/lvae_training/eval_utils.py +93 -3
  85. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/model_io/bioimage/bioimage_utils.py +1 -1
  86. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/model_io/bioimage/model_description.py +1 -1
  87. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/model_io/bmz_io.py +1 -1
  88. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/model_io/model_io_utils.py +2 -2
  89. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/models/activation.py +2 -1
  90. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/prediction_utils/prediction_outputs.py +1 -1
  91. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/prediction_utils/stitch_prediction.py +1 -1
  92. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/transforms/compose.py +1 -0
  93. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/transforms/n2v_manipulate_torch.py +15 -9
  94. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/transforms/normalize.py +18 -7
  95. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/transforms/pixel_manipulation_torch.py +59 -92
  96. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/utils/lightning_utils.py +25 -11
  97. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/utils/metrics.py +2 -1
  98. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/utils/torch_utils.py +23 -0
  99. {careamics-0.0.11 → careamics-0.0.13}/tests/cli/test_main.py +3 -0
  100. careamics-0.0.13/tests/config/data/patching_strategies/test_strategies.py +35 -0
  101. careamics-0.0.13/tests/config/data/test_ng_data_model.py +70 -0
  102. {careamics-0.0.11 → careamics-0.0.13}/tests/config/test_configuration.py +12 -0
  103. {careamics-0.0.11 → careamics-0.0.13}/tests/config/test_configuration_factories.py +24 -0
  104. {careamics-0.0.11 → careamics-0.0.13}/tests/conftest.py +11 -2
  105. {careamics-0.0.11 → careamics-0.0.13}/tests/dataset/tiling/test_lvae_tiled_patching.py +1 -1
  106. {careamics-0.0.11 → careamics-0.0.13}/tests/dataset_ng/dataset/test_dataset.py +73 -33
  107. careamics-0.0.13/tests/dataset_ng/patch_extractor/image_stack/test_czi_image_stack.py +176 -0
  108. careamics-0.0.13/tests/dataset_ng/patch_extractor/image_stack/test_import_czi_image_stack.py +13 -0
  109. {careamics-0.0.11 → careamics-0.0.13}/tests/dataset_ng/patching_strategies/test_all_strategies.py +30 -4
  110. {careamics-0.0.11 → careamics-0.0.13}/tests/dataset_ng/patching_strategies/test_random_patching_ng.py +8 -8
  111. {careamics-0.0.11 → careamics-0.0.13}/tests/dataset_ng/patching_strategies/test_sequential_patching_ng.py +3 -1
  112. careamics-0.0.13/tests/dataset_ng/patching_strategies/test_tiling_strategy.py +162 -0
  113. {careamics-0.0.11 → careamics-0.0.13}/tests/lightning/callbacks/prediction_writer_callback/test_prediction_writer_callback.py +2 -0
  114. {careamics-0.0.11 → careamics-0.0.13}/tests/lightning/test_LVAE_lightning_module.py +2 -1
  115. {careamics-0.0.11 → careamics-0.0.13}/tests/lightning/test_lightning_api.py +3 -0
  116. {careamics-0.0.11 → careamics-0.0.13}/tests/lightning/test_lightning_module.py +1 -0
  117. {careamics-0.0.11 → careamics-0.0.13}/tests/losses/test_lvae_losses.py +2 -1
  118. {careamics-0.0.11 → careamics-0.0.13}/tests/model_io/test_bmz_io.py +3 -0
  119. {careamics-0.0.11 → careamics-0.0.13}/tests/test_careamist.py +61 -0
  120. {careamics-0.0.11 → careamics-0.0.13}/tests/transforms/test_manipulate_n2v.py +1 -1
  121. {careamics-0.0.11 → careamics-0.0.13}/tests/transforms/test_normalize.py +26 -0
  122. {careamics-0.0.11 → careamics-0.0.13}/tests/transforms/test_pixel_manipulation.py +1 -1
  123. {careamics-0.0.11 → careamics-0.0.13}/tests/utils/test_lightning_utils.py +2 -0
  124. careamics-0.0.11/scripts/export_bmz_readme.py +0 -29
  125. careamics-0.0.11/scripts/export_covers.py +0 -0
  126. careamics-0.0.11/src/careamics/dataset_ng/dataset/__init__.py +0 -3
  127. careamics-0.0.11/src/careamics/dataset_ng/dataset/dataset.py +0 -184
  128. careamics-0.0.11/src/careamics/dataset_ng/demo_patch_extractor_factory.py +0 -37
  129. careamics-0.0.11/src/careamics/dataset_ng/patch_extractor/__init__.py +0 -10
  130. careamics-0.0.11/src/careamics/dataset_ng/patch_extractor/image_stack_loader.py +0 -140
  131. careamics-0.0.11/src/careamics/dataset_ng/patch_extractor/patch_extractor_factory.py +0 -208
  132. careamics-0.0.11/src/careamics/lvae_training/dataset/utils/index_manager.py +0 -232
  133. {careamics-0.0.11 → careamics-0.0.13}/.github/ISSUE_TEMPLATE/example_report.md +0 -0
  134. {careamics-0.0.11 → careamics-0.0.13}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  135. {careamics-0.0.11 → careamics-0.0.13}/.github/ISSUE_TEMPLATE/interoperability_request.md +0 -0
  136. {careamics-0.0.11 → careamics-0.0.13}/.github/ISSUE_TEMPLATE/question.md +0 -0
  137. {careamics-0.0.11 → careamics-0.0.13}/.github/ISSUE_TEMPLATE/refactoring_suggestion.md +0 -0
  138. {careamics-0.0.11 → careamics-0.0.13}/.github/TEST_FAIL_TEMPLATE.md +0 -0
  139. {careamics-0.0.11 → careamics-0.0.13}/.github/dependabot.yml +0 -0
  140. {careamics-0.0.11 → careamics-0.0.13}/.github/pull_request_template.md +0 -0
  141. {careamics-0.0.11 → careamics-0.0.13}/.gitignore +0 -0
  142. {careamics-0.0.11 → careamics-0.0.13}/CODE_OF_CONDUCT.md +0 -0
  143. {careamics-0.0.11 → careamics-0.0.13}/LICENSE +0 -0
  144. {careamics-0.0.11 → careamics-0.0.13}/README.md +0 -0
  145. {careamics-0.0.11 → careamics-0.0.13}/codecov.yml +0 -0
  146. {careamics-0.0.11 → careamics-0.0.13}/mypy.ini +0 -0
  147. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/__init__.py +0 -0
  148. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/cli/__init__.py +0 -0
  149. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/cli/conf.py +0 -0
  150. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/cli/main.py +0 -0
  151. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/__init__.py +0 -0
  152. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/algorithms/__init__.py +0 -0
  153. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/algorithms/care_algorithm_model.py +0 -0
  154. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/algorithms/n2n_algorithm_model.py +0 -0
  155. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/algorithms/unet_algorithm_model.py +0 -0
  156. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/algorithms/vae_algorithm_model.py +0 -0
  157. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/architectures/__init__.py +0 -0
  158. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/architectures/architecture_model.py +0 -0
  159. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/architectures/lvae_model.py +0 -0
  160. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/configuration_io.py +0 -0
  161. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/likelihood_model.py +0 -0
  162. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/loss_model.py +0 -0
  163. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/nm_model.py +0 -0
  164. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/support/__init__.py +0 -0
  165. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/support/supported_activations.py +0 -0
  166. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/support/supported_algorithms.py +0 -0
  167. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/support/supported_architectures.py +0 -0
  168. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/support/supported_loggers.py +0 -0
  169. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/support/supported_losses.py +0 -0
  170. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/support/supported_optimizers.py +0 -0
  171. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/support/supported_pixel_manipulations.py +0 -0
  172. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/support/supported_struct_axis.py +0 -0
  173. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/support/supported_transforms.py +0 -0
  174. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/tile_information.py +0 -0
  175. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/transformations/__init__.py +0 -0
  176. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/transformations/n2v_manipulate_model.py +0 -0
  177. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/transformations/normalize_model.py +0 -0
  178. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/transformations/transform_model.py +0 -0
  179. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/transformations/transform_unions.py +0 -0
  180. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/transformations/xy_flip_model.py +0 -0
  181. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/transformations/xy_random_rotate90_model.py +0 -0
  182. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/validators/__init__.py +0 -0
  183. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/config/validators/model_validators.py +0 -0
  184. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/conftest.py +0 -0
  185. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/dataset/__init__.py +0 -0
  186. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/dataset/dataset_utils/__init__.py +0 -0
  187. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/dataset/dataset_utils/dataset_utils.py +0 -0
  188. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/dataset/dataset_utils/file_utils.py +0 -0
  189. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/dataset/dataset_utils/running_stats.py +0 -0
  190. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/dataset/in_memory_pred_dataset.py +0 -0
  191. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/dataset/in_memory_tiled_pred_dataset.py +0 -0
  192. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/dataset/patching/__init__.py +0 -0
  193. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/dataset/patching/random_patching.py +0 -0
  194. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/dataset/patching/sequential_patching.py +0 -0
  195. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/dataset/patching/validate_patch_dimension.py +0 -0
  196. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/dataset/tiling/__init__.py +0 -0
  197. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/dataset/tiling/collate_tiles.py +0 -0
  198. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/dataset/zarr_dataset.py +0 -0
  199. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/dataset_ng/patch_extractor/image_stack/zarr_image_stack.py +0 -0
  200. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/file_io/__init__.py +0 -0
  201. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/file_io/read/__init__.py +0 -0
  202. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/file_io/read/tiff.py +0 -0
  203. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/file_io/read/zarr.py +0 -0
  204. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/file_io/write/__init__.py +0 -0
  205. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/file_io/write/get_func.py +0 -0
  206. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/file_io/write/tiff.py +0 -0
  207. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/lightning/__init__.py +0 -0
  208. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/lightning/callbacks/__init__.py +0 -0
  209. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/lightning/callbacks/hyperparameters_callback.py +0 -0
  210. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/lightning/callbacks/prediction_writer_callback/__init__.py +0 -0
  211. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/lightning/callbacks/prediction_writer_callback/file_path_utils.py +0 -0
  212. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/lightning/callbacks/prediction_writer_callback/prediction_writer_callback.py +0 -0
  213. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/lightning/callbacks/prediction_writer_callback/write_strategy.py +0 -0
  214. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/lightning/callbacks/prediction_writer_callback/write_strategy_factory.py +0 -0
  215. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/lightning/callbacks/progress_bar_callback.py +0 -0
  216. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/losses/__init__.py +0 -0
  217. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/losses/fcn/__init__.py +0 -0
  218. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/losses/fcn/losses.py +0 -0
  219. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/losses/lvae/__init__.py +0 -0
  220. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/losses/lvae/loss_utils.py +0 -0
  221. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/losses/lvae/losses.py +0 -0
  222. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/lvae_training/__init__.py +0 -0
  223. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/lvae_training/calibration.py +0 -0
  224. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/lvae_training/dataset/lc_dataset.py +0 -0
  225. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/lvae_training/dataset/multifile_dataset.py +0 -0
  226. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/lvae_training/dataset/utils/__init__.py +0 -0
  227. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/lvae_training/dataset/utils/data_utils.py +0 -0
  228. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/lvae_training/dataset/utils/empty_patch_fetcher.py +0 -0
  229. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/lvae_training/dataset/utils/index_switcher.py +0 -0
  230. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/lvae_training/get_config.py +0 -0
  231. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/lvae_training/lightning_module.py +0 -0
  232. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/lvae_training/metrics.py +0 -0
  233. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/lvae_training/train_lvae.py +0 -0
  234. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/lvae_training/train_utils.py +0 -0
  235. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/model_io/__init__.py +0 -0
  236. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/model_io/bioimage/__init__.py +0 -0
  237. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/model_io/bioimage/_readme_factory.py +0 -0
  238. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/model_io/bioimage/cover_factory.py +0 -0
  239. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/models/__init__.py +0 -0
  240. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/models/layers.py +0 -0
  241. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/models/lvae/__init__.py +0 -0
  242. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/models/lvae/layers.py +0 -0
  243. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/models/lvae/likelihoods.py +0 -0
  244. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/models/lvae/lvae.py +0 -0
  245. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/models/lvae/noise_models.py +0 -0
  246. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/models/lvae/stochastic.py +0 -0
  247. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/models/lvae/utils.py +0 -0
  248. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/models/model_factory.py +0 -0
  249. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/models/unet.py +0 -0
  250. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/prediction_utils/__init__.py +0 -0
  251. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/prediction_utils/lvae_prediction.py +0 -0
  252. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/prediction_utils/lvae_tiling_manager.py +0 -0
  253. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/py.typed +0 -0
  254. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/transforms/__init__.py +0 -0
  255. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/transforms/n2v_manipulate.py +0 -0
  256. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/transforms/pixel_manipulation.py +0 -0
  257. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/transforms/struct_mask_parameters.py +0 -0
  258. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/transforms/transform.py +0 -0
  259. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/transforms/tta.py +0 -0
  260. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/transforms/xy_flip.py +0 -0
  261. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/transforms/xy_random_rotate90.py +0 -0
  262. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/utils/__init__.py +0 -0
  263. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/utils/autocorrelation.py +0 -0
  264. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/utils/base_enum.py +0 -0
  265. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/utils/context.py +0 -0
  266. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/utils/logging.py +0 -0
  267. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/utils/path_utils.py +0 -0
  268. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/utils/plotting.py +0 -0
  269. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/utils/ram.py +0 -0
  270. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/utils/receptive_field.py +0 -0
  271. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/utils/serializers.py +0 -0
  272. {careamics-0.0.11 → careamics-0.0.13}/src/careamics/utils/version.py +0 -0
  273. {careamics-0.0.11 → careamics-0.0.13}/tests/cli/__init__.py +0 -0
  274. {careamics-0.0.11 → careamics-0.0.13}/tests/cli/test_conf.py +0 -0
  275. {careamics-0.0.11 → careamics-0.0.13}/tests/config/algorithms/test_care_algorithm_model.py +0 -0
  276. {careamics-0.0.11 → careamics-0.0.13}/tests/config/algorithms/test_n2n_algorithm_model.py +0 -0
  277. {careamics-0.0.11 → careamics-0.0.13}/tests/config/algorithms/test_n2v_algorithm_model.py +0 -0
  278. {careamics-0.0.11 → careamics-0.0.13}/tests/config/architectures/test_architecture_model.py +0 -0
  279. {careamics-0.0.11 → careamics-0.0.13}/tests/config/architectures/test_lvae_model.py +0 -0
  280. {careamics-0.0.11 → careamics-0.0.13}/tests/config/architectures/test_unet_model.py +0 -0
  281. {careamics-0.0.11 → careamics-0.0.13}/tests/config/data/test_data_model.py +0 -0
  282. {careamics-0.0.11 → careamics-0.0.13}/tests/config/support/test_supported_data.py +0 -0
  283. {careamics-0.0.11 → careamics-0.0.13}/tests/config/support/test_supported_optimizers.py +0 -0
  284. {careamics-0.0.11 → careamics-0.0.13}/tests/config/test_callback_models.py +0 -0
  285. {careamics-0.0.11 → careamics-0.0.13}/tests/config/test_configuration_io.py +0 -0
  286. {careamics-0.0.11 → careamics-0.0.13}/tests/config/test_inference_model.py +0 -0
  287. {careamics-0.0.11 → careamics-0.0.13}/tests/config/test_n2v_preprocessing.py +0 -0
  288. {careamics-0.0.11 → careamics-0.0.13}/tests/config/test_optimizers_model.py +0 -0
  289. {careamics-0.0.11 → careamics-0.0.13}/tests/config/test_tile_information.py +0 -0
  290. {careamics-0.0.11 → careamics-0.0.13}/tests/config/test_training_model.py +0 -0
  291. {careamics-0.0.11 → careamics-0.0.13}/tests/config/test_unet_algorithm_model.py +0 -0
  292. {careamics-0.0.11 → careamics-0.0.13}/tests/config/test_vae_algorithm_model.py +0 -0
  293. {careamics-0.0.11 → careamics-0.0.13}/tests/config/transformations/test_n2v_manipulate_model.py +0 -0
  294. {careamics-0.0.11 → careamics-0.0.13}/tests/config/transformations/test_normalize_model.py +0 -0
  295. {careamics-0.0.11 → careamics-0.0.13}/tests/config/transformations/test_xy_flip_model.py +0 -0
  296. {careamics-0.0.11 → careamics-0.0.13}/tests/config/transformations/test_xy_random_rotate90_model.py +0 -0
  297. {careamics-0.0.11 → careamics-0.0.13}/tests/config/validators/test_model_validators.py +0 -0
  298. {careamics-0.0.11 → careamics-0.0.13}/tests/config/validators/test_validator_utils.py +0 -0
  299. {careamics-0.0.11 → careamics-0.0.13}/tests/dataset/dataset_utils/test_compute_normalization_stats.py +0 -0
  300. {careamics-0.0.11 → careamics-0.0.13}/tests/dataset/dataset_utils/test_list_files.py +0 -0
  301. {careamics-0.0.11 → careamics-0.0.13}/tests/dataset/patching/test_patching_utils.py +0 -0
  302. {careamics-0.0.11 → careamics-0.0.13}/tests/dataset/patching/test_random_patching.py +0 -0
  303. {careamics-0.0.11 → careamics-0.0.13}/tests/dataset/patching/test_sequential_patching.py +0 -0
  304. {careamics-0.0.11 → careamics-0.0.13}/tests/dataset/test_in_memory_dataset.py +0 -0
  305. {careamics-0.0.11 → careamics-0.0.13}/tests/dataset/test_in_memory_pred_dataset.py +0 -0
  306. {careamics-0.0.11 → careamics-0.0.13}/tests/dataset/test_in_memory_tiled_pred_dataset.py +0 -0
  307. {careamics-0.0.11 → careamics-0.0.13}/tests/dataset/test_iterable_dataset.py +0 -0
  308. {careamics-0.0.11 → careamics-0.0.13}/tests/dataset/test_iterable_pred_dataset.py +0 -0
  309. {careamics-0.0.11 → careamics-0.0.13}/tests/dataset/test_iterable_tiled_pred_dataset.py +0 -0
  310. {careamics-0.0.11 → careamics-0.0.13}/tests/dataset/tiling/test_collate_tiles.py +0 -0
  311. {careamics-0.0.11 → careamics-0.0.13}/tests/dataset/tiling/test_tiled_patching.py +0 -0
  312. {careamics-0.0.11 → careamics-0.0.13}/tests/dataset_ng/patch_extractor/image_stack/test_zarr_image_stack.py +0 -0
  313. {careamics-0.0.11 → careamics-0.0.13}/tests/file_io/read/test_get_read_func.py +0 -0
  314. {careamics-0.0.11 → careamics-0.0.13}/tests/file_io/read/test_read_tiff.py +0 -0
  315. {careamics-0.0.11 → careamics-0.0.13}/tests/file_io/write/test_get_write_func.py +0 -0
  316. {careamics-0.0.11 → careamics-0.0.13}/tests/file_io/write/test_write_tiff.py +0 -0
  317. {careamics-0.0.11 → careamics-0.0.13}/tests/lightning/callbacks/prediction_writer_callback/test_cache_tiles_write_strategy.py +0 -0
  318. {careamics-0.0.11 → careamics-0.0.13}/tests/lightning/callbacks/prediction_writer_callback/test_file_path_utils.py +0 -0
  319. {careamics-0.0.11 → careamics-0.0.13}/tests/lightning/callbacks/prediction_writer_callback/test_write_image_write_strategy.py +0 -0
  320. {careamics-0.0.11 → careamics-0.0.13}/tests/lightning/callbacks/prediction_writer_callback/test_write_strategy_factory.py +0 -0
  321. {careamics-0.0.11 → careamics-0.0.13}/tests/lightning/test_lightning_module_onnx_exportability.py +0 -0
  322. {careamics-0.0.11 → careamics-0.0.13}/tests/lightning/test_predict_data_module.py +0 -0
  323. {careamics-0.0.11 → careamics-0.0.13}/tests/lightning/test_train_data_module.py +0 -0
  324. {careamics-0.0.11 → careamics-0.0.13}/tests/likelihood_modules/test_likelihoods.py +0 -0
  325. {careamics-0.0.11 → careamics-0.0.13}/tests/models/lvae/test_lvae_architecture.py +0 -0
  326. {careamics-0.0.11 → careamics-0.0.13}/tests/models/lvae/test_noise_model.py +0 -0
  327. {careamics-0.0.11 → careamics-0.0.13}/tests/models/lvae/test_utils.py +0 -0
  328. {careamics-0.0.11 → careamics-0.0.13}/tests/models/test_model_factory.py +0 -0
  329. {careamics-0.0.11 → careamics-0.0.13}/tests/models/test_unet.py +0 -0
  330. {careamics-0.0.11 → careamics-0.0.13}/tests/prediction_utils/test_lvae_prediction.py +0 -0
  331. {careamics-0.0.11 → careamics-0.0.13}/tests/prediction_utils/test_prediction_outputs.py +0 -0
  332. {careamics-0.0.11 → careamics-0.0.13}/tests/prediction_utils/test_stitch_prediction.py +0 -0
  333. {careamics-0.0.11 → careamics-0.0.13}/tests/test_conftest.py +0 -0
  334. {careamics-0.0.11 → careamics-0.0.13}/tests/transforms/test_compose.py +0 -0
  335. {careamics-0.0.11 → careamics-0.0.13}/tests/transforms/test_tta.py +0 -0
  336. {careamics-0.0.11 → careamics-0.0.13}/tests/transforms/test_xy_flip.py +0 -0
  337. {careamics-0.0.11 → careamics-0.0.13}/tests/transforms/test_xy_random_rotate90.py +0 -0
  338. {careamics-0.0.11 → careamics-0.0.13}/tests/utils/test_autocorrelation.py +0 -0
  339. {careamics-0.0.11 → careamics-0.0.13}/tests/utils/test_base_enum.py +0 -0
  340. {careamics-0.0.11 → careamics-0.0.13}/tests/utils/test_context.py +0 -0
  341. {careamics-0.0.11 → careamics-0.0.13}/tests/utils/test_logging.py +0 -0
  342. {careamics-0.0.11 → careamics-0.0.13}/tests/utils/test_metrics.py +0 -0
  343. {careamics-0.0.11 → careamics-0.0.13}/tests/utils/test_serializers.py +0 -0
  344. {careamics-0.0.11 → careamics-0.0.13}/tests/utils/test_torch_utils.py +0 -0
  345. {careamics-0.0.11 → careamics-0.0.13}/tests/utils/test_version.py +0 -0
  346. {careamics-0.0.11 → careamics-0.0.13}/tests/utils/test_wandb.py +0 -0
@@ -30,7 +30,7 @@ Error message:
30
30
  <!-- Please fill in the following information, you can check the package versions using `conda list` -->
31
31
  > [!IMPORTANT]
32
32
  > - OS: [e.g. iOS]
33
- > - Python version [e.g. 3.9]
33
+ > - Python version [e.g. 3.12]
34
34
  > - PyTorch version [e.g. 2.3]
35
35
  > - PyTorch lightning version [e.g. 2.4]
36
36
  > - CAREamics version [e.g. 0.0.4]
@@ -27,9 +27,9 @@ jobs:
27
27
  strategy:
28
28
  fail-fast: false
29
29
  matrix:
30
- python-version: ["3.9", "3.10", "3.11", "3.12"]
30
+ python-version: ["3.10", "3.11", "3.12"]
31
31
  # https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners#standard-github-hosted-runners-for-public-repositories
32
- platform: [ubuntu-latest, macos-13, windows-latest]
32
+ platform: [ubuntu-latest, windows-latest] # macos-latest
33
33
 
34
34
  steps:
35
35
  - name: 🛑 Cancel Previous Runs
@@ -40,17 +40,19 @@ jobs:
40
40
  - uses: actions/checkout@v3
41
41
 
42
42
  - name: 🐍 Set up Python ${{ matrix.python-version }}
43
- uses: actions/setup-python@v4
43
+ uses: actions/setup-python@v5
44
44
  with:
45
45
  python-version: ${{ matrix.python-version }}
46
+ # architecture: ${{ matrix.platform == 'macos-latest' && 'arm64' || 'x64' }}
46
47
  cache-dependency-path: "pyproject.toml"
47
48
  cache: "pip"
48
49
 
49
50
  - name: Install Dependencies
50
51
  run: |
51
52
  python -m pip install -U pip
53
+
52
54
  # if running a cron job, we add the --pre flag to test against pre-releases
53
- python -m pip install .[dev] ${{ github.event_name == 'schedule' && '--pre' || '' }}
55
+ python -m pip install .[dev,czi] ${{ github.event_name == 'schedule' && '--pre' || '' }}
54
56
 
55
57
  - name: 🧪 Run Tests
56
58
  run: pytest --color=yes -m "not lvae"
@@ -90,7 +92,7 @@ jobs:
90
92
  - name: Set up Python
91
93
  uses: actions/setup-python@v5
92
94
  with:
93
- python-version: "3.9"
95
+ python-version: "3.12"
94
96
 
95
97
  - name: Build
96
98
  run: |
@@ -0,0 +1,67 @@
1
+ # This CI runs the tests that do not fail on gh macos-latest runner due to the MPS
2
+ # backend. Once the MPS backend is fixed on gh side, this workflow can be removed
3
+ # and merged back once again with the main CI workflow.
4
+ name: CI-macOS
5
+
6
+ on:
7
+ push:
8
+ branches:
9
+ - main
10
+ tags:
11
+ - "v*"
12
+ pull_request:
13
+ workflow_dispatch:
14
+ schedule:
15
+ # run every week (for --pre release tests)
16
+ - cron: "0 0 * * 0"
17
+
18
+ jobs:
19
+ test:
20
+ name: ${{ matrix.platform }} (${{ matrix.python-version }})
21
+ runs-on: ${{ matrix.platform }}
22
+ strategy:
23
+ fail-fast: false
24
+ matrix:
25
+ python-version: ["3.10", "3.11", "3.12"]
26
+ # https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners#standard-github-hosted-runners-for-public-repositories
27
+ platform: [macos-latest]
28
+
29
+ steps:
30
+ - name: 🛑 Cancel Previous Runs
31
+ uses: styfle/cancel-workflow-action@0.11.0
32
+ with:
33
+ access_token: ${{ github.token }}
34
+
35
+ - uses: actions/checkout@v3
36
+
37
+ - name: 🐍 Set up Python ${{ matrix.python-version }}
38
+ uses: actions/setup-python@v5
39
+ with:
40
+ python-version: ${{ matrix.python-version }}
41
+ architecture: ${{ matrix.platform == 'macos-latest' && 'arm64' || 'x64' }} # force arm64 architecture
42
+ cache-dependency-path: "pyproject.toml"
43
+ cache: "pip"
44
+
45
+ - name: Install Dependencies
46
+ run: |
47
+ python -m pip install -U pip
48
+
49
+ # if running a cron job, we add the --pre flag to test against pre-releases
50
+ python -m pip install .[dev] ${{ github.event_name == 'schedule' && '--pre' || '' }}
51
+
52
+ - name: 🧪 Run Tests
53
+ run: pytest --color=yes -m "not lvae and not mps_gh_fail"
54
+
55
+ # If something goes wrong with --pre tests, we can open an issue in the repo
56
+ - name: 📝 Report --pre Failures
57
+ if: failure() && github.event_name == 'schedule'
58
+ uses: JasonEtco/create-an-issue@v2
59
+ env:
60
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
61
+ PLATFORM: ${{ matrix.platform }}
62
+ PYTHON: ${{ matrix.python-version }}
63
+ RUN_ID: ${{ github.run_id }}
64
+ TITLE: "[test-bot] pip install --pre is failing"
65
+ with:
66
+ filename: .github/TEST_FAIL_TEMPLATE.md
67
+ update_existing: true
@@ -16,7 +16,7 @@ jobs:
16
16
  strategy:
17
17
  fail-fast: false
18
18
  matrix:
19
- python-version: ["3.9"]
19
+ python-version: ["3.12"]
20
20
  platform: [ubuntu-latest]
21
21
 
22
22
  steps:
@@ -19,8 +19,8 @@ jobs:
19
19
  strategy:
20
20
  fail-fast: false
21
21
  matrix:
22
- python-version: ["3.9"]
23
- platform: [ubuntu-latest, windows-latest]
22
+ python-version: ["3.12"]
23
+ platform: [ubuntu-latest]
24
24
 
25
25
  steps:
26
26
  - name: 🛑 Cancel Previous Runs
@@ -9,24 +9,24 @@ ci:
9
9
 
10
10
  repos:
11
11
  - repo: https://github.com/abravalheri/validate-pyproject
12
- rev: v0.23
12
+ rev: v0.24.1
13
13
  hooks:
14
14
  - id: validate-pyproject
15
15
 
16
16
  - repo: https://github.com/astral-sh/ruff-pre-commit
17
- rev: v0.8.6
17
+ rev: v0.11.12
18
18
  hooks:
19
19
  - id: ruff
20
20
  exclude: "^src/careamics/lvae_training/.*|^src/careamics/models/lvae/.*|^scripts/.*"
21
- args: [--fix, --target-version, py39]
21
+ args: [--fix, --target-version, py310]
22
22
 
23
23
  - repo: https://github.com/psf/black
24
- rev: 24.10.0
24
+ rev: 25.1.0
25
25
  hooks:
26
26
  - id: black
27
27
 
28
28
  - repo: https://github.com/pre-commit/mirrors-mypy
29
- rev: v1.14.1
29
+ rev: v1.16.0
30
30
  hooks:
31
31
  - id: mypy
32
32
  files: "^src/"
@@ -43,7 +43,8 @@ repos:
43
43
  rev: v1.8.0
44
44
  hooks:
45
45
  - id: numpydoc-validation
46
- exclude: "^src/careamics/dataset_ng/.*|^src/careamics/lvae_training/.*|^src/careamics/models/lvae/.*|^src/careamics/losses/lvae/.*|^scripts/.*"
46
+ exclude: "^src/careamics/dataset_ng/.*|^src/careamics/lvae_training/.*|^src/careamics/models/lvae/.*|^src/careamics/losses/lvae/.*|^src/careamics/lightning/dataset_ng/data_module.py|^scripts/.*"
47
+ # regarding src/careamics/lightning/dataset_ng/data_module.py: https://github.com/numpy/numpydoc/issues/559
47
48
 
48
49
  # # jupyter linting and formatting
49
50
  # - repo: https://github.com/nbQA-dev/nbQA
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: careamics
3
- Version: 0.0.11
3
+ Version: 0.0.13
4
4
  Summary: Toolbox for running N2V and friends.
5
5
  Project-URL: homepage, https://careamics.github.io/
6
6
  Project-URL: repository, https://github.com/CAREamics/careamics
@@ -10,27 +10,28 @@ License-File: LICENSE
10
10
  Classifier: Development Status :: 3 - Alpha
11
11
  Classifier: License :: OSI Approved :: BSD License
12
12
  Classifier: Programming Language :: Python :: 3
13
- Classifier: Programming Language :: Python :: 3.9
14
13
  Classifier: Programming Language :: Python :: 3.10
15
14
  Classifier: Programming Language :: Python :: 3.11
16
15
  Classifier: Programming Language :: Python :: 3.12
17
16
  Classifier: Typing :: Typed
18
- Requires-Python: >=3.9
17
+ Requires-Python: >=3.10
19
18
  Requires-Dist: bioimageio-core==0.7
20
- Requires-Dist: matplotlib<=3.10.1
19
+ Requires-Dist: matplotlib<=3.10.3
21
20
  Requires-Dist: numpy<2.0.0
22
- Requires-Dist: pillow<=11.1.0
21
+ Requires-Dist: pillow<=11.2.1
23
22
  Requires-Dist: psutil<=7.0.0
24
- Requires-Dist: pydantic<2.11,>=2.5
25
- Requires-Dist: pytorch-lightning<=2.5.0.post0,>=2.2
23
+ Requires-Dist: pydantic<=2.12,>=2.11
24
+ Requires-Dist: pytorch-lightning<=2.5.2,>=2.2
26
25
  Requires-Dist: pyyaml!=6.0.0,<=6.0.2
27
26
  Requires-Dist: scikit-image<=0.25.2
28
- Requires-Dist: tifffile<=2025.3.13
29
- Requires-Dist: torch<=2.6.0,>=2.0
30
- Requires-Dist: torchvision<=0.21.0
31
- Requires-Dist: typer<=0.15.2,>=0.12.3
27
+ Requires-Dist: tifffile<=2025.5.10
28
+ Requires-Dist: torch<=2.7.1,>=2.0
29
+ Requires-Dist: torchvision<=0.22.1
30
+ Requires-Dist: typer<=0.16.0,>=0.12.3
32
31
  Requires-Dist: xarray<2025.3.0
33
32
  Requires-Dist: zarr<3.0.0
33
+ Provides-Extra: czi
34
+ Requires-Dist: pylibczirw<6.0.0,>=4.1.2; extra == 'czi'
34
35
  Provides-Extra: dev
35
36
  Requires-Dist: onnx; extra == 'dev'
36
37
  Requires-Dist: pre-commit; extra == 'dev'
@@ -20,7 +20,7 @@ name = "careamics"
20
20
  dynamic = ["version"]
21
21
  description = "Toolbox for running N2V and friends."
22
22
  readme = "README.md"
23
- requires-python = ">=3.9"
23
+ requires-python = ">=3.10"
24
24
  license = { text = "BSD-3-Clause" }
25
25
  authors = [
26
26
  { name = 'CAREamics team', email = 'rse@fht.org' },
@@ -34,7 +34,6 @@ authors = [
34
34
  classifiers = [
35
35
  "Development Status :: 3 - Alpha",
36
36
  "Programming Language :: Python :: 3",
37
- "Programming Language :: Python :: 3.9",
38
37
  "Programming Language :: Python :: 3.10",
39
38
  "Programming Language :: Python :: 3.11",
40
39
  "Programming Language :: Python :: 3.12",
@@ -43,23 +42,27 @@ classifiers = [
43
42
  ]
44
43
  dependencies = [
45
44
  'numpy<2.0.0',
46
- 'torch>=2.0,<=2.6.0',
47
- 'torchvision<=0.21.0',
45
+ 'torch>=2.0,<=2.7.1',
46
+ 'torchvision<=0.22.1',
48
47
  'bioimageio.core==0.7',
49
- 'tifffile<=2025.3.13',
48
+ 'tifffile<=2025.5.10',
50
49
  'psutil<=7.0.0',
51
- 'pydantic>=2.5,<2.11',
52
- 'pytorch_lightning>=2.2,<=2.5.0.post0',
50
+ 'pydantic>=2.11,<=2.12',
51
+ 'pytorch_lightning>=2.2,<=2.5.2',
53
52
  'pyyaml<=6.0.2,!=6.0.0',
54
- 'typer>=0.12.3,<=0.15.2',
53
+ 'typer>=0.12.3,<=0.16.0',
55
54
  'scikit-image<=0.25.2',
56
55
  'zarr<3.0.0',
57
- 'pillow<=11.1.0',
58
- 'matplotlib<=3.10.1',
59
- 'xarray<2025.3.0'
56
+ 'pillow<=11.2.1',
57
+ 'matplotlib<=3.10.3',
58
+ 'xarray<2025.3.0',
60
59
  ]
61
60
 
62
61
  [project.optional-dependencies]
62
+
63
+ # czi format
64
+ czi = ['pylibCZIrw>=4.1.2,<6.0.0']
65
+
63
66
  # development dependencies and tooling
64
67
  dev = [
65
68
  "pre-commit",
@@ -87,7 +90,7 @@ careamics = "careamics.cli.main:run"
87
90
  # https://beta.ruff.rs/docs
88
91
  [tool.ruff]
89
92
  line-length = 88
90
- target-version = "py39"
93
+ target-version = "py310"
91
94
  src = ["src"]
92
95
  lint.select = [
93
96
  "E", # style errors
@@ -134,6 +137,7 @@ line-length = 88
134
137
 
135
138
  # https://mypy.readthedocs.io/en/stable/config_file.html
136
139
  [tool.mypy]
140
+ # plugins = ["pydantic.mypy"]
137
141
  files = "src/**/"
138
142
  strict = false
139
143
  # allow_untyped_defs = false
@@ -141,6 +145,12 @@ strict = false
141
145
  # disallow_any_generics = false
142
146
  # ignore_missing_imports = false
143
147
 
148
+ # https://docs.pydantic.dev/latest/integrations/mypy/
149
+ # [tool.pydantic-mypy]
150
+ # init_forbid_extra = true
151
+ # init_typed = true
152
+ # warn_required_dynamic_aliases = true
153
+
144
154
 
145
155
  # https://docs.pytest.org/en/6.2.x/customize.html
146
156
  [tool.pytest.ini_options]
@@ -155,6 +165,8 @@ addopts = "-p no:doctest"
155
165
  markers = [
156
166
  # "gpu: marks tests as requiring gpu",
157
167
  "lvae: marks tests as testing lvae",
168
+ "mps_gh_fail: marks tests as failing on Github macos-latest runner",
169
+ "czi: marks tests using czi files",
158
170
  ]
159
171
 
160
172
  # https://coverage.readthedocs.io/en/6.4/config.html
@@ -1,7 +1,8 @@
1
1
  """A class to train, predict and export models in CAREamics."""
2
2
 
3
+ from collections.abc import Callable
3
4
  from pathlib import Path
4
- from typing import Any, Callable, Literal, Optional, Union, overload
5
+ from typing import Any, Literal, Optional, Union, overload
5
6
 
6
7
  import numpy as np
7
8
  from numpy.typing import NDArray
@@ -52,6 +53,9 @@ class CAREamist:
52
53
  by default None.
53
54
  callbacks : list of Callback, optional
54
55
  List of callbacks to use during training and prediction, by default None.
56
+ enable_progress_bar : bool
57
+ Whether a progress bar will be displayed during training, validation and
58
+ prediction.
55
59
 
56
60
  Attributes
57
61
  ----------
@@ -77,6 +81,7 @@ class CAREamist:
77
81
  source: Union[Path, str],
78
82
  work_dir: Optional[Union[Path, str]] = None,
79
83
  callbacks: Optional[list[Callback]] = None,
84
+ enable_progress_bar: bool = True,
80
85
  ) -> None: ...
81
86
 
82
87
  @overload
@@ -85,6 +90,7 @@ class CAREamist:
85
90
  source: Configuration,
86
91
  work_dir: Optional[Union[Path, str]] = None,
87
92
  callbacks: Optional[list[Callback]] = None,
93
+ enable_progress_bar: bool = True,
88
94
  ) -> None: ...
89
95
 
90
96
  def __init__(
@@ -92,6 +98,7 @@ class CAREamist:
92
98
  source: Union[Path, str, Configuration],
93
99
  work_dir: Optional[Union[Path, str]] = None,
94
100
  callbacks: Optional[list[Callback]] = None,
101
+ enable_progress_bar: bool = True,
95
102
  ) -> None:
96
103
  """
97
104
  Initialize CAREamist with a configuration object or a path.
@@ -112,6 +119,9 @@ class CAREamist:
112
119
  by default None.
113
120
  callbacks : list of Callback, optional
114
121
  List of callbacks to use during training and prediction, by default None.
122
+ enable_progress_bar : bool
123
+ Whether a progress bar will be displayed during training, validation and
124
+ prediction.
115
125
 
116
126
  Raises
117
127
  ------
@@ -169,7 +179,7 @@ class CAREamist:
169
179
  self.model, self.cfg = load_pretrained(source)
170
180
 
171
181
  # define the checkpoint saving callback
172
- self._define_callbacks(callbacks)
182
+ self._define_callbacks(callbacks, enable_progress_bar)
173
183
 
174
184
  # instantiate logger
175
185
  csv_logger = CSVLogger(
@@ -202,7 +212,7 @@ class CAREamist:
202
212
  precision=self.cfg.training_config.precision,
203
213
  max_steps=self.cfg.training_config.max_steps,
204
214
  check_val_every_n_epoch=self.cfg.training_config.check_val_every_n_epoch,
205
- enable_progress_bar=self.cfg.training_config.enable_progress_bar,
215
+ enable_progress_bar=enable_progress_bar,
206
216
  accumulate_grad_batches=self.cfg.training_config.accumulate_grad_batches,
207
217
  gradient_clip_val=self.cfg.training_config.gradient_clip_val,
208
218
  gradient_clip_algorithm=self.cfg.training_config.gradient_clip_algorithm,
@@ -215,13 +225,19 @@ class CAREamist:
215
225
  self.train_datamodule: Optional[TrainDataModule] = None
216
226
  self.pred_datamodule: Optional[PredictDataModule] = None
217
227
 
218
- def _define_callbacks(self, callbacks: Optional[list[Callback]] = None) -> None:
228
+ def _define_callbacks(
229
+ self, callbacks: Optional[list[Callback]], enable_progress_bar: bool
230
+ ) -> None:
219
231
  """Define the callbacks for the training loop.
220
232
 
221
233
  Parameters
222
234
  ----------
223
235
  callbacks : list of Callback, optional
224
236
  List of callbacks to use during training and prediction, by default None.
237
+ enable_progress_bar : bool
238
+ Whether a progress bar will be displayed during training, validation and
239
+ prediction. It controls whether a `ProgressBarCallback` is added to the
240
+ callback list.
225
241
  """
226
242
  self.callbacks = [] if callbacks is None else callbacks
227
243
 
@@ -251,9 +267,10 @@ class CAREamist:
251
267
  filename=self.cfg.experiment_name,
252
268
  **self.cfg.training_config.checkpoint_callback.model_dump(),
253
269
  ),
254
- ProgressBarCallback(),
255
270
  ]
256
271
  )
272
+ if enable_progress_bar:
273
+ self.callbacks.append(ProgressBarCallback())
257
274
 
258
275
  # early stopping callback
259
276
  if self.cfg.training_config.early_stopping_callback is not None:
@@ -811,7 +828,7 @@ class CAREamist:
811
828
  source_path = source.pred_data
812
829
  source_data_type = source.data_type
813
830
  extension_filter = source.extension_filter
814
- elif isinstance(source, (str, Path)):
831
+ elif isinstance(source, str | Path):
815
832
  source_path = source
816
833
  source_data_type = data_type or self.cfg.data_config.data_type
817
834
  extension_filter = SupportedData.get_extension_pattern(
@@ -824,7 +841,7 @@ class CAREamist:
824
841
  raise ValueError(
825
842
  "Predicting to disk is not supported for input type 'array'."
826
843
  )
827
- assert isinstance(source_path, (Path, str)) # because data_type != "array"
844
+ assert isinstance(source_path, str | Path) # because data_type != "array"
828
845
  source_path = Path(source_path)
829
846
 
830
847
  file_paths = list_files(source_path, source_data_type, extension_filter)
@@ -4,7 +4,7 @@ from typing import Optional
4
4
 
5
5
 
6
6
  def handle_2D_3D_callback(
7
- value: Optional[tuple[int, int, int]]
7
+ value: Optional[tuple[int, int, int]],
8
8
  ) -> Optional[tuple[int, ...]]:
9
9
  """
10
10
  Callback for options that require 2D or 3D inputs.
@@ -1,4 +1,4 @@
1
- """"N2V Algorithm configuration."""
1
+ """N2V Algorithm configuration."""
2
2
 
3
3
  from typing import Annotated, Literal
4
4
 
@@ -63,6 +63,9 @@ class UNetModel(ArchitectureModel):
63
63
  """Whether information is processed independently in each channel, used to train
64
64
  channels independently."""
65
65
 
66
+ use_batch_norm: bool = Field(default=True, validate_default=True)
67
+ """Whether to use batch normalization in the model."""
68
+
66
69
  @field_validator("num_channels_init")
67
70
  @classmethod
68
71
  def validate_num_channels_init(cls, num_channels_init: int) -> int:
@@ -22,52 +22,42 @@ class CheckpointModel(BaseModel):
22
22
  https://lightning.ai/docs/pytorch/stable/api/lightning.pytorch.callbacks.ModelCheckpoint.html#modelcheckpoint
23
23
  """
24
24
 
25
- model_config = ConfigDict(
26
- validate_assignment=True,
27
- )
25
+ model_config = ConfigDict(validate_assignment=True, validate_default=True)
28
26
 
29
- monitor: Literal["val_loss"] = Field(default="val_loss", validate_default=True)
30
- """Quantity to monitor."""
27
+ monitor: Literal["val_loss"] = Field(default="val_loss")
28
+ """Quantity to monitor, currently only `val_loss`."""
31
29
 
32
- verbose: bool = Field(default=False, validate_default=True)
30
+ verbose: bool = Field(default=False)
33
31
  """Verbosity mode."""
34
32
 
35
- save_weights_only: bool = Field(default=False, validate_default=True)
33
+ save_weights_only: bool = Field(default=False)
36
34
  """When `True`, only the model's weights will be saved (model.save_weights)."""
37
35
 
38
- save_last: Optional[Literal[True, False, "link"]] = Field(
39
- default=True, validate_default=True
40
- )
36
+ save_last: Optional[Literal[True, False, "link"]] = Field(default=True)
41
37
  """When `True`, saves a last.ckpt copy whenever a checkpoint file gets saved."""
42
38
 
43
- save_top_k: int = Field(default=3, ge=1, le=10, validate_default=True)
39
+ save_top_k: int = Field(default=3, ge=-1, le=100)
44
40
  """If `save_top_k == kz, the best k models according to the quantity monitored
45
41
  will be saved. If `save_top_k == 0`, no models are saved. if `save_top_k == -1`,
46
42
  all models are saved."""
47
43
 
48
- mode: Literal["min", "max"] = Field(default="min", validate_default=True)
44
+ mode: Literal["min", "max"] = Field(default="min")
49
45
  """One of {min, max}. If `save_top_k != 0`, the decision to overwrite the current
50
46
  save file is made based on either the maximization or the minimization of the
51
47
  monitored quantity. For 'val_acc', this should be 'max', for 'val_loss' this should
52
48
  be 'min', etc.
53
49
  """
54
50
 
55
- auto_insert_metric_name: bool = Field(default=False, validate_default=True)
51
+ auto_insert_metric_name: bool = Field(default=False)
56
52
  """When `True`, the checkpoints filenames will contain the metric name."""
57
53
 
58
- every_n_train_steps: Optional[int] = Field(
59
- default=None, ge=1, le=10, validate_default=True
60
- )
54
+ every_n_train_steps: Optional[int] = Field(default=None, ge=1, le=1000)
61
55
  """Number of training steps between checkpoints."""
62
56
 
63
- train_time_interval: Optional[timedelta] = Field(
64
- default=None, validate_default=True
65
- )
57
+ train_time_interval: Optional[timedelta] = Field(default=None)
66
58
  """Checkpoints are monitored at the specified time interval."""
67
59
 
68
- every_n_epochs: Optional[int] = Field(
69
- default=None, ge=1, le=10, validate_default=True
70
- )
60
+ every_n_epochs: Optional[int] = Field(default=None, ge=1, le=100)
71
61
  """Number of epochs between checkpoints."""
72
62
 
73
63
 
@@ -83,41 +73,40 @@ class EarlyStoppingModel(BaseModel):
83
73
 
84
74
  model_config = ConfigDict(
85
75
  validate_assignment=True,
76
+ validate_default=True,
86
77
  )
87
78
 
88
- monitor: Literal["val_loss"] = Field(default="val_loss", validate_default=True)
79
+ monitor: Literal["val_loss"] = Field(default="val_loss")
89
80
  """Quantity to monitor."""
90
81
 
91
- min_delta: float = Field(default=0.0, ge=0.0, le=1.0, validate_default=True)
82
+ min_delta: float = Field(default=0.0, ge=0.0, le=1.0)
92
83
  """Minimum change in the monitored quantity to qualify as an improvement, i.e. an
93
84
  absolute change of less than or equal to min_delta, will count as no improvement."""
94
85
 
95
- patience: int = Field(default=3, ge=1, le=10, validate_default=True)
86
+ patience: int = Field(default=3, ge=1, le=10)
96
87
  """Number of checks with no improvement after which training will be stopped."""
97
88
 
98
- verbose: bool = Field(default=False, validate_default=True)
89
+ verbose: bool = Field(default=False)
99
90
  """Verbosity mode."""
100
91
 
101
- mode: Literal["min", "max", "auto"] = Field(default="min", validate_default=True)
92
+ mode: Literal["min", "max", "auto"] = Field(default="min")
102
93
  """One of {min, max, auto}."""
103
94
 
104
- check_finite: bool = Field(default=True, validate_default=True)
95
+ check_finite: bool = Field(default=True)
105
96
  """When `True`, stops training when the monitored quantity becomes `NaN` or
106
97
  `inf`."""
107
98
 
108
- stopping_threshold: Optional[float] = Field(default=None, validate_default=True)
99
+ stopping_threshold: Optional[float] = Field(default=None)
109
100
  """Stop training immediately once the monitored quantity reaches this threshold."""
110
101
 
111
- divergence_threshold: Optional[float] = Field(default=None, validate_default=True)
102
+ divergence_threshold: Optional[float] = Field(default=None)
112
103
  """Stop training as soon as the monitored quantity becomes worse than this
113
104
  threshold."""
114
105
 
115
- check_on_train_epoch_end: Optional[bool] = Field(
116
- default=False, validate_default=True
117
- )
106
+ check_on_train_epoch_end: Optional[bool] = Field(default=False)
118
107
  """Whether to run early stopping at the end of the training epoch. If this is
119
108
  `False`, then the check runs at the end of the validation."""
120
109
 
121
- log_rank_zero_only: bool = Field(default=False, validate_default=True)
110
+ log_rank_zero_only: bool = Field(default=False)
122
111
  """When set `True`, logs the status of the early stopping callback only for rank 0
123
112
  process."""