careamics 0.0.14__tar.gz → 0.0.16__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.14 → careamics-0.0.16}/.github/workflows/ci.yml +2 -2
  2. {careamics-0.0.14 → careamics-0.0.16}/.github/workflows/ci_macos.yml +1 -1
  3. {careamics-0.0.14 → careamics-0.0.16}/.github/workflows/codecov.yml +3 -6
  4. {careamics-0.0.14 → careamics-0.0.16}/.pre-commit-config.yaml +5 -5
  5. {careamics-0.0.14 → careamics-0.0.16}/PKG-INFO +18 -16
  6. {careamics-0.0.14 → careamics-0.0.16}/pyproject.toml +20 -16
  7. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/careamist.py +55 -61
  8. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/cli/conf.py +24 -9
  9. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/cli/main.py +8 -8
  10. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/cli/utils.py +2 -4
  11. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/__init__.py +8 -0
  12. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/algorithms/__init__.py +4 -0
  13. careamics-0.0.16/src/careamics/config/algorithms/hdn_algorithm_model.py +103 -0
  14. careamics-0.0.16/src/careamics/config/algorithms/microsplit_algorithm_model.py +103 -0
  15. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/algorithms/n2v_algorithm_model.py +1 -2
  16. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/algorithms/vae_algorithm_model.py +53 -18
  17. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/architectures/lvae_model.py +12 -8
  18. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/callback_model.py +15 -11
  19. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/configuration.py +9 -8
  20. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/configuration_factories.py +892 -78
  21. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/data/data_model.py +7 -14
  22. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/data/ng_data_model.py +8 -15
  23. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/data/patching_strategies/_overlapping_patched_model.py +4 -5
  24. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/inference_model.py +6 -11
  25. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/likelihood_model.py +4 -4
  26. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/loss_model.py +6 -2
  27. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/nm_model.py +30 -7
  28. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/optimizer_models.py +1 -2
  29. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/support/supported_algorithms.py +5 -3
  30. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/support/supported_losses.py +5 -2
  31. careamics-0.0.16/src/careamics/config/training_model.py +69 -0
  32. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/transformations/normalize_model.py +3 -4
  33. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/transformations/xy_flip_model.py +2 -2
  34. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/transformations/xy_random_rotate90_model.py +2 -2
  35. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/validators/validator_utils.py +1 -2
  36. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset/dataset_utils/iterate_over_files.py +3 -3
  37. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset/in_memory_dataset.py +2 -2
  38. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset/iterable_dataset.py +1 -2
  39. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset/patching/random_patching.py +6 -6
  40. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset/patching/sequential_patching.py +4 -4
  41. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset/tiling/lvae_tiled_patching.py +2 -2
  42. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/dataset.py +3 -3
  43. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/factory.py +19 -19
  44. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/patch_extractor/demo_custom_image_stack_loader.py +4 -4
  45. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/patch_extractor/image_stack/in_memory_image_stack.py +1 -2
  46. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/patch_extractor/image_stack/zarr_image_stack.py +33 -7
  47. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/patch_extractor/image_stack_loader.py +2 -2
  48. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/patching_strategies/random_patching.py +2 -3
  49. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/patching_strategies/sequential_patching.py +1 -2
  50. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/file_io/read/__init__.py +0 -1
  51. careamics-0.0.16/src/careamics/lightning/__init__.py +32 -0
  52. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lightning/callbacks/__init__.py +2 -0
  53. careamics-0.0.16/src/careamics/lightning/callbacks/data_stats_callback.py +23 -0
  54. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lightning/callbacks/prediction_writer_callback/prediction_writer_callback.py +5 -5
  55. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lightning/callbacks/prediction_writer_callback/write_strategy.py +5 -5
  56. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lightning/callbacks/prediction_writer_callback/write_strategy_factory.py +8 -8
  57. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lightning/dataset_ng/data_module.py +43 -43
  58. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lightning/lightning_module.py +166 -68
  59. careamics-0.0.16/src/careamics/lightning/microsplit_data_module.py +631 -0
  60. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lightning/predict_data_module.py +16 -9
  61. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lightning/train_data_module.py +29 -18
  62. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/losses/__init__.py +7 -1
  63. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/losses/loss_factory.py +9 -1
  64. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/losses/lvae/losses.py +94 -9
  65. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lvae_training/dataset/__init__.py +8 -8
  66. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lvae_training/dataset/config.py +56 -44
  67. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lvae_training/dataset/lc_dataset.py +18 -12
  68. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lvae_training/dataset/ms_dataset_ref.py +5 -5
  69. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lvae_training/dataset/multich_dataset.py +24 -18
  70. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lvae_training/dataset/multifile_dataset.py +6 -6
  71. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/model_io/bioimage/model_description.py +12 -11
  72. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/model_io/bmz_io.py +12 -8
  73. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/models/layers.py +5 -5
  74. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/models/lvae/likelihoods.py +30 -14
  75. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/models/lvae/lvae.py +2 -2
  76. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/models/lvae/noise_models.py +20 -14
  77. careamics-0.0.16/src/careamics/prediction_utils/__init__.py +16 -0
  78. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/prediction_utils/lvae_prediction.py +5 -5
  79. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/prediction_utils/prediction_outputs.py +48 -3
  80. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/prediction_utils/stitch_prediction.py +71 -0
  81. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/transforms/compose.py +9 -9
  82. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/transforms/n2v_manipulate.py +3 -3
  83. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/transforms/n2v_manipulate_torch.py +4 -4
  84. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/transforms/normalize.py +4 -6
  85. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/transforms/pixel_manipulation.py +6 -8
  86. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/transforms/pixel_manipulation_torch.py +5 -7
  87. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/transforms/xy_flip.py +3 -5
  88. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/transforms/xy_random_rotate90.py +4 -6
  89. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/utils/logging.py +8 -8
  90. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/utils/metrics.py +2 -2
  91. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/utils/plotting.py +1 -3
  92. careamics-0.0.16/tests/config/test_configuration_factories.py +1150 -0
  93. {careamics-0.0.14 → careamics-0.0.16}/tests/config/test_vae_algorithm_model.py +13 -0
  94. {careamics-0.0.14 → careamics-0.0.16}/tests/conftest.py +28 -2
  95. {careamics-0.0.14 → careamics-0.0.16}/tests/dataset_ng/patch_extractor/image_stack/test_czi_image_stack.py +3 -3
  96. {careamics-0.0.14 → careamics-0.0.16}/tests/dataset_ng/patch_extractor/image_stack/test_zarr_image_stack.py +4 -4
  97. {careamics-0.0.14 → careamics-0.0.16}/tests/lightning/test_LVAE_lightning_module.py +278 -150
  98. careamics-0.0.16/tests/lightning/test_microsplit_train_datamodule.py +61 -0
  99. {careamics-0.0.14 → careamics-0.0.16}/tests/likelihood_modules/test_likelihoods.py +2 -1
  100. {careamics-0.0.14 → careamics-0.0.16}/tests/losses/test_lvae_losses.py +10 -5
  101. {careamics-0.0.14 → careamics-0.0.16}/tests/models/lvae/test_lvae_architecture.py +1 -9
  102. {careamics-0.0.14 → careamics-0.0.16}/tests/models/lvae/test_noise_model.py +3 -3
  103. {careamics-0.0.14 → careamics-0.0.16}/tests/test_careamist.py +78 -27
  104. {careamics-0.0.14 → careamics-0.0.16}/tests/utils/test_lightning_utils.py +5 -2
  105. careamics-0.0.14/src/careamics/config/training_model.py +0 -99
  106. careamics-0.0.14/src/careamics/dataset/zarr_dataset.py +0 -151
  107. careamics-0.0.14/src/careamics/file_io/read/zarr.py +0 -60
  108. careamics-0.0.14/src/careamics/lightning/__init__.py +0 -18
  109. careamics-0.0.14/src/careamics/prediction_utils/__init__.py +0 -10
  110. careamics-0.0.14/tests/config/test_configuration_factories.py +0 -481
  111. careamics-0.0.14/tests/config/test_training_model.py +0 -21
  112. {careamics-0.0.14 → careamics-0.0.16}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  113. {careamics-0.0.14 → careamics-0.0.16}/.github/ISSUE_TEMPLATE/example_report.md +0 -0
  114. {careamics-0.0.14 → careamics-0.0.16}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  115. {careamics-0.0.14 → careamics-0.0.16}/.github/ISSUE_TEMPLATE/interoperability_request.md +0 -0
  116. {careamics-0.0.14 → careamics-0.0.16}/.github/ISSUE_TEMPLATE/question.md +0 -0
  117. {careamics-0.0.14 → careamics-0.0.16}/.github/ISSUE_TEMPLATE/refactoring_suggestion.md +0 -0
  118. {careamics-0.0.14 → careamics-0.0.16}/.github/TEST_FAIL_TEMPLATE.md +0 -0
  119. {careamics-0.0.14 → careamics-0.0.16}/.github/dependabot.yml +0 -0
  120. {careamics-0.0.14 → careamics-0.0.16}/.github/pull_request_template.md +0 -0
  121. {careamics-0.0.14 → careamics-0.0.16}/.github/workflows/lvae.yml +0 -0
  122. {careamics-0.0.14 → careamics-0.0.16}/.gitignore +0 -0
  123. {careamics-0.0.14 → careamics-0.0.16}/CODE_OF_CONDUCT.md +0 -0
  124. {careamics-0.0.14 → careamics-0.0.16}/LICENSE +0 -0
  125. {careamics-0.0.14 → careamics-0.0.16}/README.md +0 -0
  126. {careamics-0.0.14 → careamics-0.0.16}/codecov.yml +0 -0
  127. {careamics-0.0.14 → careamics-0.0.16}/mypy.ini +0 -0
  128. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/__init__.py +0 -0
  129. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/cli/__init__.py +0 -0
  130. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/algorithms/care_algorithm_model.py +0 -0
  131. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/algorithms/n2n_algorithm_model.py +0 -0
  132. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/algorithms/unet_algorithm_model.py +0 -0
  133. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/architectures/__init__.py +0 -0
  134. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/architectures/architecture_model.py +0 -0
  135. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/architectures/unet_model.py +0 -0
  136. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/configuration_io.py +0 -0
  137. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/data/__init__.py +0 -0
  138. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/data/patching_strategies/__init__.py +0 -0
  139. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/data/patching_strategies/_patched_model.py +0 -0
  140. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/data/patching_strategies/random_patching_model.py +0 -0
  141. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/data/patching_strategies/sequential_patching_model.py +0 -0
  142. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/data/patching_strategies/tiled_patching_model.py +0 -0
  143. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/data/patching_strategies/whole_patching_model.py +0 -0
  144. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/support/__init__.py +0 -0
  145. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/support/supported_activations.py +0 -0
  146. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/support/supported_architectures.py +0 -0
  147. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/support/supported_data.py +0 -0
  148. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/support/supported_loggers.py +0 -0
  149. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/support/supported_optimizers.py +0 -0
  150. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/support/supported_patching_strategies.py +0 -0
  151. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/support/supported_pixel_manipulations.py +0 -0
  152. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/support/supported_struct_axis.py +0 -0
  153. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/support/supported_transforms.py +0 -0
  154. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/tile_information.py +0 -0
  155. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/transformations/__init__.py +0 -0
  156. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/transformations/n2v_manipulate_model.py +0 -0
  157. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/transformations/transform_model.py +0 -0
  158. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/transformations/transform_unions.py +0 -0
  159. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/validators/__init__.py +0 -0
  160. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/validators/model_validators.py +0 -0
  161. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/conftest.py +0 -0
  162. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset/__init__.py +0 -0
  163. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset/dataset_utils/__init__.py +0 -0
  164. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset/dataset_utils/dataset_utils.py +0 -0
  165. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset/dataset_utils/file_utils.py +0 -0
  166. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset/dataset_utils/running_stats.py +0 -0
  167. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset/in_memory_pred_dataset.py +0 -0
  168. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset/in_memory_tiled_pred_dataset.py +0 -0
  169. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset/iterable_pred_dataset.py +0 -0
  170. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset/iterable_tiled_pred_dataset.py +0 -0
  171. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset/patching/__init__.py +0 -0
  172. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset/patching/patching.py +0 -0
  173. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset/patching/validate_patch_dimension.py +0 -0
  174. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset/tiling/__init__.py +0 -0
  175. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset/tiling/collate_tiles.py +0 -0
  176. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset/tiling/tiled_patching.py +0 -0
  177. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/README.md +0 -0
  178. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/demos/bsd68_demo.ipynb +0 -0
  179. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/demos/care_U2OS_demo.ipynb +0 -0
  180. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/demos/demo_custom_image_stack.ipynb +0 -0
  181. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/demos/demo_datamodule.ipynb +0 -0
  182. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/demos/demo_dataset.ipynb +0 -0
  183. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/demos/demo_patch_extractor.py +0 -0
  184. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/demos/mouse_nuclei_demo.ipynb +0 -0
  185. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/legacy_interoperability.py +0 -0
  186. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/patch_extractor/__init__.py +0 -0
  187. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/patch_extractor/image_stack/__init__.py +0 -0
  188. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/patch_extractor/image_stack/czi_image_stack.py +0 -0
  189. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/patch_extractor/image_stack/image_stack_protocol.py +0 -0
  190. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/patch_extractor/patch_extractor.py +0 -0
  191. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/patch_extractor/patch_extractor_factory.py +0 -0
  192. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/patching_strategies/__init__.py +0 -0
  193. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/patching_strategies/patching_strategy_protocol.py +0 -0
  194. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/patching_strategies/tiling_strategy.py +0 -0
  195. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/patching_strategies/whole_sample.py +0 -0
  196. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/file_io/__init__.py +0 -0
  197. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/file_io/read/get_func.py +0 -0
  198. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/file_io/read/tiff.py +0 -0
  199. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/file_io/write/__init__.py +0 -0
  200. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/file_io/write/get_func.py +0 -0
  201. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/file_io/write/tiff.py +0 -0
  202. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lightning/callbacks/hyperparameters_callback.py +0 -0
  203. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lightning/callbacks/prediction_writer_callback/__init__.py +0 -0
  204. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lightning/callbacks/prediction_writer_callback/file_path_utils.py +0 -0
  205. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lightning/callbacks/progress_bar_callback.py +0 -0
  206. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lightning/dataset_ng/__init__.py +0 -0
  207. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lightning/dataset_ng/lightning_modules/__init__.py +0 -0
  208. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lightning/dataset_ng/lightning_modules/care_module.py +0 -0
  209. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lightning/dataset_ng/lightning_modules/n2v_module.py +0 -0
  210. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lightning/dataset_ng/lightning_modules/unet_module.py +0 -0
  211. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/losses/fcn/__init__.py +0 -0
  212. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/losses/fcn/losses.py +0 -0
  213. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/losses/lvae/__init__.py +0 -0
  214. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/losses/lvae/loss_utils.py +0 -0
  215. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lvae_training/__init__.py +0 -0
  216. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lvae_training/calibration.py +0 -0
  217. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lvae_training/dataset/multicrop_dset.py +0 -0
  218. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lvae_training/dataset/types.py +0 -0
  219. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lvae_training/dataset/utils/__init__.py +0 -0
  220. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lvae_training/dataset/utils/data_utils.py +0 -0
  221. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lvae_training/dataset/utils/empty_patch_fetcher.py +0 -0
  222. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lvae_training/dataset/utils/index_manager.py +0 -0
  223. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lvae_training/dataset/utils/index_switcher.py +0 -0
  224. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lvae_training/eval_utils.py +0 -0
  225. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lvae_training/get_config.py +0 -0
  226. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lvae_training/lightning_module.py +0 -0
  227. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lvae_training/metrics.py +0 -0
  228. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lvae_training/train_lvae.py +0 -0
  229. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lvae_training/train_utils.py +0 -0
  230. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/model_io/__init__.py +0 -0
  231. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/model_io/bioimage/__init__.py +0 -0
  232. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/model_io/bioimage/_readme_factory.py +0 -0
  233. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/model_io/bioimage/bioimage_utils.py +0 -0
  234. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/model_io/bioimage/cover_factory.py +0 -0
  235. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/model_io/model_io_utils.py +0 -0
  236. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/models/__init__.py +0 -0
  237. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/models/activation.py +0 -0
  238. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/models/lvae/__init__.py +0 -0
  239. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/models/lvae/layers.py +0 -0
  240. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/models/lvae/stochastic.py +0 -0
  241. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/models/lvae/utils.py +0 -0
  242. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/models/model_factory.py +0 -0
  243. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/models/unet.py +0 -0
  244. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/prediction_utils/lvae_tiling_manager.py +0 -0
  245. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/py.typed +0 -0
  246. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/transforms/__init__.py +0 -0
  247. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/transforms/struct_mask_parameters.py +0 -0
  248. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/transforms/transform.py +0 -0
  249. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/transforms/tta.py +0 -0
  250. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/utils/__init__.py +0 -0
  251. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/utils/autocorrelation.py +0 -0
  252. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/utils/base_enum.py +0 -0
  253. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/utils/context.py +0 -0
  254. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/utils/lightning_utils.py +0 -0
  255. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/utils/path_utils.py +0 -0
  256. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/utils/ram.py +0 -0
  257. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/utils/receptive_field.py +0 -0
  258. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/utils/serializers.py +0 -0
  259. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/utils/torch_utils.py +0 -0
  260. {careamics-0.0.14 → careamics-0.0.16}/src/careamics/utils/version.py +0 -0
  261. {careamics-0.0.14 → careamics-0.0.16}/tests/cli/__init__.py +0 -0
  262. {careamics-0.0.14 → careamics-0.0.16}/tests/cli/test_conf.py +0 -0
  263. {careamics-0.0.14 → careamics-0.0.16}/tests/cli/test_main.py +0 -0
  264. {careamics-0.0.14 → careamics-0.0.16}/tests/config/algorithms/test_care_algorithm_model.py +0 -0
  265. {careamics-0.0.14 → careamics-0.0.16}/tests/config/algorithms/test_n2n_algorithm_model.py +0 -0
  266. {careamics-0.0.14 → careamics-0.0.16}/tests/config/algorithms/test_n2v_algorithm_model.py +0 -0
  267. {careamics-0.0.14 → careamics-0.0.16}/tests/config/architectures/test_architecture_model.py +0 -0
  268. {careamics-0.0.14 → careamics-0.0.16}/tests/config/architectures/test_lvae_model.py +0 -0
  269. {careamics-0.0.14 → careamics-0.0.16}/tests/config/architectures/test_unet_model.py +0 -0
  270. {careamics-0.0.14 → careamics-0.0.16}/tests/config/data/patching_strategies/test_strategies.py +0 -0
  271. {careamics-0.0.14 → careamics-0.0.16}/tests/config/data/test_data_model.py +0 -0
  272. {careamics-0.0.14 → careamics-0.0.16}/tests/config/data/test_ng_data_model.py +0 -0
  273. {careamics-0.0.14 → careamics-0.0.16}/tests/config/support/test_supported_data.py +0 -0
  274. {careamics-0.0.14 → careamics-0.0.16}/tests/config/support/test_supported_optimizers.py +0 -0
  275. {careamics-0.0.14 → careamics-0.0.16}/tests/config/test_callback_models.py +0 -0
  276. {careamics-0.0.14 → careamics-0.0.16}/tests/config/test_configuration.py +0 -0
  277. {careamics-0.0.14 → careamics-0.0.16}/tests/config/test_configuration_io.py +0 -0
  278. {careamics-0.0.14 → careamics-0.0.16}/tests/config/test_inference_model.py +0 -0
  279. {careamics-0.0.14 → careamics-0.0.16}/tests/config/test_n2v_preprocessing.py +0 -0
  280. {careamics-0.0.14 → careamics-0.0.16}/tests/config/test_optimizers_model.py +0 -0
  281. {careamics-0.0.14 → careamics-0.0.16}/tests/config/test_tile_information.py +0 -0
  282. {careamics-0.0.14 → careamics-0.0.16}/tests/config/test_unet_algorithm_model.py +0 -0
  283. {careamics-0.0.14 → careamics-0.0.16}/tests/config/transformations/test_n2v_manipulate_model.py +0 -0
  284. {careamics-0.0.14 → careamics-0.0.16}/tests/config/transformations/test_normalize_model.py +0 -0
  285. {careamics-0.0.14 → careamics-0.0.16}/tests/config/transformations/test_xy_flip_model.py +0 -0
  286. {careamics-0.0.14 → careamics-0.0.16}/tests/config/transformations/test_xy_random_rotate90_model.py +0 -0
  287. {careamics-0.0.14 → careamics-0.0.16}/tests/config/validators/test_model_validators.py +0 -0
  288. {careamics-0.0.14 → careamics-0.0.16}/tests/config/validators/test_validator_utils.py +0 -0
  289. {careamics-0.0.14 → careamics-0.0.16}/tests/dataset/dataset_utils/test_compute_normalization_stats.py +0 -0
  290. {careamics-0.0.14 → careamics-0.0.16}/tests/dataset/dataset_utils/test_list_files.py +0 -0
  291. {careamics-0.0.14 → careamics-0.0.16}/tests/dataset/patching/test_patching_utils.py +0 -0
  292. {careamics-0.0.14 → careamics-0.0.16}/tests/dataset/patching/test_random_patching.py +0 -0
  293. {careamics-0.0.14 → careamics-0.0.16}/tests/dataset/patching/test_sequential_patching.py +0 -0
  294. {careamics-0.0.14 → careamics-0.0.16}/tests/dataset/test_in_memory_dataset.py +0 -0
  295. {careamics-0.0.14 → careamics-0.0.16}/tests/dataset/test_in_memory_pred_dataset.py +0 -0
  296. {careamics-0.0.14 → careamics-0.0.16}/tests/dataset/test_in_memory_tiled_pred_dataset.py +0 -0
  297. {careamics-0.0.14 → careamics-0.0.16}/tests/dataset/test_iterable_dataset.py +0 -0
  298. {careamics-0.0.14 → careamics-0.0.16}/tests/dataset/test_iterable_pred_dataset.py +0 -0
  299. {careamics-0.0.14 → careamics-0.0.16}/tests/dataset/test_iterable_tiled_pred_dataset.py +0 -0
  300. {careamics-0.0.14 → careamics-0.0.16}/tests/dataset/tiling/test_collate_tiles.py +0 -0
  301. {careamics-0.0.14 → careamics-0.0.16}/tests/dataset/tiling/test_lvae_tiled_patching.py +0 -0
  302. {careamics-0.0.14 → careamics-0.0.16}/tests/dataset/tiling/test_tiled_patching.py +0 -0
  303. {careamics-0.0.14 → careamics-0.0.16}/tests/dataset_ng/dataset/test_dataset.py +0 -0
  304. {careamics-0.0.14 → careamics-0.0.16}/tests/dataset_ng/patch_extractor/image_stack/test_import_czi_image_stack.py +0 -0
  305. {careamics-0.0.14 → careamics-0.0.16}/tests/dataset_ng/patching_strategies/test_all_strategies.py +0 -0
  306. {careamics-0.0.14 → careamics-0.0.16}/tests/dataset_ng/patching_strategies/test_random_patching_ng.py +0 -0
  307. {careamics-0.0.14 → careamics-0.0.16}/tests/dataset_ng/patching_strategies/test_sequential_patching_ng.py +0 -0
  308. {careamics-0.0.14 → careamics-0.0.16}/tests/dataset_ng/patching_strategies/test_tiling_strategy.py +0 -0
  309. {careamics-0.0.14 → careamics-0.0.16}/tests/file_io/read/test_get_read_func.py +0 -0
  310. {careamics-0.0.14 → careamics-0.0.16}/tests/file_io/read/test_read_tiff.py +0 -0
  311. {careamics-0.0.14 → careamics-0.0.16}/tests/file_io/write/test_get_write_func.py +0 -0
  312. {careamics-0.0.14 → careamics-0.0.16}/tests/file_io/write/test_write_tiff.py +0 -0
  313. {careamics-0.0.14 → careamics-0.0.16}/tests/lightning/callbacks/prediction_writer_callback/test_cache_tiles_write_strategy.py +0 -0
  314. {careamics-0.0.14 → careamics-0.0.16}/tests/lightning/callbacks/prediction_writer_callback/test_file_path_utils.py +0 -0
  315. {careamics-0.0.14 → careamics-0.0.16}/tests/lightning/callbacks/prediction_writer_callback/test_prediction_writer_callback.py +0 -0
  316. {careamics-0.0.14 → careamics-0.0.16}/tests/lightning/callbacks/prediction_writer_callback/test_write_image_write_strategy.py +0 -0
  317. {careamics-0.0.14 → careamics-0.0.16}/tests/lightning/callbacks/prediction_writer_callback/test_write_strategy_factory.py +0 -0
  318. {careamics-0.0.14 → careamics-0.0.16}/tests/lightning/test_lightning_api.py +0 -0
  319. {careamics-0.0.14 → careamics-0.0.16}/tests/lightning/test_lightning_module.py +0 -0
  320. {careamics-0.0.14 → careamics-0.0.16}/tests/lightning/test_lightning_module_onnx_exportability.py +0 -0
  321. {careamics-0.0.14 → careamics-0.0.16}/tests/lightning/test_predict_data_module.py +0 -0
  322. {careamics-0.0.14 → careamics-0.0.16}/tests/lightning/test_train_data_module.py +0 -0
  323. {careamics-0.0.14 → careamics-0.0.16}/tests/model_io/test_bmz_io.py +0 -0
  324. {careamics-0.0.14 → careamics-0.0.16}/tests/models/lvae/test_utils.py +0 -0
  325. {careamics-0.0.14 → careamics-0.0.16}/tests/models/test_model_factory.py +0 -0
  326. {careamics-0.0.14 → careamics-0.0.16}/tests/models/test_unet.py +0 -0
  327. {careamics-0.0.14 → careamics-0.0.16}/tests/prediction_utils/test_lvae_prediction.py +0 -0
  328. {careamics-0.0.14 → careamics-0.0.16}/tests/prediction_utils/test_prediction_outputs.py +0 -0
  329. {careamics-0.0.14 → careamics-0.0.16}/tests/prediction_utils/test_stitch_prediction.py +0 -0
  330. {careamics-0.0.14 → careamics-0.0.16}/tests/test_conftest.py +0 -0
  331. {careamics-0.0.14 → careamics-0.0.16}/tests/transforms/test_compose.py +0 -0
  332. {careamics-0.0.14 → careamics-0.0.16}/tests/transforms/test_manipulate_n2v.py +0 -0
  333. {careamics-0.0.14 → careamics-0.0.16}/tests/transforms/test_normalize.py +0 -0
  334. {careamics-0.0.14 → careamics-0.0.16}/tests/transforms/test_pixel_manipulation.py +0 -0
  335. {careamics-0.0.14 → careamics-0.0.16}/tests/transforms/test_tta.py +0 -0
  336. {careamics-0.0.14 → careamics-0.0.16}/tests/transforms/test_xy_flip.py +0 -0
  337. {careamics-0.0.14 → careamics-0.0.16}/tests/transforms/test_xy_random_rotate90.py +0 -0
  338. {careamics-0.0.14 → careamics-0.0.16}/tests/utils/test_autocorrelation.py +0 -0
  339. {careamics-0.0.14 → careamics-0.0.16}/tests/utils/test_base_enum.py +0 -0
  340. {careamics-0.0.14 → careamics-0.0.16}/tests/utils/test_context.py +0 -0
  341. {careamics-0.0.14 → careamics-0.0.16}/tests/utils/test_logging.py +0 -0
  342. {careamics-0.0.14 → careamics-0.0.16}/tests/utils/test_metrics.py +0 -0
  343. {careamics-0.0.14 → careamics-0.0.16}/tests/utils/test_serializers.py +0 -0
  344. {careamics-0.0.14 → careamics-0.0.16}/tests/utils/test_torch_utils.py +0 -0
  345. {careamics-0.0.14 → careamics-0.0.16}/tests/utils/test_version.py +0 -0
  346. {careamics-0.0.14 → careamics-0.0.16}/tests/utils/test_wandb.py +0 -0
