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.
- {careamics-0.0.14 → careamics-0.0.16}/.github/workflows/ci.yml +2 -2
- {careamics-0.0.14 → careamics-0.0.16}/.github/workflows/ci_macos.yml +1 -1
- {careamics-0.0.14 → careamics-0.0.16}/.github/workflows/codecov.yml +3 -6
- {careamics-0.0.14 → careamics-0.0.16}/.pre-commit-config.yaml +5 -5
- {careamics-0.0.14 → careamics-0.0.16}/PKG-INFO +18 -16
- {careamics-0.0.14 → careamics-0.0.16}/pyproject.toml +20 -16
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/careamist.py +55 -61
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/cli/conf.py +24 -9
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/cli/main.py +8 -8
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/cli/utils.py +2 -4
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/__init__.py +8 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/algorithms/__init__.py +4 -0
- careamics-0.0.16/src/careamics/config/algorithms/hdn_algorithm_model.py +103 -0
- careamics-0.0.16/src/careamics/config/algorithms/microsplit_algorithm_model.py +103 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/algorithms/n2v_algorithm_model.py +1 -2
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/algorithms/vae_algorithm_model.py +53 -18
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/architectures/lvae_model.py +12 -8
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/callback_model.py +15 -11
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/configuration.py +9 -8
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/configuration_factories.py +892 -78
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/data/data_model.py +7 -14
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/data/ng_data_model.py +8 -15
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/data/patching_strategies/_overlapping_patched_model.py +4 -5
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/inference_model.py +6 -11
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/likelihood_model.py +4 -4
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/loss_model.py +6 -2
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/nm_model.py +30 -7
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/optimizer_models.py +1 -2
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/support/supported_algorithms.py +5 -3
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/support/supported_losses.py +5 -2
- careamics-0.0.16/src/careamics/config/training_model.py +69 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/transformations/normalize_model.py +3 -4
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/transformations/xy_flip_model.py +2 -2
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/transformations/xy_random_rotate90_model.py +2 -2
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/validators/validator_utils.py +1 -2
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset/dataset_utils/iterate_over_files.py +3 -3
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset/in_memory_dataset.py +2 -2
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset/iterable_dataset.py +1 -2
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset/patching/random_patching.py +6 -6
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset/patching/sequential_patching.py +4 -4
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset/tiling/lvae_tiled_patching.py +2 -2
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/dataset.py +3 -3
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/factory.py +19 -19
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/patch_extractor/demo_custom_image_stack_loader.py +4 -4
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/patch_extractor/image_stack/in_memory_image_stack.py +1 -2
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/patch_extractor/image_stack/zarr_image_stack.py +33 -7
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/patch_extractor/image_stack_loader.py +2 -2
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/patching_strategies/random_patching.py +2 -3
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/patching_strategies/sequential_patching.py +1 -2
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/file_io/read/__init__.py +0 -1
- careamics-0.0.16/src/careamics/lightning/__init__.py +32 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lightning/callbacks/__init__.py +2 -0
- careamics-0.0.16/src/careamics/lightning/callbacks/data_stats_callback.py +23 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lightning/callbacks/prediction_writer_callback/prediction_writer_callback.py +5 -5
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lightning/callbacks/prediction_writer_callback/write_strategy.py +5 -5
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lightning/callbacks/prediction_writer_callback/write_strategy_factory.py +8 -8
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lightning/dataset_ng/data_module.py +43 -43
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lightning/lightning_module.py +166 -68
- careamics-0.0.16/src/careamics/lightning/microsplit_data_module.py +631 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lightning/predict_data_module.py +16 -9
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lightning/train_data_module.py +29 -18
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/losses/__init__.py +7 -1
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/losses/loss_factory.py +9 -1
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/losses/lvae/losses.py +94 -9
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lvae_training/dataset/__init__.py +8 -8
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lvae_training/dataset/config.py +56 -44
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lvae_training/dataset/lc_dataset.py +18 -12
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lvae_training/dataset/ms_dataset_ref.py +5 -5
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lvae_training/dataset/multich_dataset.py +24 -18
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lvae_training/dataset/multifile_dataset.py +6 -6
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/model_io/bioimage/model_description.py +12 -11
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/model_io/bmz_io.py +12 -8
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/models/layers.py +5 -5
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/models/lvae/likelihoods.py +30 -14
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/models/lvae/lvae.py +2 -2
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/models/lvae/noise_models.py +20 -14
- careamics-0.0.16/src/careamics/prediction_utils/__init__.py +16 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/prediction_utils/lvae_prediction.py +5 -5
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/prediction_utils/prediction_outputs.py +48 -3
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/prediction_utils/stitch_prediction.py +71 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/transforms/compose.py +9 -9
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/transforms/n2v_manipulate.py +3 -3
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/transforms/n2v_manipulate_torch.py +4 -4
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/transforms/normalize.py +4 -6
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/transforms/pixel_manipulation.py +6 -8
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/transforms/pixel_manipulation_torch.py +5 -7
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/transforms/xy_flip.py +3 -5
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/transforms/xy_random_rotate90.py +4 -6
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/utils/logging.py +8 -8
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/utils/metrics.py +2 -2
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/utils/plotting.py +1 -3
- careamics-0.0.16/tests/config/test_configuration_factories.py +1150 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/config/test_vae_algorithm_model.py +13 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/conftest.py +28 -2
- {careamics-0.0.14 → careamics-0.0.16}/tests/dataset_ng/patch_extractor/image_stack/test_czi_image_stack.py +3 -3
- {careamics-0.0.14 → careamics-0.0.16}/tests/dataset_ng/patch_extractor/image_stack/test_zarr_image_stack.py +4 -4
- {careamics-0.0.14 → careamics-0.0.16}/tests/lightning/test_LVAE_lightning_module.py +278 -150
- careamics-0.0.16/tests/lightning/test_microsplit_train_datamodule.py +61 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/likelihood_modules/test_likelihoods.py +2 -1
- {careamics-0.0.14 → careamics-0.0.16}/tests/losses/test_lvae_losses.py +10 -5
- {careamics-0.0.14 → careamics-0.0.16}/tests/models/lvae/test_lvae_architecture.py +1 -9
- {careamics-0.0.14 → careamics-0.0.16}/tests/models/lvae/test_noise_model.py +3 -3
- {careamics-0.0.14 → careamics-0.0.16}/tests/test_careamist.py +78 -27
- {careamics-0.0.14 → careamics-0.0.16}/tests/utils/test_lightning_utils.py +5 -2
- careamics-0.0.14/src/careamics/config/training_model.py +0 -99
- careamics-0.0.14/src/careamics/dataset/zarr_dataset.py +0 -151
- careamics-0.0.14/src/careamics/file_io/read/zarr.py +0 -60
- careamics-0.0.14/src/careamics/lightning/__init__.py +0 -18
- careamics-0.0.14/src/careamics/prediction_utils/__init__.py +0 -10
- careamics-0.0.14/tests/config/test_configuration_factories.py +0 -481
- careamics-0.0.14/tests/config/test_training_model.py +0 -21
- {careamics-0.0.14 → careamics-0.0.16}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/.github/ISSUE_TEMPLATE/example_report.md +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/.github/ISSUE_TEMPLATE/interoperability_request.md +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/.github/ISSUE_TEMPLATE/question.md +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/.github/ISSUE_TEMPLATE/refactoring_suggestion.md +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/.github/TEST_FAIL_TEMPLATE.md +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/.github/dependabot.yml +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/.github/pull_request_template.md +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/.github/workflows/lvae.yml +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/.gitignore +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/CODE_OF_CONDUCT.md +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/LICENSE +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/README.md +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/codecov.yml +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/mypy.ini +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/__init__.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/cli/__init__.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/algorithms/care_algorithm_model.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/algorithms/n2n_algorithm_model.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/algorithms/unet_algorithm_model.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/architectures/__init__.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/architectures/architecture_model.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/architectures/unet_model.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/configuration_io.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/data/__init__.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/data/patching_strategies/__init__.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/data/patching_strategies/_patched_model.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/data/patching_strategies/random_patching_model.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/data/patching_strategies/sequential_patching_model.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/data/patching_strategies/tiled_patching_model.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/data/patching_strategies/whole_patching_model.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/support/__init__.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/support/supported_activations.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/support/supported_architectures.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/support/supported_data.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/support/supported_loggers.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/support/supported_optimizers.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/support/supported_patching_strategies.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/support/supported_pixel_manipulations.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/support/supported_struct_axis.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/support/supported_transforms.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/tile_information.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/transformations/__init__.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/transformations/n2v_manipulate_model.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/transformations/transform_model.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/transformations/transform_unions.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/validators/__init__.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/config/validators/model_validators.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/conftest.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset/__init__.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset/dataset_utils/__init__.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset/dataset_utils/dataset_utils.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset/dataset_utils/file_utils.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset/dataset_utils/running_stats.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset/in_memory_pred_dataset.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset/in_memory_tiled_pred_dataset.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset/iterable_pred_dataset.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset/iterable_tiled_pred_dataset.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset/patching/__init__.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset/patching/patching.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset/patching/validate_patch_dimension.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset/tiling/__init__.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset/tiling/collate_tiles.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset/tiling/tiled_patching.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/README.md +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/demos/bsd68_demo.ipynb +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/demos/care_U2OS_demo.ipynb +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/demos/demo_custom_image_stack.ipynb +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/demos/demo_datamodule.ipynb +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/demos/demo_dataset.ipynb +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/demos/demo_patch_extractor.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/demos/mouse_nuclei_demo.ipynb +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/legacy_interoperability.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/patch_extractor/__init__.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/patch_extractor/image_stack/__init__.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/patch_extractor/image_stack/czi_image_stack.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/patch_extractor/image_stack/image_stack_protocol.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/patch_extractor/patch_extractor.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/patch_extractor/patch_extractor_factory.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/patching_strategies/__init__.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/patching_strategies/patching_strategy_protocol.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/patching_strategies/tiling_strategy.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/dataset_ng/patching_strategies/whole_sample.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/file_io/__init__.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/file_io/read/get_func.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/file_io/read/tiff.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/file_io/write/__init__.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/file_io/write/get_func.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/file_io/write/tiff.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lightning/callbacks/hyperparameters_callback.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lightning/callbacks/prediction_writer_callback/__init__.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lightning/callbacks/prediction_writer_callback/file_path_utils.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lightning/callbacks/progress_bar_callback.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lightning/dataset_ng/__init__.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lightning/dataset_ng/lightning_modules/__init__.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lightning/dataset_ng/lightning_modules/care_module.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lightning/dataset_ng/lightning_modules/n2v_module.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lightning/dataset_ng/lightning_modules/unet_module.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/losses/fcn/__init__.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/losses/fcn/losses.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/losses/lvae/__init__.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/losses/lvae/loss_utils.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lvae_training/__init__.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lvae_training/calibration.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lvae_training/dataset/multicrop_dset.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lvae_training/dataset/types.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lvae_training/dataset/utils/__init__.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lvae_training/dataset/utils/data_utils.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lvae_training/dataset/utils/empty_patch_fetcher.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lvae_training/dataset/utils/index_manager.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lvae_training/dataset/utils/index_switcher.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lvae_training/eval_utils.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lvae_training/get_config.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lvae_training/lightning_module.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lvae_training/metrics.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lvae_training/train_lvae.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/lvae_training/train_utils.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/model_io/__init__.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/model_io/bioimage/__init__.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/model_io/bioimage/_readme_factory.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/model_io/bioimage/bioimage_utils.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/model_io/bioimage/cover_factory.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/model_io/model_io_utils.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/models/__init__.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/models/activation.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/models/lvae/__init__.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/models/lvae/layers.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/models/lvae/stochastic.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/models/lvae/utils.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/models/model_factory.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/models/unet.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/prediction_utils/lvae_tiling_manager.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/py.typed +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/transforms/__init__.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/transforms/struct_mask_parameters.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/transforms/transform.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/transforms/tta.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/utils/__init__.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/utils/autocorrelation.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/utils/base_enum.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/utils/context.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/utils/lightning_utils.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/utils/path_utils.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/utils/ram.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/utils/receptive_field.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/utils/serializers.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/utils/torch_utils.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/src/careamics/utils/version.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/cli/__init__.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/cli/test_conf.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/cli/test_main.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/config/algorithms/test_care_algorithm_model.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/config/algorithms/test_n2n_algorithm_model.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/config/algorithms/test_n2v_algorithm_model.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/config/architectures/test_architecture_model.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/config/architectures/test_lvae_model.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/config/architectures/test_unet_model.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/config/data/patching_strategies/test_strategies.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/config/data/test_data_model.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/config/data/test_ng_data_model.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/config/support/test_supported_data.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/config/support/test_supported_optimizers.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/config/test_callback_models.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/config/test_configuration.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/config/test_configuration_io.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/config/test_inference_model.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/config/test_n2v_preprocessing.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/config/test_optimizers_model.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/config/test_tile_information.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/config/test_unet_algorithm_model.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/config/transformations/test_n2v_manipulate_model.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/config/transformations/test_normalize_model.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/config/transformations/test_xy_flip_model.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/config/transformations/test_xy_random_rotate90_model.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/config/validators/test_model_validators.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/config/validators/test_validator_utils.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/dataset/dataset_utils/test_compute_normalization_stats.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/dataset/dataset_utils/test_list_files.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/dataset/patching/test_patching_utils.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/dataset/patching/test_random_patching.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/dataset/patching/test_sequential_patching.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/dataset/test_in_memory_dataset.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/dataset/test_in_memory_pred_dataset.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/dataset/test_in_memory_tiled_pred_dataset.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/dataset/test_iterable_dataset.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/dataset/test_iterable_pred_dataset.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/dataset/test_iterable_tiled_pred_dataset.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/dataset/tiling/test_collate_tiles.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/dataset/tiling/test_lvae_tiled_patching.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/dataset/tiling/test_tiled_patching.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/dataset_ng/dataset/test_dataset.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/dataset_ng/patch_extractor/image_stack/test_import_czi_image_stack.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/dataset_ng/patching_strategies/test_all_strategies.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/dataset_ng/patching_strategies/test_random_patching_ng.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/dataset_ng/patching_strategies/test_sequential_patching_ng.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/dataset_ng/patching_strategies/test_tiling_strategy.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/file_io/read/test_get_read_func.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/file_io/read/test_read_tiff.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/file_io/write/test_get_write_func.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/file_io/write/test_write_tiff.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/lightning/callbacks/prediction_writer_callback/test_cache_tiles_write_strategy.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/lightning/callbacks/prediction_writer_callback/test_file_path_utils.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/lightning/callbacks/prediction_writer_callback/test_prediction_writer_callback.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/lightning/callbacks/prediction_writer_callback/test_write_image_write_strategy.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/lightning/callbacks/prediction_writer_callback/test_write_strategy_factory.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/lightning/test_lightning_api.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/lightning/test_lightning_module.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/lightning/test_lightning_module_onnx_exportability.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/lightning/test_predict_data_module.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/lightning/test_train_data_module.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/model_io/test_bmz_io.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/models/lvae/test_utils.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/models/test_model_factory.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/models/test_unet.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/prediction_utils/test_lvae_prediction.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/prediction_utils/test_prediction_outputs.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/prediction_utils/test_stitch_prediction.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/test_conftest.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/transforms/test_compose.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/transforms/test_manipulate_n2v.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/transforms/test_normalize.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/transforms/test_pixel_manipulation.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/transforms/test_tta.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/transforms/test_xy_flip.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/transforms/test_xy_random_rotate90.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/utils/test_autocorrelation.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/utils/test_base_enum.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/utils/test_context.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/utils/test_logging.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/utils/test_metrics.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/utils/test_serializers.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/utils/test_torch_utils.py +0 -0
- {careamics-0.0.14 → careamics-0.0.16}/tests/utils/test_version.py +0 -0
- {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.
|
|
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.
|
|
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
|
-
|
|
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
|
|
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,
|
|
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.
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
18
|
-
Requires-Dist: bioimageio-core
|
|
19
|
-
Requires-Dist: matplotlib<=3.10.
|
|
20
|
-
Requires-Dist: numpy
|
|
21
|
-
Requires-Dist:
|
|
22
|
-
Requires-Dist:
|
|
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.
|
|
25
|
-
Requires-Dist: pyyaml!=6.0.0,<=6.0.
|
|
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.
|
|
28
|
-
Requires-Dist: torch<=2.
|
|
29
|
-
Requires-Dist: torchvision<=0.
|
|
30
|
-
Requires-Dist: typer<=0.
|
|
31
|
-
Requires-Dist:
|
|
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.
|
|
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
|
-
|
|
45
|
-
|
|
46
|
-
'
|
|
47
|
-
'
|
|
48
|
-
'
|
|
49
|
-
'
|
|
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.
|
|
52
|
-
'pyyaml
|
|
53
|
-
'typer>=0.12.3,<=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
|
|
56
|
-
'pillow<=11.
|
|
57
|
-
'matplotlib<=3.10.
|
|
58
|
-
'
|
|
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,
|
|
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:
|
|
83
|
-
callbacks:
|
|
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:
|
|
92
|
-
callbacks:
|
|
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:
|
|
100
|
-
callbacks:
|
|
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:
|
|
226
|
-
self.pred_datamodule:
|
|
219
|
+
self.train_datamodule: TrainDataModule | None = None
|
|
220
|
+
self.pred_datamodule: PredictDataModule | None = None
|
|
227
221
|
|
|
228
222
|
def _define_callbacks(
|
|
229
|
-
self, callbacks:
|
|
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:
|
|
292
|
-
train_source:
|
|
293
|
-
val_source:
|
|
294
|
-
train_target:
|
|
295
|
-
val_target:
|
|
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:
|
|
447
|
-
train_target:
|
|
448
|
-
val_target:
|
|
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:
|
|
488
|
-
path_to_train_target:
|
|
489
|
-
path_to_val_target:
|
|
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:
|
|
553
|
-
tile_overlap:
|
|
554
|
-
axes:
|
|
555
|
-
data_type:
|
|
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:
|
|
558
|
-
read_source_func:
|
|
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:
|
|
569
|
-
tile_overlap:
|
|
570
|
-
axes:
|
|
571
|
-
data_type:
|
|
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:
|
|
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:
|
|
582
|
-
tile_overlap:
|
|
583
|
-
axes:
|
|
584
|
-
data_type:
|
|
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:
|
|
587
|
-
read_source_func:
|
|
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:
|
|
708
|
-
tile_overlap:
|
|
709
|
-
axes:
|
|
710
|
-
data_type:
|
|
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:
|
|
713
|
-
read_source_func:
|
|
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:
|
|
717
|
-
write_func:
|
|
718
|
-
write_func_kwargs:
|
|
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,
|
|
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
|
|
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:
|
|
889
|
-
channel_names:
|
|
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
|
|
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
|
-
|
|
142
|
+
int | None, typer.Option(help="Number of channels in")
|
|
139
143
|
] = None,
|
|
140
144
|
n_channels_out: Annotated[
|
|
141
|
-
|
|
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
|
-
|
|
234
|
+
int | None, typer.Option(help="Number of channels in")
|
|
226
235
|
] = None,
|
|
227
236
|
n_channels_out: Annotated[
|
|
228
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
8
|
-
) ->
|
|
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
|
|