hybrid-sample-generator 1.0.3__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.
- hybrid_sample_generator-1.0.3/.gitattributes +2 -0
- hybrid_sample_generator-1.0.3/.github/workflows/release.yml +101 -0
- hybrid_sample_generator-1.0.3/.github/workflows/tests.yml +39 -0
- hybrid_sample_generator-1.0.3/.gitignore +33 -0
- hybrid_sample_generator-1.0.3/LICENSE +674 -0
- hybrid_sample_generator-1.0.3/PKG-INFO +605 -0
- hybrid_sample_generator-1.0.3/README.md +564 -0
- hybrid_sample_generator-1.0.3/examples/__init__.py +1 -0
- hybrid_sample_generator-1.0.3/examples/common/__init__.py +1 -0
- hybrid_sample_generator-1.0.3/examples/common/image_io.py +97 -0
- hybrid_sample_generator-1.0.3/examples/image_2d/__init__.py +1 -0
- hybrid_sample_generator-1.0.3/examples/image_2d/image_dataloader.py +243 -0
- hybrid_sample_generator-1.0.3/examples/image_2d/main.py +60 -0
- hybrid_sample_generator-1.0.3/examples/mvtec_ad2/README.md +127 -0
- hybrid_sample_generator-1.0.3/examples/mvtec_ad2/__init__.py +1 -0
- hybrid_sample_generator-1.0.3/examples/mvtec_ad2/__main__.py +52 -0
- hybrid_sample_generator-1.0.3/examples/mvtec_ad2/configuration.py +69 -0
- hybrid_sample_generator-1.0.3/examples/mvtec_ad2/dataloader.py +57 -0
- hybrid_sample_generator-1.0.3/examples/mvtec_ad2/discovery.py +152 -0
- hybrid_sample_generator-1.0.3/examples/mvtec_ad2/downstream/README.md +205 -0
- hybrid_sample_generator-1.0.3/examples/mvtec_ad2/downstream/__init__.py +1 -0
- hybrid_sample_generator-1.0.3/examples/mvtec_ad2/downstream/configuration.py +95 -0
- hybrid_sample_generator-1.0.3/examples/mvtec_ad2/downstream/datasets.py +122 -0
- hybrid_sample_generator-1.0.3/examples/mvtec_ad2/downstream/draem/__init__.py +1 -0
- hybrid_sample_generator-1.0.3/examples/mvtec_ad2/downstream/draem/losses.py +27 -0
- hybrid_sample_generator-1.0.3/examples/mvtec_ad2/downstream/draem/model.py +76 -0
- hybrid_sample_generator-1.0.3/examples/mvtec_ad2/downstream/draem/synthesis.py +59 -0
- hybrid_sample_generator-1.0.3/examples/mvtec_ad2/downstream/evaluation.py +93 -0
- hybrid_sample_generator-1.0.3/examples/mvtec_ad2/downstream/patches.py +68 -0
- hybrid_sample_generator-1.0.3/examples/mvtec_ad2/downstream/runner.py +84 -0
- hybrid_sample_generator-1.0.3/examples/mvtec_ad2/downstream/sampling.py +18 -0
- hybrid_sample_generator-1.0.3/examples/mvtec_ad2/downstream/textures.py +102 -0
- hybrid_sample_generator-1.0.3/examples/mvtec_ad2/downstream/training.py +75 -0
- hybrid_sample_generator-1.0.3/examples/mvtec_ad2/downstream/transforms.py +39 -0
- hybrid_sample_generator-1.0.3/examples/mvtec_ad2/export.py +37 -0
- hybrid_sample_generator-1.0.3/examples/mvtec_ad2/main.py +16 -0
- hybrid_sample_generator-1.0.3/examples/mvtec_ad2/pipeline.py +91 -0
- hybrid_sample_generator-1.0.3/examples/mvtec_ad2/presets.py +215 -0
- hybrid_sample_generator-1.0.3/examples/mvtec_ad2/records.py +35 -0
- hybrid_sample_generator-1.0.3/examples/mvtec_ad2/review.py +23 -0
- hybrid_sample_generator-1.0.3/examples/mvtec_ad2/settings.py +24 -0
- hybrid_sample_generator-1.0.3/examples/mvtec_ad2/splits.py +87 -0
- hybrid_sample_generator-1.0.3/examples/mvtec_ad2/steps.py +33 -0
- hybrid_sample_generator-1.0.3/examples/mvtec_ad2/studies.py +85 -0
- hybrid_sample_generator-1.0.3/examples/mvtec_ad2/workflow.py +80 -0
- hybrid_sample_generator-1.0.3/examples/nifti_3d/__init__.py +1 -0
- hybrid_sample_generator-1.0.3/examples/nifti_3d/main.py +59 -0
- hybrid_sample_generator-1.0.3/examples/nifti_3d/nifti_dataloader.py +331 -0
- hybrid_sample_generator-1.0.3/experiments/README.md +47 -0
- hybrid_sample_generator-1.0.3/experiments/__init__.py +1 -0
- hybrid_sample_generator-1.0.3/experiments/fusion/__init__.py +1 -0
- hybrid_sample_generator-1.0.3/experiments/fusion/learned_residual_alpha/__init__.py +6 -0
- hybrid_sample_generator-1.0.3/experiments/fusion/learned_residual_alpha/backend.py +463 -0
- hybrid_sample_generator-1.0.3/experiments/fusion/learned_residual_alpha/configuration.py +57 -0
- hybrid_sample_generator-1.0.3/experiments/fusion/learned_residual_alpha/model.py +89 -0
- hybrid_sample_generator-1.0.3/experiments/fusion/learned_residual_alpha/preprocessing.py +90 -0
- hybrid_sample_generator-1.0.3/experiments/fusion/learned_residual_alpha/training.py +81 -0
- hybrid_sample_generator-1.0.3/experiments/generation/__init__.py +1 -0
- hybrid_sample_generator-1.0.3/experiments/generation/latent_diffusion_lora/__init__.py +5 -0
- hybrid_sample_generator-1.0.3/experiments/generation/latent_diffusion_lora/configuration.py +18 -0
- hybrid_sample_generator-1.0.3/experiments/generation/latent_diffusion_lora/model_2d.py +561 -0
- hybrid_sample_generator-1.0.3/experiments/requirements.txt +10 -0
- hybrid_sample_generator-1.0.3/experiments/tests/__init__.py +1 -0
- hybrid_sample_generator-1.0.3/experiments/tests/test_latent_diffusion_lora.py +26 -0
- hybrid_sample_generator-1.0.3/experiments/tests/test_learned_residual_alpha.py +85 -0
- hybrid_sample_generator-1.0.3/high_level.png +0 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/__init__.py +17 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/_version.py +24 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/configuration/__init__.py +5 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/configuration/augmentation.py +104 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/configuration/evaluation.py +42 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/configuration/extraction.py +69 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/configuration/generation.py +51 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/configuration/matching.py +46 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/configuration/root.py +180 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/configuration/study.py +27 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/configuration/training.py +76 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/datasets/__init__.py +1 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/datasets/record_datasets.py +330 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/datasets/study_datasets.py +36 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/domain/__init__.py +5 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/domain/input_sample.py +54 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/domain/records.py +108 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/evaluation/__init__.py +5 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/evaluation/metrics.py +137 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/evaluation/outliers.py +24 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/evaluation/pairs.py +59 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/evaluation/reporting.py +61 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/evaluation/service.py +155 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/extraction/__init__.py +11 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/extraction/extraction_2d.py +186 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/extraction/extraction_3d.py +195 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/extraction/normalization.py +44 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/extraction/service.py +145 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/fusion/__init__.py +6 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/fusion/background.py +142 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/fusion/classical/__init__.py +6 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/fusion/classical/alpha.py +88 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/fusion/classical/backend.py +105 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/fusion/classical/configuration.py +58 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/fusion/classical/intensity.py +356 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/fusion/classical/spatial.py +307 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/fusion/config_validation.py +39 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/fusion/interfaces.py +37 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/fusion/preprocessing.py +59 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/fusion/registry.py +53 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/fusion/service.py +218 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/fusion/settings.py +61 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/generation/__init__.py +1 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/generation/interfaces.py +59 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/generation/model_settings.py +231 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/generation/registry.py +103 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/generation/service.py +260 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/generation/training/__init__.py +6 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/generation/training/augmentation.py +136 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/generation/training/loop.py +179 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/generation/training/metrics.py +105 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/generation/training/optuna.py +126 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/generation/vae/__init__.py +1 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/generation/vae/base.py +269 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/generation/vae/conditional_convnext/__init__.py +6 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/generation/vae/conditional_convnext/configuration.py +91 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/generation/vae/conditional_convnext/model_2d.py +452 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/generation/vae/conditional_convnext/model_3d.py +520 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/generation/vae/conditional_convnext/spade_2d.py +231 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/generation/vae/conditional_convnext/spade_3d.py +227 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/generation/vae/convnext/__init__.py +6 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/generation/vae/convnext/configuration.py +87 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/generation/vae/convnext/layers_2d.py +314 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/generation/vae/convnext/layers_3d.py +300 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/generation/vae/convnext/model_2d.py +438 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/generation/vae/convnext/model_3d.py +438 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/generation/vae/resnet/__init__.py +6 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/generation/vae/resnet/configuration.py +87 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/generation/vae/resnet/layers_2d.py +239 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/generation/vae/resnet/layers_3d.py +260 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/generation/vae/resnet/model_2d.py +516 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/generation/vae/resnet/model_3d.py +526 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/imaging/__init__.py +12 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/imaging/masks/__init__.py +14 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/imaging/masks/composition.py +27 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/imaging/masks/elastic.py +75 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/imaging/masks/encoding.py +39 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/imaging/masks/geometry.py +158 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/imaging/masks/global_transforms.py +62 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/imaging/masks/interpolation.py +84 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/imaging/masks/local_transforms.py +126 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/imaging/masks/target_generation.py +61 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/imaging/masks/transform_generator.py +414 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/imaging/resampling.py +92 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/imaging/roi.py +114 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/imaging/similarity.py +31 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/matching/__init__.py +5 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/matching/candidate_selection.py +80 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/matching/pair_matcher.py +114 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/matching/planner.py +315 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/matching/template_matching.py +102 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/persistence/__init__.py +1 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/persistence/artifact_store.py +70 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/persistence/identifiers.py +17 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/persistence/record_mapping.py +152 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/persistence/schema.py +129 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/persistence/study_paths.py +97 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/persistence/study_reader.py +235 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/persistence/study_repository.py +38 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/persistence/study_writer.py +190 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/pipeline/__init__.py +5 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/pipeline/hybrid_data_generator.py +126 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/pipeline/ingestion.py +168 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/randomness.py +33 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/visualization/__init__.py +13 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/visualization/__main__.py +25 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/visualization/app.py +270 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/visualization/maintenance.py +257 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/visualization/queries.py +356 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/visualization/rendering.py +374 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/visualization/state.py +42 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/visualization/tabs/__init__.py +1 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/visualization/tabs/anomalies.py +200 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/visualization/tabs/datasource.py +140 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/visualization/tabs/evaluation.py +388 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/visualization/tabs/hybrids.py +313 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/visualization/tabs/overview.py +136 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/visualization/tabs/relations.py +448 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/visualization/widgets/__init__.py +7 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/visualization/widgets/entity_browser.py +215 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/visualization/widgets/image_grid.py +165 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator/visualization/widgets/tree.py +26 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator.egg-info/PKG-INFO +605 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator.egg-info/SOURCES.txt +256 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator.egg-info/dependency_links.txt +1 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator.egg-info/requires.txt +20 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator.egg-info/scm_file_list.json +252 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator.egg-info/scm_version.json +8 -0
- hybrid_sample_generator-1.0.3/hybrid_sample_generator.egg-info/top_level.txt +1 -0
- hybrid_sample_generator-1.0.3/pyproject.toml +54 -0
- hybrid_sample_generator-1.0.3/requirements.txt +11 -0
- hybrid_sample_generator-1.0.3/setup.cfg +4 -0
- hybrid_sample_generator-1.0.3/tests/__init__.py +1 -0
- hybrid_sample_generator-1.0.3/tests/configuration/__init__.py +1 -0
- hybrid_sample_generator-1.0.3/tests/configuration/test_configuration.py +159 -0
- hybrid_sample_generator-1.0.3/tests/datasets/__init__.py +1 -0
- hybrid_sample_generator-1.0.3/tests/datasets/support.py +108 -0
- hybrid_sample_generator-1.0.3/tests/datasets/test_record_datasets.py +121 -0
- hybrid_sample_generator-1.0.3/tests/datasets/test_study_datasets.py +32 -0
- hybrid_sample_generator-1.0.3/tests/domain/__init__.py +1 -0
- hybrid_sample_generator-1.0.3/tests/domain/test_input_sample.py +66 -0
- hybrid_sample_generator-1.0.3/tests/domain/test_records.py +54 -0
- hybrid_sample_generator-1.0.3/tests/evaluation/__init__.py +1 -0
- hybrid_sample_generator-1.0.3/tests/evaluation/test_metrics.py +42 -0
- hybrid_sample_generator-1.0.3/tests/example_cases/__init__.py +1 -0
- hybrid_sample_generator-1.0.3/tests/example_cases/mvtec_ad2/__init__.py +1 -0
- hybrid_sample_generator-1.0.3/tests/example_cases/mvtec_ad2/test_cli.py +47 -0
- hybrid_sample_generator-1.0.3/tests/example_cases/mvtec_ad2/test_configuration.py +81 -0
- hybrid_sample_generator-1.0.3/tests/example_cases/mvtec_ad2/test_dataset.py +59 -0
- hybrid_sample_generator-1.0.3/tests/example_cases/mvtec_ad2/test_downstream.py +309 -0
- hybrid_sample_generator-1.0.3/tests/example_cases/mvtec_ad2/test_legacy_viewer.py +42 -0
- hybrid_sample_generator-1.0.3/tests/example_cases/mvtec_ad2/test_patches.py +182 -0
- hybrid_sample_generator-1.0.3/tests/example_cases/mvtec_ad2/test_steps.py +46 -0
- hybrid_sample_generator-1.0.3/tests/example_cases/mvtec_ad2/test_studies.py +57 -0
- hybrid_sample_generator-1.0.3/tests/example_cases/mvtec_ad2/test_textures.py +71 -0
- hybrid_sample_generator-1.0.3/tests/example_cases/mvtec_ad2/test_workflow.py +158 -0
- hybrid_sample_generator-1.0.3/tests/example_cases/test_image_io.py +32 -0
- hybrid_sample_generator-1.0.3/tests/extraction/__init__.py +1 -0
- hybrid_sample_generator-1.0.3/tests/extraction/test_helpers.py +95 -0
- hybrid_sample_generator-1.0.3/tests/extraction/test_service.py +213 -0
- hybrid_sample_generator-1.0.3/tests/fusion/__init__.py +1 -0
- hybrid_sample_generator-1.0.3/tests/fusion/classical/__init__.py +1 -0
- hybrid_sample_generator-1.0.3/tests/fusion/classical/test_alpha.py +59 -0
- hybrid_sample_generator-1.0.3/tests/fusion/classical/test_backend.py +142 -0
- hybrid_sample_generator-1.0.3/tests/fusion/classical/test_intensity.py +106 -0
- hybrid_sample_generator-1.0.3/tests/fusion/test_background.py +64 -0
- hybrid_sample_generator-1.0.3/tests/fusion/test_fusion_configuration.py +93 -0
- hybrid_sample_generator-1.0.3/tests/fusion/test_preprocessing.py +39 -0
- hybrid_sample_generator-1.0.3/tests/fusion/test_service.py +257 -0
- hybrid_sample_generator-1.0.3/tests/generation/__init__.py +1 -0
- hybrid_sample_generator-1.0.3/tests/generation/test_models.py +143 -0
- hybrid_sample_generator-1.0.3/tests/generation/test_service.py +224 -0
- hybrid_sample_generator-1.0.3/tests/generation/test_training.py +56 -0
- hybrid_sample_generator-1.0.3/tests/imaging/__init__.py +1 -0
- hybrid_sample_generator-1.0.3/tests/imaging/test_masks.py +106 -0
- hybrid_sample_generator-1.0.3/tests/matching/__init__.py +1 -0
- hybrid_sample_generator-1.0.3/tests/matching/test_matching.py +186 -0
- hybrid_sample_generator-1.0.3/tests/persistence/__init__.py +1 -0
- hybrid_sample_generator-1.0.3/tests/persistence/test_study_repository.py +115 -0
- hybrid_sample_generator-1.0.3/tests/pipeline/__init__.py +1 -0
- hybrid_sample_generator-1.0.3/tests/pipeline/support.py +62 -0
- hybrid_sample_generator-1.0.3/tests/pipeline/test_end_to_end.py +146 -0
- hybrid_sample_generator-1.0.3/tests/pipeline/test_ingestion.py +41 -0
- hybrid_sample_generator-1.0.3/tests/pipeline/test_materialization.py +68 -0
- hybrid_sample_generator-1.0.3/tests/pipeline/test_planning.py +134 -0
- hybrid_sample_generator-1.0.3/tests/visualization/__init__.py +1 -0
- hybrid_sample_generator-1.0.3/tests/visualization/support.py +234 -0
- hybrid_sample_generator-1.0.3/tests/visualization/test_browser.py +143 -0
- hybrid_sample_generator-1.0.3/tests/visualization/test_evaluation.py +118 -0
- hybrid_sample_generator-1.0.3/tests/visualization/test_maintenance.py +32 -0
- hybrid_sample_generator-1.0.3/tests/visualization/test_navigation.py +92 -0
- hybrid_sample_generator-1.0.3/tests/visualization/test_rendering.py +112 -0
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
name: Publish Python Package
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types: [published]
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
build:
|
|
9
|
+
name: Build distributions
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
permissions:
|
|
12
|
+
contents: read
|
|
13
|
+
|
|
14
|
+
steps:
|
|
15
|
+
- name: Check out release
|
|
16
|
+
uses: actions/checkout@v4
|
|
17
|
+
with:
|
|
18
|
+
ref: ${{ github.event.release.tag_name }}
|
|
19
|
+
|
|
20
|
+
- name: Set up Python
|
|
21
|
+
uses: actions/setup-python@v5
|
|
22
|
+
with:
|
|
23
|
+
python-version: "3.12"
|
|
24
|
+
cache: pip
|
|
25
|
+
|
|
26
|
+
- name: Install build tools
|
|
27
|
+
run: python -m pip install --upgrade build twine
|
|
28
|
+
|
|
29
|
+
- name: Build wheel and source distribution
|
|
30
|
+
run: python -m build
|
|
31
|
+
|
|
32
|
+
- name: Verify release version
|
|
33
|
+
env:
|
|
34
|
+
RELEASE_TAG: ${{ github.event.release.tag_name }}
|
|
35
|
+
run: |
|
|
36
|
+
python - <<'PY'
|
|
37
|
+
import os
|
|
38
|
+
import zipfile
|
|
39
|
+
from pathlib import Path
|
|
40
|
+
|
|
41
|
+
expected = os.environ["RELEASE_TAG"].removeprefix("v")
|
|
42
|
+
|
|
43
|
+
wheels = list(Path("dist").glob("*.whl"))
|
|
44
|
+
if not wheels:
|
|
45
|
+
raise SystemExit("No wheel was built.")
|
|
46
|
+
|
|
47
|
+
for wheel in wheels:
|
|
48
|
+
with zipfile.ZipFile(wheel) as archive:
|
|
49
|
+
metadata_name = next(
|
|
50
|
+
name for name in archive.namelist()
|
|
51
|
+
if name.endswith(".dist-info/METADATA")
|
|
52
|
+
)
|
|
53
|
+
metadata = archive.read(metadata_name).decode()
|
|
54
|
+
|
|
55
|
+
actual = next(
|
|
56
|
+
line.removeprefix("Version: ")
|
|
57
|
+
for line in metadata.splitlines()
|
|
58
|
+
if line.startswith("Version: ")
|
|
59
|
+
)
|
|
60
|
+
|
|
61
|
+
if actual != expected:
|
|
62
|
+
raise SystemExit(
|
|
63
|
+
f"Release tag {expected!r} does not match "
|
|
64
|
+
f"package version {actual!r}."
|
|
65
|
+
)
|
|
66
|
+
|
|
67
|
+
print(f"Release version {expected} verified.")
|
|
68
|
+
PY
|
|
69
|
+
|
|
70
|
+
- name: Check package metadata
|
|
71
|
+
run: python -m twine check dist/*
|
|
72
|
+
|
|
73
|
+
- name: Upload distributions
|
|
74
|
+
uses: actions/upload-artifact@v4
|
|
75
|
+
with:
|
|
76
|
+
name: python-package-distributions
|
|
77
|
+
path: dist/
|
|
78
|
+
if-no-files-found: error
|
|
79
|
+
retention-days: 7
|
|
80
|
+
|
|
81
|
+
publish:
|
|
82
|
+
name: Publish to PyPI
|
|
83
|
+
needs: build
|
|
84
|
+
runs-on: ubuntu-latest
|
|
85
|
+
|
|
86
|
+
environment:
|
|
87
|
+
name: pypi
|
|
88
|
+
url: https://pypi.org/p/hybrid-sample-generator
|
|
89
|
+
|
|
90
|
+
permissions:
|
|
91
|
+
id-token: write
|
|
92
|
+
|
|
93
|
+
steps:
|
|
94
|
+
- name: Download distributions
|
|
95
|
+
uses: actions/download-artifact@v4
|
|
96
|
+
with:
|
|
97
|
+
name: python-package-distributions
|
|
98
|
+
path: dist/
|
|
99
|
+
|
|
100
|
+
- name: Publish distributions to PyPI
|
|
101
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
name: Tests
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
branches: [main]
|
|
6
|
+
push:
|
|
7
|
+
branches: [main]
|
|
8
|
+
workflow_dispatch:
|
|
9
|
+
|
|
10
|
+
permissions:
|
|
11
|
+
contents: read
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
tests:
|
|
15
|
+
name: Python tests
|
|
16
|
+
runs-on: ubuntu-latest
|
|
17
|
+
timeout-minutes: 20
|
|
18
|
+
|
|
19
|
+
env:
|
|
20
|
+
MPLBACKEND: Agg
|
|
21
|
+
|
|
22
|
+
steps:
|
|
23
|
+
- uses: actions/checkout@v7
|
|
24
|
+
with:
|
|
25
|
+
persist-credentials: false
|
|
26
|
+
|
|
27
|
+
- uses: actions/setup-python@v7
|
|
28
|
+
with:
|
|
29
|
+
python-version: "3.12"
|
|
30
|
+
cache: pip
|
|
31
|
+
|
|
32
|
+
- name: Install dependencies
|
|
33
|
+
run: |
|
|
34
|
+
python -m pip install --upgrade pip
|
|
35
|
+
python -m pip install torch --index-url https://download.pytorch.org/whl/cpu
|
|
36
|
+
python -m pip install -e .
|
|
37
|
+
|
|
38
|
+
- name: Run project tests
|
|
39
|
+
run: python -m unittest discover -s tests -v
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
__pycache__/
|
|
2
|
+
*.py[cod]
|
|
3
|
+
*$py.class
|
|
4
|
+
hybrid_sample_generator/_version.py
|
|
5
|
+
|
|
6
|
+
.venv/
|
|
7
|
+
venv/
|
|
8
|
+
ENV/
|
|
9
|
+
.env
|
|
10
|
+
.env.*
|
|
11
|
+
|
|
12
|
+
.pytest_cache/
|
|
13
|
+
.mypy_cache/
|
|
14
|
+
.ruff_cache/
|
|
15
|
+
.coverage
|
|
16
|
+
coverage.xml
|
|
17
|
+
|
|
18
|
+
.vscode/
|
|
19
|
+
*.code-workspace
|
|
20
|
+
|
|
21
|
+
checkpoint.pt
|
|
22
|
+
*.pt
|
|
23
|
+
*.pth
|
|
24
|
+
*.ckpt
|
|
25
|
+
|
|
26
|
+
.DS_Store
|
|
27
|
+
Thumbs.db
|
|
28
|
+
|
|
29
|
+
test/
|
|
30
|
+
|
|
31
|
+
build/
|
|
32
|
+
dist/
|
|
33
|
+
*.egg-info/
|