@@ -27,9 +27,9 @@ jobs:
27
27
  strategy:
28
28
  fail-fast: false
29
29
  matrix:
30
- python-version: ["3.10", "3.11", "3.12"]
30
+ python-version: ["3.11", "3.12", "3.13"]
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, windows-latest] # macos-latest
32
+ platform: [ubuntu-latest, windows-latest] # macos-latest
33
33
 
34
34
  steps:
35
35
  - name: 🛑 Cancel Previous Runs
@@ -22,7 +22,7 @@ jobs:
22
22
  strategy:
23
23
  fail-fast: false
24
24
  matrix:
25
- python-version: ["3.10", "3.11", "3.12"]
25
+ python-version: ["3.11", "3.12", "3.13"]
26
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
27
  platform: [macos-latest]
28
28
 
@@ -2,17 +2,14 @@ name: codecov
2
2
 
3
3
  on:
4
4
  push:
5
- branches:
6
- - main
7
5
  tags:
8
6
  - "v*"
9
- pull_request:
10
- workflow_dispatch:
11
7
 
12
8
  jobs:
13
- test:
9
+ codecov:
14
10
  name: ${{ matrix.platform }} (${{ matrix.python-version }})
15
11
  runs-on: ${{ matrix.platform }}
12
+ if: startsWith(github.ref, 'refs/tags/') && github.event_name != 'schedule'
16
13
  strategy:
17
14
  fail-fast: false
18
15
  matrix:
@@ -38,7 +35,7 @@ jobs:
38
35
  run: |
39
36
  python -m pip install -U pip
40
37
  # if running a cron job, we add the --pre flag to test against pre-releases
41
- python -m pip install .[dev] ${{ github.event_name == 'schedule' && '--pre' || '' }}
38
+ python -m pip install .[dev,czi] ${{ github.event_name == 'schedule' && '--pre' || '' }}
42
39
 
43
40
  - name: 🧪 Run Tests
44
41
  run: pytest --color=yes --cov --cov-config=pyproject.toml --cov-report=xml --cov-report=term-missing
@@ -14,11 +14,11 @@ repos:
14
14
  - id: validate-pyproject
15
15
 
16
16
  - repo: https://github.com/astral-sh/ruff-pre-commit
17
- rev: v0.11.12
17
+ rev: v0.12.11
18
18
  hooks:
19
19
  - id: ruff
20
20
  exclude: "^src/careamics/lvae_training/.*|^src/careamics/models/lvae/.*|^scripts/.*"
21
- args: [--fix, --target-version, py310]
21
+ args: [--fix, --target-version, py311]
22
22
 
23
23
  - repo: https://github.com/psf/black
24
24
  rev: 25.1.0
