careamics 0.0.16__tar.gz → 0.0.17__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 (363) hide show
  1. {careamics-0.0.16 → careamics-0.0.17}/.github/dependabot.yml +1 -1
  2. careamics-0.0.17/.github/workflows/ci.yml +98 -0
  3. careamics-0.0.17/.github/workflows/ci_lvae.yml +45 -0
  4. careamics-0.0.17/.github/workflows/codecov.yml +43 -0
  5. {careamics-0.0.16 → careamics-0.0.17}/.pre-commit-config.yaml +4 -5
  6. {careamics-0.0.16 → careamics-0.0.17}/PKG-INFO +5 -11
  7. {careamics-0.0.16 → careamics-0.0.17}/pyproject.toml +15 -12
  8. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/careamist.py +7 -4
  9. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/configuration.py +6 -55
  10. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/configuration_factories.py +22 -12
  11. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/data/data_model.py +49 -9
  12. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/data/ng_data_model.py +167 -2
  13. careamics-0.0.17/src/careamics/config/data/patch_filter/__init__.py +15 -0
  14. careamics-0.0.17/src/careamics/config/data/patch_filter/filter_model.py +16 -0
  15. careamics-0.0.17/src/careamics/config/data/patch_filter/mask_filter_model.py +17 -0
  16. careamics-0.0.17/src/careamics/config/data/patch_filter/max_filter_model.py +15 -0
  17. careamics-0.0.17/src/careamics/config/data/patch_filter/meanstd_filter_model.py +18 -0
  18. careamics-0.0.17/src/careamics/config/data/patch_filter/shannon_filter_model.py +15 -0
  19. careamics-0.0.17/src/careamics/config/support/supported_filters.py +17 -0
  20. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/dataset.py +57 -5
  21. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/factory.py +101 -18
  22. careamics-0.0.17/src/careamics/dataset_ng/patch_filter/__init__.py +20 -0
  23. careamics-0.0.17/src/careamics/dataset_ng/patch_filter/coordinate_filter_protocol.py +27 -0
  24. careamics-0.0.17/src/careamics/dataset_ng/patch_filter/filter_factory.py +94 -0
  25. careamics-0.0.17/src/careamics/dataset_ng/patch_filter/mask_filter.py +95 -0
  26. careamics-0.0.17/src/careamics/dataset_ng/patch_filter/max_filter.py +188 -0
  27. careamics-0.0.17/src/careamics/dataset_ng/patch_filter/mean_std_filter.py +218 -0
  28. careamics-0.0.17/src/careamics/dataset_ng/patch_filter/patch_filter_protocol.py +50 -0
  29. careamics-0.0.17/src/careamics/dataset_ng/patch_filter/shannon_filter.py +188 -0
  30. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lightning/callbacks/data_stats_callback.py +13 -3
  31. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lightning/dataset_ng/data_module.py +79 -2
  32. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lightning/lightning_module.py +4 -3
  33. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lightning/microsplit_data_module.py +15 -10
  34. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lvae_training/eval_utils.py +46 -24
  35. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/models/lvae/likelihoods.py +2 -1
  36. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/prediction_utils/prediction_outputs.py +3 -2
  37. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/prediction_utils/stitch_prediction.py +17 -6
  38. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/utils/version.py +4 -4
  39. {careamics-0.0.16 → careamics-0.0.17}/tests/conftest.py +9 -1
  40. {careamics-0.0.16 → careamics-0.0.17}/tests/dataset_ng/dataset/test_dataset.py +84 -0
  41. careamics-0.0.17/tests/dataset_ng/patch_filter/test_mask_filter.py +33 -0
  42. careamics-0.0.17/tests/dataset_ng/patch_filter/test_max_filter.py +21 -0
  43. careamics-0.0.17/tests/dataset_ng/patch_filter/test_mean_std_patch_filter.py +28 -0
  44. careamics-0.0.17/tests/dataset_ng/patch_filter/test_shannon_entropy_filter.py +29 -0
  45. careamics-0.0.17/tests/smoke_test.py +22 -0
  46. careamics-0.0.17/uv.lock +4313 -0
  47. careamics-0.0.16/.github/TEST_FAIL_TEMPLATE.md +0 -12
  48. careamics-0.0.16/.github/workflows/ci.yml +0 -107
  49. careamics-0.0.16/.github/workflows/ci_macos.yml +0 -67
  50. careamics-0.0.16/.github/workflows/codecov.yml +0 -46
  51. careamics-0.0.16/.github/workflows/lvae.yml +0 -62
  52. {careamics-0.0.16 → careamics-0.0.17}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  53. {careamics-0.0.16 → careamics-0.0.17}/.github/ISSUE_TEMPLATE/example_report.md +0 -0
  54. {careamics-0.0.16 → careamics-0.0.17}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  55. {careamics-0.0.16 → careamics-0.0.17}/.github/ISSUE_TEMPLATE/interoperability_request.md +0 -0
  56. {careamics-0.0.16 → careamics-0.0.17}/.github/ISSUE_TEMPLATE/question.md +0 -0
  57. {careamics-0.0.16 → careamics-0.0.17}/.github/ISSUE_TEMPLATE/refactoring_suggestion.md +0 -0
  58. {careamics-0.0.16 → careamics-0.0.17}/.github/pull_request_template.md +0 -0
  59. {careamics-0.0.16 → careamics-0.0.17}/.gitignore +0 -0
  60. {careamics-0.0.16 → careamics-0.0.17}/CODE_OF_CONDUCT.md +0 -0
  61. {careamics-0.0.16 → careamics-0.0.17}/LICENSE +0 -0
  62. {careamics-0.0.16 → careamics-0.0.17}/README.md +0 -0
  63. {careamics-0.0.16 → careamics-0.0.17}/codecov.yml +0 -0
  64. {careamics-0.0.16 → careamics-0.0.17}/mypy.ini +0 -0
  65. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/__init__.py +0 -0
  66. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/cli/__init__.py +0 -0
  67. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/cli/conf.py +0 -0
  68. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/cli/main.py +0 -0
  69. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/cli/utils.py +0 -0
  70. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/__init__.py +0 -0
  71. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/algorithms/__init__.py +0 -0
  72. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/algorithms/care_algorithm_model.py +0 -0
  73. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/algorithms/hdn_algorithm_model.py +0 -0
  74. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/algorithms/microsplit_algorithm_model.py +0 -0
  75. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/algorithms/n2n_algorithm_model.py +0 -0
  76. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/algorithms/n2v_algorithm_model.py +0 -0
  77. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/algorithms/unet_algorithm_model.py +0 -0
  78. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/algorithms/vae_algorithm_model.py +0 -0
  79. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/architectures/__init__.py +0 -0
  80. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/architectures/architecture_model.py +0 -0
  81. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/architectures/lvae_model.py +0 -0
  82. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/architectures/unet_model.py +0 -0
  83. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/callback_model.py +0 -0
  84. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/configuration_io.py +0 -0
  85. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/data/__init__.py +0 -0
  86. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/data/patching_strategies/__init__.py +0 -0
  87. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/data/patching_strategies/_overlapping_patched_model.py +0 -0
  88. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/data/patching_strategies/_patched_model.py +0 -0
  89. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/data/patching_strategies/random_patching_model.py +0 -0
  90. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/data/patching_strategies/sequential_patching_model.py +0 -0
  91. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/data/patching_strategies/tiled_patching_model.py +0 -0
  92. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/data/patching_strategies/whole_patching_model.py +0 -0
  93. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/inference_model.py +0 -0
  94. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/likelihood_model.py +0 -0
  95. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/loss_model.py +0 -0
  96. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/nm_model.py +0 -0
  97. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/optimizer_models.py +0 -0
  98. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/support/__init__.py +0 -0
  99. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/support/supported_activations.py +0 -0
  100. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/support/supported_algorithms.py +0 -0
  101. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/support/supported_architectures.py +0 -0
  102. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/support/supported_data.py +0 -0
  103. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/support/supported_loggers.py +0 -0
  104. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/support/supported_losses.py +0 -0
  105. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/support/supported_optimizers.py +0 -0
  106. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/support/supported_patching_strategies.py +0 -0
  107. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/support/supported_pixel_manipulations.py +0 -0
  108. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/support/supported_struct_axis.py +0 -0
  109. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/support/supported_transforms.py +0 -0
  110. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/tile_information.py +0 -0
  111. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/training_model.py +0 -0
  112. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/transformations/__init__.py +0 -0
  113. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/transformations/n2v_manipulate_model.py +0 -0
  114. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/transformations/normalize_model.py +0 -0
  115. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/transformations/transform_model.py +0 -0
  116. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/transformations/transform_unions.py +0 -0
  117. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/transformations/xy_flip_model.py +0 -0
  118. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/transformations/xy_random_rotate90_model.py +0 -0
  119. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/validators/__init__.py +0 -0
  120. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/validators/model_validators.py +0 -0
  121. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/validators/validator_utils.py +0 -0
  122. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/conftest.py +0 -0
  123. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset/__init__.py +0 -0
  124. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset/dataset_utils/__init__.py +0 -0
  125. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset/dataset_utils/dataset_utils.py +0 -0
  126. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset/dataset_utils/file_utils.py +0 -0
  127. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset/dataset_utils/iterate_over_files.py +0 -0
  128. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset/dataset_utils/running_stats.py +0 -0
  129. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset/in_memory_dataset.py +0 -0
  130. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset/in_memory_pred_dataset.py +0 -0
  131. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset/in_memory_tiled_pred_dataset.py +0 -0
  132. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset/iterable_dataset.py +0 -0
  133. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset/iterable_pred_dataset.py +0 -0
  134. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset/iterable_tiled_pred_dataset.py +0 -0
  135. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset/patching/__init__.py +0 -0
  136. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset/patching/patching.py +0 -0
  137. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset/patching/random_patching.py +0 -0
  138. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset/patching/sequential_patching.py +0 -0
  139. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset/patching/validate_patch_dimension.py +0 -0
  140. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset/tiling/__init__.py +0 -0
  141. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset/tiling/collate_tiles.py +0 -0
  142. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset/tiling/lvae_tiled_patching.py +0 -0
  143. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset/tiling/tiled_patching.py +0 -0
  144. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/README.md +0 -0
  145. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/demos/bsd68_demo.ipynb +0 -0
  146. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/demos/care_U2OS_demo.ipynb +0 -0
  147. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/demos/demo_custom_image_stack.ipynb +0 -0
  148. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/demos/demo_datamodule.ipynb +0 -0
  149. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/demos/demo_dataset.ipynb +0 -0
  150. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/demos/demo_patch_extractor.py +0 -0
  151. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/demos/mouse_nuclei_demo.ipynb +0 -0
  152. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/legacy_interoperability.py +0 -0
  153. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/patch_extractor/__init__.py +0 -0
  154. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/patch_extractor/demo_custom_image_stack_loader.py +0 -0
  155. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/patch_extractor/image_stack/__init__.py +0 -0
  156. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/patch_extractor/image_stack/czi_image_stack.py +0 -0
  157. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/patch_extractor/image_stack/image_stack_protocol.py +0 -0
  158. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/patch_extractor/image_stack/in_memory_image_stack.py +0 -0
  159. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/patch_extractor/image_stack/zarr_image_stack.py +0 -0
  160. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/patch_extractor/image_stack_loader.py +0 -0
  161. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/patch_extractor/patch_extractor.py +0 -0
  162. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/patch_extractor/patch_extractor_factory.py +0 -0
  163. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/patching_strategies/__init__.py +0 -0
  164. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/patching_strategies/patching_strategy_protocol.py +0 -0
  165. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/patching_strategies/random_patching.py +0 -0
  166. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/patching_strategies/sequential_patching.py +0 -0
  167. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/patching_strategies/tiling_strategy.py +0 -0
  168. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/patching_strategies/whole_sample.py +0 -0
  169. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/file_io/__init__.py +0 -0
  170. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/file_io/read/__init__.py +0 -0
  171. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/file_io/read/get_func.py +0 -0
  172. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/file_io/read/tiff.py +0 -0
  173. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/file_io/write/__init__.py +0 -0
  174. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/file_io/write/get_func.py +0 -0
  175. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/file_io/write/tiff.py +0 -0
  176. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lightning/__init__.py +0 -0
  177. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lightning/callbacks/__init__.py +0 -0
  178. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lightning/callbacks/hyperparameters_callback.py +0 -0
  179. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lightning/callbacks/prediction_writer_callback/__init__.py +0 -0
  180. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lightning/callbacks/prediction_writer_callback/file_path_utils.py +0 -0
  181. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lightning/callbacks/prediction_writer_callback/prediction_writer_callback.py +0 -0
  182. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lightning/callbacks/prediction_writer_callback/write_strategy.py +0 -0
  183. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lightning/callbacks/prediction_writer_callback/write_strategy_factory.py +0 -0
  184. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lightning/callbacks/progress_bar_callback.py +0 -0
  185. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lightning/dataset_ng/__init__.py +0 -0
  186. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lightning/dataset_ng/lightning_modules/__init__.py +0 -0
  187. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lightning/dataset_ng/lightning_modules/care_module.py +0 -0
  188. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lightning/dataset_ng/lightning_modules/n2v_module.py +0 -0
  189. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lightning/dataset_ng/lightning_modules/unet_module.py +0 -0
  190. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lightning/predict_data_module.py +0 -0
  191. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lightning/train_data_module.py +0 -0
  192. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/losses/__init__.py +0 -0
  193. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/losses/fcn/__init__.py +0 -0
  194. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/losses/fcn/losses.py +0 -0
  195. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/losses/loss_factory.py +0 -0
  196. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/losses/lvae/__init__.py +0 -0
  197. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/losses/lvae/loss_utils.py +0 -0
  198. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/losses/lvae/losses.py +0 -0
  199. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lvae_training/__init__.py +0 -0
  200. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lvae_training/calibration.py +0 -0
  201. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lvae_training/dataset/__init__.py +0 -0
  202. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lvae_training/dataset/config.py +0 -0
  203. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lvae_training/dataset/lc_dataset.py +0 -0
  204. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lvae_training/dataset/ms_dataset_ref.py +0 -0
  205. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lvae_training/dataset/multich_dataset.py +0 -0
  206. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lvae_training/dataset/multicrop_dset.py +0 -0
  207. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lvae_training/dataset/multifile_dataset.py +0 -0
  208. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lvae_training/dataset/types.py +0 -0
  209. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lvae_training/dataset/utils/__init__.py +0 -0
  210. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lvae_training/dataset/utils/data_utils.py +0 -0
  211. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lvae_training/dataset/utils/empty_patch_fetcher.py +0 -0
  212. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lvae_training/dataset/utils/index_manager.py +0 -0
  213. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lvae_training/dataset/utils/index_switcher.py +0 -0
  214. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lvae_training/get_config.py +0 -0
  215. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lvae_training/lightning_module.py +0 -0
  216. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lvae_training/metrics.py +0 -0
  217. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lvae_training/train_lvae.py +0 -0
  218. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lvae_training/train_utils.py +0 -0
  219. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/model_io/__init__.py +0 -0
  220. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/model_io/bioimage/__init__.py +0 -0
  221. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/model_io/bioimage/_readme_factory.py +0 -0
  222. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/model_io/bioimage/bioimage_utils.py +0 -0
  223. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/model_io/bioimage/cover_factory.py +0 -0
  224. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/model_io/bioimage/model_description.py +0 -0
  225. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/model_io/bmz_io.py +0 -0
  226. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/model_io/model_io_utils.py +0 -0
  227. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/models/__init__.py +0 -0
  228. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/models/activation.py +0 -0
  229. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/models/layers.py +0 -0
  230. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/models/lvae/__init__.py +0 -0
  231. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/models/lvae/layers.py +0 -0
  232. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/models/lvae/lvae.py +0 -0
  233. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/models/lvae/noise_models.py +0 -0
  234. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/models/lvae/stochastic.py +0 -0
  235. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/models/lvae/utils.py +0 -0
  236. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/models/model_factory.py +0 -0
  237. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/models/unet.py +0 -0
  238. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/prediction_utils/__init__.py +0 -0
  239. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/prediction_utils/lvae_prediction.py +0 -0
  240. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/prediction_utils/lvae_tiling_manager.py +0 -0
  241. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/py.typed +0 -0
  242. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/transforms/__init__.py +0 -0
  243. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/transforms/compose.py +0 -0
  244. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/transforms/n2v_manipulate.py +0 -0
  245. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/transforms/n2v_manipulate_torch.py +0 -0
  246. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/transforms/normalize.py +0 -0
  247. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/transforms/pixel_manipulation.py +0 -0
  248. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/transforms/pixel_manipulation_torch.py +0 -0
  249. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/transforms/struct_mask_parameters.py +0 -0
  250. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/transforms/transform.py +0 -0
  251. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/transforms/tta.py +0 -0
  252. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/transforms/xy_flip.py +0 -0
  253. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/transforms/xy_random_rotate90.py +0 -0
  254. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/utils/__init__.py +0 -0
  255. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/utils/autocorrelation.py +0 -0
  256. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/utils/base_enum.py +0 -0
  257. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/utils/context.py +0 -0
  258. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/utils/lightning_utils.py +0 -0
  259. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/utils/logging.py +0 -0
  260. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/utils/metrics.py +0 -0
  261. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/utils/path_utils.py +0 -0
  262. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/utils/plotting.py +0 -0
  263. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/utils/ram.py +0 -0
  264. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/utils/receptive_field.py +0 -0
  265. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/utils/serializers.py +0 -0
  266. {careamics-0.0.16 → careamics-0.0.17}/src/careamics/utils/torch_utils.py +0 -0
  267. {careamics-0.0.16 → careamics-0.0.17}/tests/cli/__init__.py +0 -0
  268. {careamics-0.0.16 → careamics-0.0.17}/tests/cli/test_conf.py +0 -0
  269. {careamics-0.0.16 → careamics-0.0.17}/tests/cli/test_main.py +0 -0
  270. {careamics-0.0.16 → careamics-0.0.17}/tests/config/algorithms/test_care_algorithm_model.py +0 -0
  271. {careamics-0.0.16 → careamics-0.0.17}/tests/config/algorithms/test_n2n_algorithm_model.py +0 -0
  272. {careamics-0.0.16 → careamics-0.0.17}/tests/config/algorithms/test_n2v_algorithm_model.py +0 -0
  273. {careamics-0.0.16 → careamics-0.0.17}/tests/config/architectures/test_architecture_model.py +0 -0
  274. {careamics-0.0.16 → careamics-0.0.17}/tests/config/architectures/test_lvae_model.py +0 -0
  275. {careamics-0.0.16 → careamics-0.0.17}/tests/config/architectures/test_unet_model.py +0 -0
  276. {careamics-0.0.16 → careamics-0.0.17}/tests/config/data/patching_strategies/test_strategies.py +0 -0
  277. {careamics-0.0.16 → careamics-0.0.17}/tests/config/data/test_data_model.py +0 -0
  278. {careamics-0.0.16 → careamics-0.0.17}/tests/config/data/test_ng_data_model.py +0 -0
  279. {careamics-0.0.16 → careamics-0.0.17}/tests/config/support/test_supported_data.py +0 -0
  280. {careamics-0.0.16 → careamics-0.0.17}/tests/config/support/test_supported_optimizers.py +0 -0
  281. {careamics-0.0.16 → careamics-0.0.17}/tests/config/test_callback_models.py +0 -0
  282. {careamics-0.0.16 → careamics-0.0.17}/tests/config/test_configuration.py +0 -0
  283. {careamics-0.0.16 → careamics-0.0.17}/tests/config/test_configuration_factories.py +0 -0
  284. {careamics-0.0.16 → careamics-0.0.17}/tests/config/test_configuration_io.py +0 -0
  285. {careamics-0.0.16 → careamics-0.0.17}/tests/config/test_inference_model.py +0 -0
  286. {careamics-0.0.16 → careamics-0.0.17}/tests/config/test_n2v_preprocessing.py +0 -0
  287. {careamics-0.0.16 → careamics-0.0.17}/tests/config/test_optimizers_model.py +0 -0
  288. {careamics-0.0.16 → careamics-0.0.17}/tests/config/test_tile_information.py +0 -0
  289. {careamics-0.0.16 → careamics-0.0.17}/tests/config/test_unet_algorithm_model.py +0 -0
  290. {careamics-0.0.16 → careamics-0.0.17}/tests/config/test_vae_algorithm_model.py +0 -0
  291. {careamics-0.0.16 → careamics-0.0.17}/tests/config/transformations/test_n2v_manipulate_model.py +0 -0
  292. {careamics-0.0.16 → careamics-0.0.17}/tests/config/transformations/test_normalize_model.py +0 -0
  293. {careamics-0.0.16 → careamics-0.0.17}/tests/config/transformations/test_xy_flip_model.py +0 -0
  294. {careamics-0.0.16 → careamics-0.0.17}/tests/config/transformations/test_xy_random_rotate90_model.py +0 -0
  295. {careamics-0.0.16 → careamics-0.0.17}/tests/config/validators/test_model_validators.py +0 -0
  296. {careamics-0.0.16 → careamics-0.0.17}/tests/config/validators/test_validator_utils.py +0 -0
  297. {careamics-0.0.16 → careamics-0.0.17}/tests/dataset/dataset_utils/test_compute_normalization_stats.py +0 -0
  298. {careamics-0.0.16 → careamics-0.0.17}/tests/dataset/dataset_utils/test_list_files.py +0 -0
  299. {careamics-0.0.16 → careamics-0.0.17}/tests/dataset/patching/test_patching_utils.py +0 -0
  300. {careamics-0.0.16 → careamics-0.0.17}/tests/dataset/patching/test_random_patching.py +0 -0
  301. {careamics-0.0.16 → careamics-0.0.17}/tests/dataset/patching/test_sequential_patching.py +0 -0
  302. {careamics-0.0.16 → careamics-0.0.17}/tests/dataset/test_in_memory_dataset.py +0 -0
  303. {careamics-0.0.16 → careamics-0.0.17}/tests/dataset/test_in_memory_pred_dataset.py +0 -0
  304. {careamics-0.0.16 → careamics-0.0.17}/tests/dataset/test_in_memory_tiled_pred_dataset.py +0 -0
  305. {careamics-0.0.16 → careamics-0.0.17}/tests/dataset/test_iterable_dataset.py +0 -0
  306. {careamics-0.0.16 → careamics-0.0.17}/tests/dataset/test_iterable_pred_dataset.py +0 -0
  307. {careamics-0.0.16 → careamics-0.0.17}/tests/dataset/test_iterable_tiled_pred_dataset.py +0 -0
  308. {careamics-0.0.16 → careamics-0.0.17}/tests/dataset/tiling/test_collate_tiles.py +0 -0
  309. {careamics-0.0.16 → careamics-0.0.17}/tests/dataset/tiling/test_lvae_tiled_patching.py +0 -0
  310. {careamics-0.0.16 → careamics-0.0.17}/tests/dataset/tiling/test_tiled_patching.py +0 -0
  311. {careamics-0.0.16 → careamics-0.0.17}/tests/dataset_ng/patch_extractor/image_stack/test_czi_image_stack.py +0 -0
  312. {careamics-0.0.16 → careamics-0.0.17}/tests/dataset_ng/patch_extractor/image_stack/test_import_czi_image_stack.py +0 -0
  313. {careamics-0.0.16 → careamics-0.0.17}/tests/dataset_ng/patch_extractor/image_stack/test_zarr_image_stack.py +0 -0
  314. {careamics-0.0.16 → careamics-0.0.17}/tests/dataset_ng/patching_strategies/test_all_strategies.py +0 -0
  315. {careamics-0.0.16 → careamics-0.0.17}/tests/dataset_ng/patching_strategies/test_random_patching_ng.py +0 -0
  316. {careamics-0.0.16 → careamics-0.0.17}/tests/dataset_ng/patching_strategies/test_sequential_patching_ng.py +0 -0
  317. {careamics-0.0.16 → careamics-0.0.17}/tests/dataset_ng/patching_strategies/test_tiling_strategy.py +0 -0
  318. {careamics-0.0.16 → careamics-0.0.17}/tests/file_io/read/test_get_read_func.py +0 -0
  319. {careamics-0.0.16 → careamics-0.0.17}/tests/file_io/read/test_read_tiff.py +0 -0
  320. {careamics-0.0.16 → careamics-0.0.17}/tests/file_io/write/test_get_write_func.py +0 -0
  321. {careamics-0.0.16 → careamics-0.0.17}/tests/file_io/write/test_write_tiff.py +0 -0
  322. {careamics-0.0.16 → careamics-0.0.17}/tests/lightning/callbacks/prediction_writer_callback/test_cache_tiles_write_strategy.py +0 -0
  323. {careamics-0.0.16 → careamics-0.0.17}/tests/lightning/callbacks/prediction_writer_callback/test_file_path_utils.py +0 -0
  324. {careamics-0.0.16 → careamics-0.0.17}/tests/lightning/callbacks/prediction_writer_callback/test_prediction_writer_callback.py +0 -0
  325. {careamics-0.0.16 → careamics-0.0.17}/tests/lightning/callbacks/prediction_writer_callback/test_write_image_write_strategy.py +0 -0
  326. {careamics-0.0.16 → careamics-0.0.17}/tests/lightning/callbacks/prediction_writer_callback/test_write_strategy_factory.py +0 -0
  327. {careamics-0.0.16 → careamics-0.0.17}/tests/lightning/test_LVAE_lightning_module.py +0 -0
  328. {careamics-0.0.16 → careamics-0.0.17}/tests/lightning/test_lightning_api.py +0 -0
  329. {careamics-0.0.16 → careamics-0.0.17}/tests/lightning/test_lightning_module.py +0 -0
  330. {careamics-0.0.16 → careamics-0.0.17}/tests/lightning/test_lightning_module_onnx_exportability.py +0 -0
  331. {careamics-0.0.16 → careamics-0.0.17}/tests/lightning/test_microsplit_train_datamodule.py +0 -0
  332. {careamics-0.0.16 → careamics-0.0.17}/tests/lightning/test_predict_data_module.py +0 -0
  333. {careamics-0.0.16 → careamics-0.0.17}/tests/lightning/test_train_data_module.py +0 -0
  334. {careamics-0.0.16 → careamics-0.0.17}/tests/likelihood_modules/test_likelihoods.py +0 -0
  335. {careamics-0.0.16 → careamics-0.0.17}/tests/losses/test_lvae_losses.py +0 -0
  336. {careamics-0.0.16 → careamics-0.0.17}/tests/model_io/test_bmz_io.py +0 -0
  337. {careamics-0.0.16 → careamics-0.0.17}/tests/models/lvae/test_lvae_architecture.py +0 -0
  338. {careamics-0.0.16 → careamics-0.0.17}/tests/models/lvae/test_noise_model.py +0 -0
  339. {careamics-0.0.16 → careamics-0.0.17}/tests/models/lvae/test_utils.py +0 -0
  340. {careamics-0.0.16 → careamics-0.0.17}/tests/models/test_model_factory.py +0 -0
  341. {careamics-0.0.16 → careamics-0.0.17}/tests/models/test_unet.py +0 -0
  342. {careamics-0.0.16 → careamics-0.0.17}/tests/prediction_utils/test_lvae_prediction.py +0 -0
  343. {careamics-0.0.16 → careamics-0.0.17}/tests/prediction_utils/test_prediction_outputs.py +0 -0
  344. {careamics-0.0.16 → careamics-0.0.17}/tests/prediction_utils/test_stitch_prediction.py +0 -0
  345. {careamics-0.0.16 → careamics-0.0.17}/tests/test_careamist.py +0 -0
  346. {careamics-0.0.16 → careamics-0.0.17}/tests/test_conftest.py +0 -0
  347. {careamics-0.0.16 → careamics-0.0.17}/tests/transforms/test_compose.py +0 -0
  348. {careamics-0.0.16 → careamics-0.0.17}/tests/transforms/test_manipulate_n2v.py +0 -0
  349. {careamics-0.0.16 → careamics-0.0.17}/tests/transforms/test_normalize.py +0 -0
  350. {careamics-0.0.16 → careamics-0.0.17}/tests/transforms/test_pixel_manipulation.py +0 -0
  351. {careamics-0.0.16 → careamics-0.0.17}/tests/transforms/test_tta.py +0 -0
  352. {careamics-0.0.16 → careamics-0.0.17}/tests/transforms/test_xy_flip.py +0 -0
  353. {careamics-0.0.16 → careamics-0.0.17}/tests/transforms/test_xy_random_rotate90.py +0 -0
  354. {careamics-0.0.16 → careamics-0.0.17}/tests/utils/test_autocorrelation.py +0 -0
  355. {careamics-0.0.16 → careamics-0.0.17}/tests/utils/test_base_enum.py +0 -0
  356. {careamics-0.0.16 → careamics-0.0.17}/tests/utils/test_context.py +0 -0
  357. {careamics-0.0.16 → careamics-0.0.17}/tests/utils/test_lightning_utils.py +0 -0
  358. {careamics-0.0.16 → careamics-0.0.17}/tests/utils/test_logging.py +0 -0
  359. {careamics-0.0.16 → careamics-0.0.17}/tests/utils/test_metrics.py +0 -0
  360. {careamics-0.0.16 → careamics-0.0.17}/tests/utils/test_serializers.py +0 -0
  361. {careamics-0.0.16 → careamics-0.0.17}/tests/utils/test_torch_utils.py +0 -0
  362. {careamics-0.0.16 → careamics-0.0.17}/tests/utils/test_version.py +0 -0
  363. {careamics-0.0.16 → careamics-0.0.17}/tests/utils/test_wandb.py +0 -0