@@ -26,21 +26,21 @@ repos:
26
26
  - id: black
27
27
 
28
28
  - repo: https://github.com/pre-commit/mirrors-mypy
29
- rev: v1.16.0
29
+ rev: v1.17.1
30
30
  hooks:
31
31
  - id: mypy
32
32
  files: "^src/"
33
33
  exclude: "^src/careamics/lvae_training/.*|^src/careamics/models/lvae/.*|^src/careamics/config/likelihood_model.py|^src/careamics/losses/loss_factory.py|^src/careamics/losses/lvae/losses.py"
34
34
  args: ["--config-file", "mypy.ini"]
35
35
  additional_dependencies:
36
- - numpy<2.0.0
36
+ - numpy
37
37
  - pydantic
38
38
  - types-PyYAML
39
39
  - types-setuptools
40
40
 
41
41
  # check docstrings
42
42
  - repo: https://github.com/numpy/numpydoc
43
- rev: v1.8.0
43
+ rev: v1.9.0
44
44
  hooks:
45
45
  - id: numpydoc-validation
46
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/.*"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: careamics
3
- Version: 0.0.14
3
+ Version: 0.0.16
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,29 +10,31 @@ 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.10
14
13
  Classifier: Programming Language :: Python :: 3.11
15
14
  Classifier: Programming Language :: Python :: 3.12
15
+ Classifier: Programming Language :: Python :: 3.13
16
16
  Classifier: Typing :: Typed
17
- Requires-Python: >=3.10
18
- Requires-Dist: bioimageio-core==0.7
19
- Requires-Dist: matplotlib<=3.10.3
20
- Requires-Dist: numpy<2.0.0
21
- Requires-Dist: pillow<=11.2.1
22
- Requires-Dist: psutil<=7.0.0
17
+ Requires-Python: >=3.11
18
+ Requires-Dist: bioimageio-core>=0.9.0
19
+ Requires-Dist: matplotlib<=3.10.6
20
+ Requires-Dist: numpy>=1.21
21
+ Requires-Dist: numpy>=2.1.0; python_version >= '3.13'
22
+ Requires-Dist: pillow<=11.3.0
23
+ Requires-Dist: psutil<=7.1.0
23
24
  Requires-Dist: pydantic<=2.12,>=2.11
24
- Requires-Dist: pytorch-lightning<=2.5.2,>=2.2
25
- Requires-Dist: pyyaml!=6.0.0,<=6.0.2
25
+ Requires-Dist: pytorch-lightning<=2.5.5,>=2.2
26
+ Requires-Dist: pyyaml!=6.0.0,<=6.0.3
26
27
  Requires-Dist: scikit-image<=0.25.2
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
31
- Requires-Dist: xarray<2025.3.0
32
- Requires-Dist: zarr<3.0.0
28
+ Requires-Dist: tifffile<=2025.9.30
29
+ Requires-Dist: torch<=2.8.0,>=2.0
30
+ Requires-Dist: torchvision<=0.23.0
31
+ Requires-Dist: typer<=0.19.2,>=0.12.3
32
+ Requires-Dist: validators<=0.35.0
33
+ Requires-Dist: zarr<4.0.0,>=3.0.0
33
34
  Provides-Extra: czi
34
35
  Requires-Dist: pylibczirw<6.0.0,>=4.1.2; extra == 'czi'
35
36
  Provides-Extra: dev
37
+ Requires-Dist: ml-dtypes>=0.5.0; extra == 'dev'
36
38
  Requires-Dist: onnx; extra == 'dev'
37
39
  Requires-Dist: pre-commit; extra == 'dev'
38
40
  Requires-Dist: pytest; 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.10"
23
+ requires-python = ">=3.11"
24
24
  license = { text = "BSD-3-Clause" }