@@ -7,5 +7,5 @@ updates:
7
7
  interval: "daily"
8
8
  time: "08:00"
9
9
  ignore:
10
- - dependency-name: "numpy"
11
10
  - dependency-name: "zarr"
11
+ - dependency-name: "torchmetrics"
@@ -0,0 +1,98 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ tags:
8
+ - "v*"
9
+ pull_request:
10
+ workflow_dispatch:
11
+ schedule:
12
+ # run every week (for --pre release tests)
13
+ - cron: "0 0 * * 0"
14
+
15
+ jobs:
16
+ check-manifest:
17
+ # check-manifest is a tool that checks that all files in version control are
18
+ # included in the sdist (unless explicitly excluded)
19
+ runs-on: ubuntu-latest
20
+ steps:
21
+ - uses: actions/checkout@v3
22
+ - run: pipx run check-manifest
23
+
24
+ test:
25
+ name: ${{ matrix.platform }} (${{ matrix.python-version }})
26
+ runs-on: ${{ matrix.platform }}
27
+ strategy:
28
+ fail-fast: false
29
+ matrix:
30
+ python-version: ["3.11", "3.12", "3.13"]
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 ]
33
+
34
+ steps:
35
+ - name: 🛑 Cancel Previous Runs
36
+ uses: styfle/cancel-workflow-action@0.11.0
37
+ with:
38
+ access_token: ${{ github.token }}
39
+
40
+ - uses: actions/checkout@v5
41
+
42
+ - name: Install uv
43
+ uses: astral-sh/setup-uv@v6
44
+ with:
45
+ # Install a specific version of uv.
46
+ version: "0.9.0"
47
+ enable-cache: true
48
+ python-version: ${{ matrix.python-version }}
49
+
50
+ - name: Install the project
51
+ run: uv sync --all-extras --dev
52
+
53
+ - name: 🧪 Run tests
54
+ run: uv run pytest --color=yes -m "not lvae"
55
+
56
+
57
+ deploy:
58
+ name: Release
59
+ needs: test
60
+ if: success() && startsWith(github.ref, 'refs/tags/') && github.event_name != 'schedule'
61
+ runs-on: ubuntu-latest
62
+
63
+ permissions:
64
+ # IMPORTANT: this permission is mandatory for trusted publishing
65
+ id-token: write
66
+
67
+ # This permission allows writing releases
68
+ contents: write
69
+
70
+ steps:
71
+ - uses: actions/checkout@v5
72
+ with:
73
+ fetch-depth: 0
74
+
75
+ - name: Install uv
76
+ uses: astral-sh/setup-uv@v6
77
+ with:
78
+ # Install a specific version of uv.
79
+ version: "0.9.0"
80
+ enable-cache: true
81
+ python-version: 3.12
82
+
83
+ - name: Build
84
+ run: uv build
85
+
86
+ # Check that basic features work and we didn't miss to include crucial files
87
+ - name: Smoke test (wheel)
88
+ run: uv run --isolated --no-project --with dist/*.whl tests/smoke_test.py
89
+
90
+ - name: Smoke test (source distribution)
91
+ run: uv run --isolated --no-project --with dist/*.tar.gz tests/smoke_test.py
92
+
93
+ - name: Publish
94
+ run: uv publish
95
+
96
+ - uses: softprops/action-gh-release@v2
97
+ with:
98
+ generate_release_notes: true
@@ -0,0 +1,45 @@
1
+ name: CI-lvae-uv
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ tags:
8
+ - "v*"
9
+ pull_request:
10
+ workflow_dispatch:
11
+ schedule:
12
+ # run every week (for --pre release tests)
13
+ - cron: "0 0 * * 0"
14
+
15
+ jobs:
16
+ test:
17
+ name: LVAE py3.12 (ubuntu-latest)
18
+ runs-on: ubuntu-latest
19
+ strategy:
20
+ fail-fast: false
21
+ matrix:
22
+ python-version: ["3.12"]
23
+
24
+ steps:
25
+ - name: 🛑 Cancel Previous Runs
26
+ uses: styfle/cancel-workflow-action@0.11.0
27
+ with:
28
+ access_token: ${{ github.token }}
29
+
30
+ - uses: actions/checkout@v5
31
+
32
+ - name: Install uv
33
+ uses: astral-sh/setup-uv@v6
34
+ with:
35
+ # Install a specific version of uv.
36
+ version: "0.9.0"
37
+ enable-cache: true
38
+ python-version: ${{ matrix.python-version }}
39
+
40
+ - name: Install the project
41
+ run: uv sync --all-extras --dev
42
+
43
+ - name: 🧪 Run tests
44
+ # does not run doctests
45
+ run: uv run pytest tests --color=yes -m lvae
@@ -0,0 +1,43 @@
1
+ name: codecov
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v*"
7
+
8
+ jobs:
9
+ codecov:
10
+ name: codecov update
11
+ runs-on: ubuntu-latest
12
+ strategy:
13
+ fail-fast: false
14
+ matrix:
15
+ python-version: ["3.12"]
16
+
17
+ steps:
18
+ - name: 🛑 Cancel Previous Runs
19
+ uses: styfle/cancel-workflow-action@0.11.0
20
+ with:
21
+ access_token: ${{ github.token }}
22
+
23
+ - name: Checkout code
24
+ uses: actions/checkout@v5
25
+
26
+ - name: Install uv
27
+ uses: astral-sh/setup-uv@v6
28
+ with:
29
+ # Install a specific version of uv.
30
+ version: "0.9.0"
31
+ enable-cache: true
32
+ python-version: ${{ matrix.python-version }}
33
+
34
+ - name: Install the project
35
+ run: uv sync --all-extras --dev
36
+
37
+ - name: 🧪 Run Tests
38
+ run: uv run pytest --color=yes --cov --cov-config=pyproject.toml --cov-report=xml --cov-report=term-missing
39
+
40
+ - name: Coverage
41
+ uses: codecov/codecov-action@v5
42
+ with:
43
+ version: v0.7.3
@@ -14,19 +14,18 @@ repos:
14
14
  - id: validate-pyproject
15
15
 
16
16
  - repo: https://github.com/astral-sh/ruff-pre-commit
17
- rev: v0.12.11
17
+ rev: v0.13.3
18
18
  hooks:
19
19
  - id: ruff
20
20
  exclude: "^src/careamics/lvae_training/.*|^src/careamics/models/lvae/.*|^scripts/.*"
21
- args: [--fix, --target-version, py311]
22
21
 
23
- - repo: https://github.com/psf/black
24
- rev: 25.1.0
22
+ - repo: https://github.com/psf/black-pre-commit-mirror
23
+ rev: 25.9.0
25
24
  hooks:
26
25
  - id: black
27
26
 
28
27
  - repo: https://github.com/pre-commit/mirrors-mypy
29
- rev: v1.17.1
28
+ rev: v1.18.2
30
29
  hooks:
31
30
  - id: mypy
32
31
  files: "^src/"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: careamics
3
- Version: 0.0.16
3
+ Version: 0.0.17
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
@@ -16,30 +16,24 @@ Classifier: Programming Language :: Python :: 3.13
16
16
  Classifier: Typing :: Typed
17
17
  Requires-Python: >=3.11
18
18
  Requires-Dist: bioimageio-core>=0.9.0
19
- Requires-Dist: matplotlib<=3.10.6
19
+ Requires-Dist: matplotlib<=3.10.7
20
20
  Requires-Dist: numpy>=1.21
21
21
  Requires-Dist: numpy>=2.1.0; python_version >= '3.13'
22
22
  Requires-Dist: pillow<=11.3.0
23
23
  Requires-Dist: psutil<=7.1.0
24
- Requires-Dist: pydantic<=2.12,>=2.11
24
+ Requires-Dist: pydantic<=2.12.2,>=2.11
25
25
  Requires-Dist: pytorch-lightning<=2.5.5,>=2.2
26
26
  Requires-Dist: pyyaml!=6.0.0,<=6.0.3
27
27
  Requires-Dist: scikit-image<=0.25.2
28
- Requires-Dist: tifffile<=2025.9.30
28
+ Requires-Dist: tifffile<=2025.10.4
29
29
  Requires-Dist: torch<=2.8.0,>=2.0
30
+ Requires-Dist: torchmetrics<1.5.0,>=0.11.0
30
31
  Requires-Dist: torchvision<=0.23.0
31
32
  Requires-Dist: typer<=0.19.2,>=0.12.3
32
33
  Requires-Dist: validators<=0.35.0
33
34
  Requires-Dist: zarr<4.0.0,>=3.0.0
34
35
  Provides-Extra: czi
35
36
  Requires-Dist: pylibczirw<6.0.0,>=4.1.2; extra == 'czi'
36
- Provides-Extra: dev
37
- Requires-Dist: ml-dtypes>=0.5.0; extra == 'dev'
38
- Requires-Dist: onnx; extra == 'dev'
39
- Requires-Dist: pre-commit; extra == 'dev'
40
- Requires-Dist: pytest; extra == 'dev'
41
- Requires-Dist: pytest-cov; extra == 'dev'
42
- Requires-Dist: sybil; extra == 'dev'
43
37
  Provides-Extra: examples
44
38
  Requires-Dist: careamics-portfolio; extra == 'examples'
45
39
  Requires-Dist: jupyter; extra == 'examples'
@@ -46,17 +46,18 @@ dependencies = [
46
46
  'torch>=2.0,<=2.8.0',
47
47
  'torchvision<=0.23.0',
48
48
  'bioimageio.core>=0.9.0',
49
- 'tifffile<=2025.9.30',
49
+ 'tifffile<=2025.10.4',
50
50
  'psutil<=7.1.0',
51
- 'pydantic>=2.11,<=2.12',
51
+ 'pydantic>=2.11,<=2.12.2',
52
52
  'pytorch_lightning>=2.2,<=2.5.5',
53
53
  'pyyaml!=6.0.0,<=6.0.3',
54
54
  'typer>=0.12.3,<=0.19.2',
55
55
  'scikit-image<=0.25.2',
56
56
  'zarr>=3.0.0,<4.0.0',
57
57
  'pillow<=11.3.0',
58
- 'matplotlib<=3.10.6',
59
- 'validators<=0.35.0'
58
+ 'matplotlib<=3.10.7',
59
+ 'validators<=0.35.0',
60
+ 'torchmetrics>=0.11.0,<1.5.0' # 1.5.0 causes `data_range` mandatory parameter issues
60
61
  ]
61
62
 
62
63
  [project.optional-dependencies]
@@ -64,6 +65,14 @@ dependencies = [
64
65
  # czi format
65
66
  czi = ['pylibCZIrw>=4.1.2,<6.0.0']
66
67
 
68
+ # notebooks
69
+ examples = ["jupyter", "careamics-portfolio"]
70
+
71
+ # loggers
72
+ wandb = ["wandb"]
73
+ tensorboard = ["tensorboard", "protobuf==5.29.1"]
74
+
75
+ [dependency-groups]
67
76
  # development dependencies and tooling
68
77
  dev = [
69
78
  "pre-commit",
@@ -76,13 +85,6 @@ dev = [
76
85
  "ml_dtypes>=0.5.0" # required by onnx, causes issues in gh runners with py313
77
86
  ]
78
87
 
79
- # notebooks
80
- examples = ["jupyter", "careamics-portfolio"]
81
-
82
- # loggers
83
- wandb = ["wandb"]
84
- tensorboard = ["tensorboard", "protobuf==5.29.1"]
85
-
86
88
  [project.urls]
87
89
  homepage = "https://careamics.github.io/"
88
90
  repository = "https://github.com/CAREamics/careamics"
@@ -93,8 +95,9 @@ careamics = "careamics.cli.main:run"
93
95
 
94
96
  # https://beta.ruff.rs/docs
95
97
  [tool.ruff]
98
+ fix = true
96
99
  line-length = 88
97
- target-version = "py310"
100
+ target-version = "py311" # is this needed? see .pre-commit-config.yaml
98
101
  src = ["src"]
99
102
  lint.select = [
100
103
  "E", # style errors
@@ -41,6 +41,7 @@ logger = get_logger(__name__)
41
41
  LOGGER_TYPES = list[Union[TensorBoardLogger, WandbLogger, CSVLogger]]
42
42
 
43
43
 
44
+ # TODO type ignore have been added because of the czi data type in data configuration
44
45
  class CAREamist:
45
46
  """Main CAREamics class, allowing training and prediction using various algorithms.
46
47
 
@@ -674,7 +675,7 @@ class CAREamist:
674
675
  # create the prediction
675
676
  self.pred_datamodule = create_predict_datamodule(
676
677
  pred_data=source,
677
- data_type=data_type or self.cfg.data_config.data_type,
678
+ data_type=data_type or self.cfg.data_config.data_type, # type: ignore
678
679
  axes=axes or self.cfg.data_config.axes,
679
680
  image_means=self.cfg.data_config.image_means,
680
681
  image_stds=self.cfg.data_config.image_stds,
@@ -817,14 +818,16 @@ class CAREamist:
817
818
 
818
819
  # extract file names
819
820
  source_path: Union[Path, str, NDArray]
820
- source_data_type: Literal["array", "tiff", "czi", "custom"]
821
+ source_data_type: Literal["array", "tiff", "custom"]
821
822
  if isinstance(source, PredictDataModule):
822
823
  source_path = source.pred_data
823
- source_data_type = source.data_type
824
+ source_data_type = source.data_type # type: ignore
824
825
  extension_filter = source.extension_filter
825
826
  elif isinstance(source, (str | Path)):
826
827
  source_path = source
827
- source_data_type = data_type or self.cfg.data_config.data_type
828
+ source_data_type = (
829
+ data_type or self.cfg.data_config.data_type # type: ignore
830
+ )
828
831
  extension_filter = SupportedData.get_extension_pattern(
829
832
  SupportedData(source_data_type)
830
833
  )
@@ -3,14 +3,12 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  import re
6
- from collections.abc import Callable
7
6
  from pprint import pformat
8
7
  from typing import Any, Literal, Self, Union
9
8
 
10
9
  import numpy as np
11
10
  from bioimageio.spec.generic.v0_3 import CiteEntry
12
11
  from pydantic import BaseModel, ConfigDict, Field, field_validator, model_validator
13
- from pydantic.main import IncEx
14
12
 
15
13
  from careamics.config.algorithms import (
16
14
  CAREAlgorithm,
@@ -343,19 +341,7 @@ class Configuration(BaseModel):
343
341
 
344
342
  def model_dump(
345
343
  self,
346
- *,
347
- mode: Literal["json", "python"] | str = "python",
348
- include: IncEx | None = None,
349
- exclude: IncEx | None = None,
350
- context: Any | None = None,
351
- by_alias: bool | None = False,
352
- exclude_unset: bool = False,
353
- exclude_defaults: bool = False,
354
- exclude_none: bool = True,
355
- round_trip: bool = False,
356
- warnings: bool | Literal["none", "warn", "error"] = True,
357
- fallback: Callable[[Any], Any] | None = None,
358
- serialize_as_any: bool = False,
344
+ **kwargs: Any,
359
345
  ) -> dict[str, Any]:
360
346
  """
361
347
  Override model_dump method in order to set default values.
@@ -365,50 +351,15 @@ class Configuration(BaseModel):
365
351
 
366
352
  Parameters
367
353
  ----------
368
- mode : Literal['json', 'python'] | str, default='python'
369
- The serialization format.
370
- include : Any | None, default=None
371
- Attributes to include.
372
- exclude : Any | None, default=None
373
- Attributes to exclude.
374
- context : Any | None, default=None
375
- Additional context to pass to the serialization functions.
376
- by_alias : bool, default=False
377
- Whether to use attribute aliases.
378
- exclude_unset : bool, default=False
379
- Whether to exclude fields that are not set.
380
- exclude_defaults : bool, default=False
381
- Whether to exclude fields that have default values.
382
- exclude_none : bool, default=true
383
- Whether to exclude fields that have None values.
384
- round_trip : bool, default=False
385
- Whether to dump and load the data to ensure that the output is a valid
386
- representation.
387
- warnings : bool | Literal['none', 'warn', 'error'], default=True
388
- Whether to emit warnings.
389
- fallback : Callable[[Any], Any] | None, default=None
390
- A function to call when an unknown value is encountered.
391
- serialize_as_any : bool, default=False
392
- Whether to serialize all types as Any.
354
+ **kwargs : Any
355
+ Additional arguments to pass to the parent model_dump method.
393
356
 
394
357
  Returns
395
358
  -------
396
359
  dict
397
360
  Dictionary containing the model parameters.
398
361
  """
399
- dictionary = super().model_dump(
400
- mode=mode,
401
- include=include,
402
- exclude=exclude,
403
- context=context,
404
- by_alias=by_alias,
405
- exclude_unset=exclude_unset,
406
- exclude_defaults=exclude_defaults,
407
- exclude_none=exclude_none,
408
- round_trip=round_trip,
409
- warnings=warnings,
410
- fallback=fallback,
411
- serialize_as_any=serialize_as_any,
412
- )
362
+ if "exclude_none" not in kwargs:
363
+ kwargs["exclude_none"] = True
413
364
 
414
- return dictionary
365
+ return super().model_dump(**kwargs)
@@ -311,6 +311,10 @@ def _create_microsplit_data_configuration(
311
311
  Axes of the data.
312
312
  patch_size : list of int
313
313
  Size of the patches along the spatial dimensions.
314
+ grid_size : int
315
+ Grid size for patch extraction.
316
+ multiscale_count : int
317
+ Number of LC scales.
314
318
  batch_size : int
315
319
  Batch size.
316
320
  augmentations : list of transforms
@@ -1610,6 +1614,12 @@ def get_likelihood_config(
1610
1614
  ]:
1611
1615
  """Get the likelihood configuration for split models.
1612
1616
 
1617
+ Returns a tuple containing the following optional entries:
1618
+ - GaussianLikelihoodConfig: Gaussian likelihood configuration for musplit losses
1619
+ - MultiChannelNMConfig: Multi-channel noise model configuration for denoisplit
1620
+ losses
1621
+ - NMLikelihoodConfig: Noise model likelihood configuration for denoisplit losses
1622
+
1613
1623
  Parameters
1614
1624
  ----------
1615
1625
  loss_type : Literal["musplit", "denoisplit", "denoisplit_musplit"]
@@ -1629,15 +1639,12 @@ def get_likelihood_config(
1629
1639
 
1630
1640
  Returns
1631
1641
  -------
1632
- tuple[GaussianLikelihoodConfig | None, MultiChannelNMConfig | None,
1633
- NMLikelihoodConfig | None]
1634
- A tuple containing the likelihood and noise model configurations for the
1635
- specified loss type.
1636
-
1637
- - GaussianLikelihoodConfig: Gaussian likelihood configuration for musplit losses
1638
- - MultiChannelNMConfig: Multi-channel noise model configuration for denoisplit
1639
- losses
1640
- - NMLikelihoodConfig: Noise model likelihood configuration for denoisplit losses
1642
+ GaussianLikelihoodConfig or None
1643
+ Configuration for the Gaussian likelihood model.
1644
+ MultiChannelNMConfig or None
1645
+ Configuration for the multi-channel noise model.
1646
+ NMLikelihoodConfig or None
1647
+ Configuration for the noise model likelihood.
1641
1648
 
1642
1649
  Raises
1643
1650
  ------
@@ -1647,7 +1654,7 @@ def get_likelihood_config(
1647
1654
  # gaussian likelihood
1648
1655
  if loss_type in ["musplit", "denoisplit_musplit"]:
1649
1656
  # if predict_logvar is None:
1650
- # raise ValueError(f"predict_logvar is required for loss_type '{loss_type}'")
1657
+ # raise ValueError(f"predict_logvar is required for loss_type '{loss_type}'")
1651
1658
  # TODO validators should be in pydantic models
1652
1659
  gaussian_lik_config = GaussianLikelihoodConfig(
1653
1660
  predict_logvar=predict_logvar,
@@ -1903,7 +1910,7 @@ def create_microsplit_configuration(
1903
1910
  decoder_dropout: float = 0.0,
1904
1911
  nonlinearity: Literal[
1905
1912
  "None", "Sigmoid", "Softmax", "Tanh", "ReLU", "LeakyReLU", "ELU"
1906
- ] = "ReLU",
1913
+ ] = "ReLU", # TODO do we need all these?
1907
1914
  analytical_kl: bool = False,
1908
1915
  predict_logvar: Literal["pixelwise"] = "pixelwise",
1909
1916
  logvar_lowerbound: Union[float, None] = None,
@@ -1943,8 +1950,11 @@ def create_microsplit_configuration(
1943
1950
  Strides for the decoder convolutional layers, by default (2, 2).
1944
1951
  multiscale_count : int, optional
1945
1952
  Number of multiscale levels, by default 1.
1953
+ grid_size : int, optional
1954
+ Size of the grid for the lateral context, by default 32.
1946
1955
  z_dims : tuple[int, ...], optional
1947
- List of latent dimensions for each hierarchy level in the LVAE, by default (128, 128).
1956
+ List of latent dimensions for each hierarchy level in the LVAE, by default
1957
+ (128, 128).
1948
1958
  output_channels : int, optional
1949
1959
  Number of output channels for the model, by default 1.
1950
1960
  encoder_n_filters : int, optional
@@ -207,13 +207,12 @@ class DataConfig(BaseModel):
207
207
 
208
208
  @field_validator("train_dataloader_params", "val_dataloader_params", mode="before")
209
209
  @classmethod
210
- def set_default_dataloader_params(
210
+ def set_default_pin_memory(
211
211
  cls, dataloader_params: dict[str, Any]
212
212
  ) -> dict[str, Any]:
213
213
  """
214
- Set default dataloader parameters if not provided.
214
+ Set default pin_memory for dataloader parameters if not provided.
215
215
 
216
- - If 'num_workers' is not set, it defaults to the number of available CPU cores.
217
216
  - If 'pin_memory' is not set, it defaults to True if CUDA is available.
218
217
 
219
218
  Parameters
@@ -224,21 +223,62 @@ class DataConfig(BaseModel):
224
223
  Returns
225
224
  -------
226
225
  dict of {str: Any}
227
- The dataloader parameters with defaults applied.
226
+ The dataloader parameters with pin_memory default applied.
227
+ """
228
+ if "pin_memory" not in dataloader_params:
229
+ import torch
230
+
231
+ dataloader_params["pin_memory"] = torch.cuda.is_available()
232
+
233
+ return dataloader_params
234
+
235
+ @field_validator("train_dataloader_params", mode="before")
236
+ @classmethod
237
+ def set_default_train_workers(
238
+ cls, dataloader_params: dict[str, Any]
239
+ ) -> dict[str, Any]:
240
+ """
241
+ Set default num_workers for training dataloader if not provided.
242
+
243
+ - If 'num_workers' is not set, it defaults to the number of available CPU cores.
244
+
245
+ Parameters
246
+ ----------
247
+ dataloader_params : dict of {str: Any}
248
+ The training dataloader parameters.
249
+
250
+ Returns
251
+ -------
252
+ dict of {str: Any}
253
+ The dataloader parameters with num_workers default applied.
228
254
  """
229
255
  if "num_workers" not in dataloader_params:
230
- # Use 1 worker during tests, otherwise use all available CPU cores
256
+ # Use 0 workers during tests, otherwise use all available CPU cores
231
257
  if "pytest" in sys.modules:
232
258
  dataloader_params["num_workers"] = 0
233
259
  else:
234
260
  dataloader_params["num_workers"] = os.cpu_count()
235
261
 
236
- if "pin_memory" not in dataloader_params:
237
- import torch
262
+ return dataloader_params
238
263
 
239
- dataloader_params["pin_memory"] = torch.cuda.is_available()
264
+ @model_validator(mode="after")
265
+ def set_val_workers_to_match_train(self: Self) -> Self:
266
+ """
267
+ Set validation dataloader num_workers to match training dataloader.
240
268
 
241
- return dataloader_params
269
+ If num_workers is not specified in val_dataloader_params, it will be set to the
270
+ same value as train_dataloader_params["num_workers"].
271
+
272
+ Returns
273
+ -------
274
+ Self
275
+ Validated data model with synchronized num_workers.
276
+ """
277
+ if "num_workers" not in self.val_dataloader_params:
278
+ self.val_dataloader_params["num_workers"] = self.train_dataloader_params[
279
+ "num_workers"
280
+ ]
281
+ return self
242
282
 
243
283
  @field_validator("train_dataloader_params")
244
284
  @classmethod