25
25
  authors = [
26
26
  { name = 'CAREamics team', email = 'rse@fht.org' },
@@ -34,28 +34,29 @@ authors = [
34
34
  classifiers = [
35
35
  "Development Status :: 3 - Alpha",
36
36
  "Programming Language :: Python :: 3",
37
- "Programming Language :: Python :: 3.10",
38
37
  "Programming Language :: Python :: 3.11",
39
38
  "Programming Language :: Python :: 3.12",
39
+ "Programming Language :: Python :: 3.13",
40
40
  "License :: OSI Approved :: BSD License",
41
41
  "Typing :: Typed",
42
42
  ]
43
43
  dependencies = [
44
- 'numpy<2.0.0',
45
- 'torch>=2.0,<=2.7.1',
46
- 'torchvision<=0.22.1',
47
- 'bioimageio.core==0.7',
48
- 'tifffile<=2025.5.10',
49
- 'psutil<=7.0.0',
44
+ "numpy>=1.21",
45
+ "numpy>=2.1.0; python_version>='3.13'", # prevents ml_dtypes conflict in py313
46
+ 'torch>=2.0,<=2.8.0',
47
+ 'torchvision<=0.23.0',
48
+ 'bioimageio.core>=0.9.0',
49
+ 'tifffile<=2025.9.30',
50
+ 'psutil<=7.1.0',
50
51
  'pydantic>=2.11,<=2.12',
51
- 'pytorch_lightning>=2.2,<=2.5.2',
52
- 'pyyaml<=6.0.2,!=6.0.0',
53
- 'typer>=0.12.3,<=0.16.0',
52
+ 'pytorch_lightning>=2.2,<=2.5.5',
53
+ 'pyyaml!=6.0.0,<=6.0.3',
54
+ 'typer>=0.12.3,<=0.19.2',
54
55
  'scikit-image<=0.25.2',
55
- 'zarr<3.0.0',
56
- 'pillow<=11.2.1',
57
- 'matplotlib<=3.10.3',
58
- 'xarray<2025.3.0',
56
+ 'zarr>=3.0.0,<4.0.0',
57
+ 'pillow<=11.3.0',
58
+ 'matplotlib<=3.10.6',
59
+ 'validators<=0.35.0'
59
60
  ]
60
61
 
61
62
  [project.optional-dependencies]
@@ -68,8 +69,11 @@ dev = [
68
69
  "pre-commit",
69
70
  "pytest",
70
71
  "pytest-cov",
71
- "onnx",
72
72
  "sybil", # doctesting
73
+
74
+ # libraries used in some tests
75
+ "onnx",
76
+ "ml_dtypes>=0.5.0" # required by onnx, causes issues in gh runners with py313
73
77
  ]
74
78
 
75
79
  # notebooks
@@ -2,7 +2,7 @@
2
2
 
3
3
  from collections.abc import Callable
4
4
  from pathlib import Path
5
- from typing import Any, Literal, Optional, Union, overload
5
+ from typing import Any, Literal, Union, overload
6
6
 
7
7
  import numpy as np
8
8
  from numpy.typing import NDArray
@@ -79,8 +79,8 @@ class CAREamist:
79
79
  def __init__( # numpydoc ignore=GL08
80
80
  self,
81
81
  source: Union[Path, str],
82
- work_dir: Optional[Union[Path, str]] = None,
83
- callbacks: Optional[list[Callback]] = None,
82
+ work_dir: Union[Path, str] | None = None,
83
+ callbacks: list[Callback] | None = None,
84
84
  enable_progress_bar: bool = True,
85
85
  ) -> None: ...
86
86
 
@@ -88,16 +88,16 @@ class CAREamist:
88
88
  def __init__( # numpydoc ignore=GL08
89
89
  self,
90
90
  source: Configuration,
91
- work_dir: Optional[Union[Path, str]] = None,
92
- callbacks: Optional[list[Callback]] = None,
91
+ work_dir: Union[Path, str] | None = None,
92
+ callbacks: list[Callback] | None = None,
93
93
  enable_progress_bar: bool = True,
94
94
  ) -> None: ...
95
95
 
96
96
  def __init__(
97
97
  self,
98
98
  source: Union[Path, str, Configuration],
99
- work_dir: Optional[Union[Path, str]] = None,
100
- callbacks: Optional[list[Callback]] = None,
99
+ work_dir: Union[Path, str] | None = None,
100
+ callbacks: list[Callback] | None = None,
101
101
  enable_progress_bar: bool = True,
102
102
  ) -> None:
103
103
  """
@@ -208,25 +208,19 @@ class CAREamist:
208
208
 
209
209
  # instantiate trainer
210
210
  self.trainer = Trainer(
211
- max_epochs=self.cfg.training_config.num_epochs,
212
- precision=self.cfg.training_config.precision,
213
- max_steps=self.cfg.training_config.max_steps,
214
- check_val_every_n_epoch=self.cfg.training_config.check_val_every_n_epoch,
215
211
  enable_progress_bar=enable_progress_bar,
216
- accumulate_grad_batches=self.cfg.training_config.accumulate_grad_batches,
217
- gradient_clip_val=self.cfg.training_config.gradient_clip_val,
218
- gradient_clip_algorithm=self.cfg.training_config.gradient_clip_algorithm,
219
212
  callbacks=self.callbacks,
220
213
  default_root_dir=self.work_dir,
221
214
  logger=experiment_logger,
215
+ **self.cfg.training_config.lightning_trainer_config or {},
222
216
  )
223
217
 
224
218
  # place holder for the datamodules
225
- self.train_datamodule: Optional[TrainDataModule] = None
226
- self.pred_datamodule: Optional[PredictDataModule] = None
219
+ self.train_datamodule: TrainDataModule | None = None
220
+ self.pred_datamodule: PredictDataModule | None = None
227
221
 
228
222
  def _define_callbacks(
229
- self, callbacks: Optional[list[Callback]], enable_progress_bar: bool
223
+ self, callbacks: list[Callback] | None, enable_progress_bar: bool
230
224
  ) -> None:
231
225
  """Define the callbacks for the training loop.
232
226
 
@@ -264,7 +258,7 @@ class CAREamist:
264
258
  HyperParametersCallback(self.cfg),
265
259
  ModelCheckpoint(
266
260
  dirpath=self.work_dir / Path("checkpoints"),
267
- filename=self.cfg.experiment_name,
261
+ filename=f"{self.cfg.experiment_name}_{{epoch:02d}}_step_{{step}}",
268
262
  **self.cfg.training_config.checkpoint_callback.model_dump(),
269
263
  ),
270
264
  ]
@@ -288,11 +282,11 @@ class CAREamist:
288
282
  def train(
289
283
  self,
290
284
  *,
291
- datamodule: Optional[TrainDataModule] = None,
292
- train_source: Optional[Union[Path, str, NDArray]] = None,
293
- val_source: Optional[Union[Path, str, NDArray]] = None,
294
- train_target: Optional[Union[Path, str, NDArray]] = None,
295
- val_target: Optional[Union[Path, str, NDArray]] = None,
285
+ datamodule: TrainDataModule | None = None,
286
+ train_source: Union[Path, str, NDArray] | None = None,
287
+ val_source: Union[Path, str, NDArray] | None = None,
288
+ train_target: Union[Path, str, NDArray] | None = None,
289
+ val_target: Union[Path, str, NDArray] | None = None,
296
290
  use_in_memory: bool = True,
297
291
  val_percentage: float = 0.1,
298
292
  val_minimum_split: int = 1,
@@ -443,9 +437,9 @@ class CAREamist:
443
437
  def _train_on_array(
444
438
  self,
445
439
  train_data: NDArray,
446
- val_data: Optional[NDArray] = None,
447
- train_target: Optional[NDArray] = None,
448
- val_target: Optional[NDArray] = None,
440
+ val_data: NDArray | None = None,
441
+ train_target: NDArray | None = None,
442
+ val_target: NDArray | None = None,
449
443
  val_percentage: float = 0.1,
450
444
  val_minimum_split: int = 5,
451
445
  ) -> None:
@@ -484,9 +478,9 @@ class CAREamist:
484
478
  def _train_on_path(
485
479
  self,
486
480
  path_to_train_data: Union[Path, str],
487
- path_to_val_data: Optional[Union[Path, str]] = None,
488
- path_to_train_target: Optional[Union[Path, str]] = None,
489
- path_to_val_target: Optional[Union[Path, str]] = None,
481
+ path_to_val_data: Union[Path, str] | None = None,
482
+ path_to_train_target: Union[Path, str] | None = None,
483
+ path_to_val_target: Union[Path, str] | None = None,
490
484
  use_in_memory: bool = True,
491
485
  val_percentage: float = 0.1,
492
486
  val_minimum_split: int = 1,
@@ -549,13 +543,13 @@ class CAREamist:
549
543
  source: Union[Path, str],
550
544
  *,
551
545
  batch_size: int = 1,
552
- tile_size: Optional[tuple[int, ...]] = None,
553
- tile_overlap: Optional[tuple[int, ...]] = (48, 48),
554
- axes: Optional[str] = None,
555
- data_type: Optional[Literal["tiff", "custom"]] = None,
546
+ tile_size: tuple[int, ...] | None = None,
547
+ tile_overlap: tuple[int, ...] | None = (48, 48),
548
+ axes: str | None = None,
549
+ data_type: Literal["tiff", "custom"] | None = None,
556
550
  tta_transforms: bool = False,
557
- dataloader_params: Optional[dict] = None,
558
- read_source_func: Optional[Callable] = None,
551
+ dataloader_params: dict | None = None,
552
+ read_source_func: Callable | None = None,
559
553
  extension_filter: str = "",
560
554
  ) -> Union[list[NDArray], NDArray]: ...
561
555
 
@@ -565,12 +559,12 @@ class CAREamist:
565
559
  source: NDArray,
566
560
  *,
567
561
  batch_size: int = 1,
568
- tile_size: Optional[tuple[int, ...]] = None,
569
- tile_overlap: Optional[tuple[int, ...]] = (48, 48),
570
- axes: Optional[str] = None,
571
- data_type: Optional[Literal["array"]] = None,
562
+ tile_size: tuple[int, ...] | None = None,
563
+ tile_overlap: tuple[int, ...] | None = (48, 48),
564
+ axes: str | None = None,
565
+ data_type: Literal["array"] | None = None,
572
566
  tta_transforms: bool = False,
573
- dataloader_params: Optional[dict] = None,
567
+ dataloader_params: dict | None = None,
574
568
  ) -> Union[list[NDArray], NDArray]: ...
575
569
 
576
570
  def predict(
@@ -578,13 +572,13 @@ class CAREamist:
578
572
  source: Union[PredictDataModule, Path, str, NDArray],
579
573
  *,
580
574
  batch_size: int = 1,
581
- tile_size: Optional[tuple[int, ...]] = None,
582
- tile_overlap: Optional[tuple[int, ...]] = (48, 48),
583
- axes: Optional[str] = None,
584
- data_type: Optional[Literal["array", "tiff", "custom"]] = None,
575
+ tile_size: tuple[int, ...] | None = None,
576
+ tile_overlap: tuple[int, ...] | None = (48, 48),
577
+ axes: str | None = None,
578
+ data_type: Literal["array", "tiff", "custom"] | None = None,
585
579
  tta_transforms: bool = False,
586
- dataloader_params: Optional[dict] = None,
587
- read_source_func: Optional[Callable] = None,
580
+ dataloader_params: dict | None = None,
581
+ read_source_func: Callable | None = None,
588
582
  extension_filter: str = "",
589
583
  **kwargs: Any,
590
584
  ) -> Union[list[NDArray], NDArray]:
@@ -704,18 +698,18 @@ class CAREamist:
704
698
  source: Union[PredictDataModule, Path, str],
705
699
  *,
706
700
  batch_size: int = 1,
707
- tile_size: Optional[tuple[int, ...]] = None,
708
- tile_overlap: Optional[tuple[int, ...]] = (48, 48),
709
- axes: Optional[str] = None,
710
- data_type: Optional[Literal["tiff", "custom"]] = None,
701
+ tile_size: tuple[int, ...] | None = None,
702
+ tile_overlap: tuple[int, ...] | None = (48, 48),
703
+ axes: str | None = None,
704
+ data_type: Literal["tiff", "custom"] | None = None,
711
705
  tta_transforms: bool = False,
712
- dataloader_params: Optional[dict] = None,
713
- read_source_func: Optional[Callable] = None,
706
+ dataloader_params: dict | None = None,
707
+ read_source_func: Callable | None = None,
714
708
  extension_filter: str = "",
715
709
  write_type: Literal["tiff", "custom"] = "tiff",
716
- write_extension: Optional[str] = None,
717
- write_func: Optional[WriteFunc] = None,
718
- write_func_kwargs: Optional[dict[str, Any]] = None,
710
+ write_extension: str | None = None,
711
+ write_func: WriteFunc | None = None,
712
+ write_func_kwargs: dict[str, Any] | None = None,
719
713
  prediction_dir: Union[Path, str] = "predictions",
720
714
  **kwargs,
721
715
  ) -> None:
@@ -823,12 +817,12 @@ class CAREamist:
823
817
 
824
818
  # extract file names
825
819
  source_path: Union[Path, str, NDArray]
826
- source_data_type: Literal["array", "tiff", "custom"]
820
+ source_data_type: Literal["array", "tiff", "czi", "custom"]
827
821
  if isinstance(source, PredictDataModule):
828
822
  source_path = source.pred_data
829
823
  source_data_type = source.data_type
830
824
  extension_filter = source.extension_filter
831
- elif isinstance(source, str | Path):
825
+ elif isinstance(source, (str | Path)):
832
826
  source_path = source
833
827
  source_data_type = data_type or self.cfg.data_config.data_type
834
828
  extension_filter = SupportedData.get_extension_pattern(
@@ -841,7 +835,7 @@ class CAREamist:
841
835
  raise ValueError(
842
836
  "Predicting to disk is not supported for input type 'array'."
843
837
  )
844
- assert isinstance(source_path, str | Path) # because data_type != "array"
838
+ assert isinstance(source_path, (Path | str)) # because data_type != "array"
845
839
  source_path = Path(source_path)
846
840
 
847
841
  file_paths = list_files(source_path, source_data_type, extension_filter)
@@ -879,14 +873,14 @@ class CAREamist:
879
873
 
880
874
  def export_to_bmz(
881
875
  self,
882
- path_to_archive: Union[Path, str],
876
+ path_to_archive: Union[Path | str],
883
877
  friendly_model_name: str,
884
878
  input_array: NDArray,
885
879
  authors: list[dict],
886
880
  general_description: str,
887
881
  data_description: str,
888
- covers: Optional[list[Union[Path, str]]] = None,
889
- channel_names: Optional[list[str]] = None,
882
+ covers: list[Union[Path, str]] | None = None,
883
+ channel_names: list[str] | None = None,
890
884
  model_version: str = "0.1.0",
891
885
  ) -> None:
892
886
  """Export the model to the BioImage Model Zoo format.
@@ -3,7 +3,7 @@
3
3
  import sys
4
4
  from dataclasses import dataclass
5
5
  from pathlib import Path
6
- from typing import Annotated, Optional
6
+ from typing import Annotated
7
7
 
8
8
  import click
9
9
  import typer
@@ -116,7 +116,11 @@ def care( # numpydoc ignore=PR01
116
116
  ),
117
117
  ],
118
118
  batch_size: Annotated[int, typer.Option(help="Batch size.")],
119
- num_epochs: Annotated[int, typer.Option(help="Number of epochs.")],
119
+ num_epochs: Annotated[int, typer.Option(help="Number of epochs.")] = 100,
120
+ num_steps: Annotated[
121
+ int | None,
122
+ typer.Option(help="Number of batches per epoch (limit_train_batches)."),
123
+ ] = None,
120
124
  data_type: Annotated[
121
125
  click.Choice,
122
126
  typer.Option(click_type=click.Choice(["tiff"]), help="Type of the data."),
@@ -135,10 +139,10 @@ def care( # numpydoc ignore=PR01
135
139
  ),
136
140
  ] = "mae",
137
141
  n_channels_in: Annotated[
138
- Optional[int], typer.Option(help="Number of channels in")
142
+ int | None, typer.Option(help="Number of channels in")
139
143
  ] = None,
140
144
  n_channels_out: Annotated[
141
- Optional[int], typer.Option(help="Number of channels out")
145
+ int | None, typer.Option(help="Number of channels out")
142
146
  ] = None,
143
147
  logger: Annotated[
144
148
  click.Choice,
@@ -175,6 +179,7 @@ def care( # numpydoc ignore=PR01
175
179
  patch_size=patch_size,
176
180
  batch_size=batch_size,
177
181
  num_epochs=num_epochs,
182
+ num_steps=num_steps,
178
183
  # TODO: fix choosing augmentations
179
184
  augmentations=None if use_augmentations else [],
180
185
  independent_channels=independent_channels,
@@ -203,7 +208,11 @@ def n2n( # numpydoc ignore=PR01
203
208
  ),
204
209
  ],
205
210
  batch_size: Annotated[int, typer.Option(help="Batch size.")],
206
- num_epochs: Annotated[int, typer.Option(help="Number of epochs.")],
211
+ num_epochs: Annotated[int, typer.Option(help="Number of epochs.")] = 100,
212
+ num_steps: Annotated[
213
+ int | None,
214
+ typer.Option(help="Number of batches per epoch (limit_train_batches)."),
215
+ ] = None,
207
216
  data_type: Annotated[
208
217
  click.Choice,
209
218
  typer.Option(click_type=click.Choice(["tiff"]), help="Type of the data."),
@@ -222,10 +231,10 @@ def n2n( # numpydoc ignore=PR01
222
231
  ),
223
232
  ] = "mae",
224
233
  n_channels_in: Annotated[
225
- Optional[int], typer.Option(help="Number of channels in")
234
+ int | None, typer.Option(help="Number of channels in")
226
235
  ] = None,
227
236
  n_channels_out: Annotated[
228
- Optional[int], typer.Option(help="Number of channels out")
237
+ int | None, typer.Option(help="Number of channels out")
229
238
  ] = None,
230
239
  logger: Annotated[
231
240
  click.Choice,
@@ -259,6 +268,7 @@ def n2n( # numpydoc ignore=PR01
259
268
  patch_size=patch_size,
260
269
  batch_size=batch_size,
261
270
  num_epochs=num_epochs,
271
+ num_steps=num_steps,
262
272
  # TODO: fix choosing augmentations
263
273
  augmentations=None if use_augmentations else [],
264
274
  independent_channels=independent_channels,
@@ -287,7 +297,11 @@ def n2v( # numpydoc ignore=PR01
287
297
  ),
288
298
  ],
289
299
  batch_size: Annotated[int, typer.Option(help="Batch size.")],
290
- num_epochs: Annotated[int, typer.Option(help="Number of epochs.")],
300
+ num_epochs: Annotated[int, typer.Option(help="Number of epochs.")] = 100,
301
+ num_steps: Annotated[
302
+ int | None,
303
+ typer.Option(help="Number of batches per epoch (limit_train_batches)."),
304
+ ] = None,
291
305
  data_type: Annotated[
292
306
  click.Choice,
293
307
  typer.Option(click_type=click.Choice(["tiff"]), help="Type of the data."),
@@ -300,7 +314,7 @@ def n2v( # numpydoc ignore=PR01
300
314
  ] = True,
301
315
  use_n2v2: Annotated[bool, typer.Option(help="Whether to use N2V2")] = False,
302
316
  n_channels: Annotated[
303
- Optional[int], typer.Option(help="Number of channels (in and out)")
317
+ int | None, typer.Option(help="Number of channels (in and out)")
304
318
  ] = None,
305
319
  roi_size: Annotated[int, typer.Option(help="N2V pixel manipulation area.")] = 11,
306
320
  masked_pixel_percentage: Annotated[
@@ -364,6 +378,7 @@ def n2v( # numpydoc ignore=PR01
364
378
  patch_size=patch_size,
365
379
  batch_size=batch_size,
366
380
  num_epochs=num_epochs,
381
+ num_steps=num_steps,
367
382
  # TODO: fix choosing augmentations
368
383
  augmentations=None if use_augmentations else [],
369
384
  independent_channels=independent_channels,
@@ -7,7 +7,7 @@ its implementation is contained in the conf.py file.
7
7
  """
8
8
 
9
9
  from pathlib import Path
10
- from typing import Annotated, Optional
10
+ from typing import Annotated
11
11
 
12
12
  import click
13
13
  import typer
@@ -47,7 +47,7 @@ def train( # numpydoc ignore=PR01
47
47
  ),
48
48
  ],
49
49
  train_target: Annotated[
50
- Optional[Path],
50
+ Path | None,
51
51
  typer.Option(
52
52
  "--train-target",
53
53
  "-tt",
@@ -58,7 +58,7 @@ def train( # numpydoc ignore=PR01
58
58
  ),
59
59
  ] = None,
60
60
  val_source: Annotated[
61
- Optional[Path],
61
+ Path | None,
62
62
  typer.Option(
63
63
  "--val-source",
64
64
  "-vs",
@@ -69,7 +69,7 @@ def train( # numpydoc ignore=PR01
69
69
  ),
70
70
  ] = None,
71
71
  val_target: Annotated[
72
- Optional[Path],
72
+ Path | None,
73
73
  typer.Option(
74
74
  "--val-target",
75
75
  "-vt",
@@ -96,7 +96,7 @@ def train( # numpydoc ignore=PR01
96
96
  typer.Option(help="Minimum number of files to use for validation,"),
97
97
  ] = 1,
98
98
  work_dir: Annotated[
99
- Optional[Path],
99
+ Path | None,
100
100
  typer.Option(
101
101
  "--work-dir",
102
102
  "-wd",
@@ -142,7 +142,7 @@ def predict( # numpydoc ignore=PR01
142
142
  ],
143
143
  batch_size: Annotated[int, typer.Option(help="Batch size.")] = 1,
144
144
  tile_size: Annotated[
145
- Optional[click.Tuple],
145
+ click.Tuple | None,
146
146
  typer.Option(
147
147
  help=(
148
148
  "Size of the tiles to use for prediction, (if the data "
@@ -164,7 +164,7 @@ def predict( # numpydoc ignore=PR01
164
164
  ),
165
165
  ] = (48, 48, -1),
166
166
  axes: Annotated[
167
- Optional[str],
167
+ str | None,
168
168
  typer.Option(
169
169
  help="Axes of the input data. If unused the data is assumed to have the "
170
170
  "same axes as the original training data."
@@ -190,7 +190,7 @@ def predict( # numpydoc ignore=PR01
190
190
  ] = "tiff",
191
191
  # TODO: could make dataloader_params as json, necessary?
192
192
  work_dir: Annotated[
193
- Optional[Path],
193
+ Path | None,
194
194
  typer.Option(
195
195
  "--work-dir",
196
196
  "-wd",
@@ -1,11 +1,9 @@
1
1
  """Utility functions for the CAREamics CLI."""
2
2
 
3
- from typing import Optional
4
-
5
3
 
6
4
  def handle_2D_3D_callback(
7
- value: Optional[tuple[int, int, int]],
8
- ) -> Optional[tuple[int, ...]]:
5
+ value: tuple[int, int, int] | None,
6
+ ) -> tuple[int, ...] | None:
9
7
  """
10
8
  Callback for options that require 2D or 3D inputs.
11
9