quadra 2.2.0__tar.gz → 2.2.2__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.
- {quadra-2.2.0 → quadra-2.2.2}/PKG-INFO +6 -6
- {quadra-2.2.0 → quadra-2.2.2}/README.md +4 -4
- {quadra-2.2.0 → quadra-2.2.2}/pyproject.toml +2 -2
- {quadra-2.2.0 → quadra-2.2.2}/quadra/__init__.py +1 -1
- {quadra-2.2.0 → quadra-2.2.2}/quadra/main.py +3 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/utils/export.py +4 -3
- {quadra-2.2.0 → quadra-2.2.2}/LICENSE +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/callbacks/__init__.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/callbacks/anomalib.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/callbacks/lightning.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/callbacks/mlflow.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/callbacks/scheduler.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/__init__.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/backbone/caformer_m36.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/backbone/caformer_s36.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/backbone/convnextv2_base.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/backbone/convnextv2_femto.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/backbone/convnextv2_tiny.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/backbone/dino_vitb8.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/backbone/dino_vits8.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/backbone/dinov2_vitb14.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/backbone/dinov2_vits14.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/backbone/efficientnet_b0.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/backbone/efficientnet_b1.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/backbone/efficientnet_b2.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/backbone/efficientnet_b3.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/backbone/efficientnetv2_s.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/backbone/levit_128s.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/backbone/mnasnet0_5.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/backbone/resnet101.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/backbone/resnet18.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/backbone/resnet18_ssl.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/backbone/resnet50.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/backbone/smp.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/backbone/tiny_vit_21m_224.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/backbone/unetr.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/backbone/vit16_base.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/backbone/vit16_small.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/backbone/vit16_tiny.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/backbone/xcit_tiny_24_p8_224.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/callbacks/all.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/callbacks/default.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/callbacks/default_anomalib.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/config.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/core/default.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/datamodule/base/anomaly.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/datamodule/base/classification.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/datamodule/base/multilabel_classification.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/datamodule/base/segmentation.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/datamodule/base/segmentation_multiclass.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/datamodule/base/sklearn_classification.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/datamodule/base/sklearn_classification_patch.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/datamodule/base/ssl.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/datamodule/generic/imagenette/classification/base.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/datamodule/generic/imagenette/ssl/base.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/datamodule/generic/mnist/anomaly/base.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/datamodule/generic/mvtec/anomaly/base.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/datamodule/generic/oxford_pet/segmentation/base.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/base/anomaly/cfa.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/base/anomaly/cflow.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/base/anomaly/csflow.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/base/anomaly/draem.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/base/anomaly/efficient_ad.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/base/anomaly/fastflow.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/base/anomaly/inference.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/base/anomaly/padim.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/base/anomaly/patchcore.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/base/classification/classification.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/base/classification/classification_evaluation.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/base/classification/multilabel_classification.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/base/classification/sklearn_classification.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/base/classification/sklearn_classification_patch.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/base/classification/sklearn_classification_patch_test.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/base/classification/sklearn_classification_test.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/base/segmentation/smp.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/base/segmentation/smp_evaluation.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/base/segmentation/smp_multiclass.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/base/segmentation/smp_multiclass_evaluation.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/base/ssl/barlow.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/base/ssl/byol.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/base/ssl/dino.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/base/ssl/linear_eval.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/base/ssl/simclr.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/base/ssl/simsiam.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/custom/cls.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/default.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/generic/imagenette/classification/default.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/generic/imagenette/ssl/barlow.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/generic/imagenette/ssl/byol.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/generic/imagenette/ssl/dino.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/generic/imagenette/ssl/simclr.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/generic/imagenette/ssl/simsiam.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/generic/mnist/anomaly/cfa.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/generic/mnist/anomaly/cflow.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/generic/mnist/anomaly/csflow.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/generic/mnist/anomaly/draem.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/generic/mnist/anomaly/fastflow.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/generic/mnist/anomaly/inference.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/generic/mnist/anomaly/padim.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/generic/mnist/anomaly/patchcore.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/generic/mvtec/anomaly/cfa.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/generic/mvtec/anomaly/cflow.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/generic/mvtec/anomaly/csflow.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/generic/mvtec/anomaly/draem.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/generic/mvtec/anomaly/efficient_ad.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/generic/mvtec/anomaly/fastflow.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/generic/mvtec/anomaly/inference.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/generic/mvtec/anomaly/padim.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/generic/mvtec/anomaly/patchcore.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/generic/oxford_pet/segmentation/smp.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/export/default.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/hydra/anomaly_custom.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/hydra/default.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/inference/default.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/logger/comet.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/logger/csv.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/logger/mlflow.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/logger/tensorboard.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/loss/asl.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/loss/barlow.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/loss/bce.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/loss/byol.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/loss/cross_entropy.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/loss/dino.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/loss/simclr.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/loss/simsiam.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/loss/smp_ce.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/loss/smp_dice.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/loss/smp_dice_multiclass.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/loss/smp_mcc.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/loss/vicreg.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/model/anomalib/cfa.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/model/anomalib/cflow.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/model/anomalib/csflow.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/model/anomalib/dfm.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/model/anomalib/draem.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/model/anomalib/efficient_ad.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/model/anomalib/fastflow.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/model/anomalib/padim.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/model/anomalib/patchcore.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/model/barlow.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/model/byol.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/model/classification.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/model/dino.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/model/logistic_regression.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/model/multilabel_classification.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/model/simclr.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/model/simsiam.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/model/smp.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/model/smp_multiclass.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/model/vicreg.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/optimizer/adam.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/optimizer/adamw.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/optimizer/default.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/optimizer/lars.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/optimizer/sgd.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/scheduler/default.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/scheduler/rop.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/scheduler/step.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/scheduler/warmrestart.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/scheduler/warmup.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/task/anomalib/cfa.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/task/anomalib/cflow.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/task/anomalib/csflow.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/task/anomalib/draem.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/task/anomalib/efficient_ad.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/task/anomalib/fastflow.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/task/anomalib/inference.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/task/anomalib/padim.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/task/anomalib/patchcore.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/task/classification.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/task/classification_evaluation.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/task/default.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/task/segmentation.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/task/segmentation_evaluation.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/task/sklearn_classification.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/task/sklearn_classification_patch.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/task/sklearn_classification_patch_test.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/task/sklearn_classification_test.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/task/ssl.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/trainer/lightning_cpu.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/trainer/lightning_gpu.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/trainer/lightning_gpu_bf16.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/trainer/lightning_gpu_fp16.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/trainer/lightning_multigpu.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/trainer/sklearn_classification.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/transforms/byol.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/transforms/byol_no_random_resize.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/transforms/default.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/transforms/default_numpy.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/transforms/default_resize.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/transforms/dino.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/configs/transforms/linear_eval.yaml +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/datamodules/__init__.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/datamodules/anomaly.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/datamodules/base.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/datamodules/classification.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/datamodules/generic/__init__.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/datamodules/generic/imagenette.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/datamodules/generic/mnist.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/datamodules/generic/mvtec.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/datamodules/generic/oxford_pet.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/datamodules/patch.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/datamodules/segmentation.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/datamodules/ssl.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/datasets/__init__.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/datasets/anomaly.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/datasets/classification.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/datasets/patch.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/datasets/segmentation.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/datasets/ssl.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/losses/__init__.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/losses/classification/__init__.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/losses/classification/asl.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/losses/classification/focal.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/losses/classification/prototypical.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/losses/ssl/__init__.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/losses/ssl/barlowtwins.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/losses/ssl/byol.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/losses/ssl/dino.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/losses/ssl/hyperspherical.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/losses/ssl/idmm.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/losses/ssl/simclr.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/losses/ssl/simsiam.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/losses/ssl/vicreg.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/metrics/__init__.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/metrics/segmentation.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/models/__init__.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/models/base.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/models/classification/__init__.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/models/classification/backbones.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/models/classification/base.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/models/evaluation.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/modules/__init__.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/modules/backbone.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/modules/base.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/modules/classification/__init__.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/modules/classification/base.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/modules/ssl/__init__.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/modules/ssl/barlowtwins.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/modules/ssl/byol.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/modules/ssl/common.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/modules/ssl/dino.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/modules/ssl/hyperspherical.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/modules/ssl/idmm.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/modules/ssl/simclr.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/modules/ssl/simsiam.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/modules/ssl/vicreg.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/optimizers/__init__.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/optimizers/lars.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/optimizers/sam.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/schedulers/__init__.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/schedulers/base.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/schedulers/warmup.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/tasks/__init__.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/tasks/anomaly.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/tasks/base.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/tasks/classification.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/tasks/patch.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/tasks/segmentation.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/tasks/ssl.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/trainers/README.md +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/trainers/__init__.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/trainers/classification.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/utils/__init__.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/utils/anomaly.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/utils/classification.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/utils/deprecation.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/utils/evaluation.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/utils/imaging.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/utils/logger.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/utils/mlflow.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/utils/model_manager.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/utils/models.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/utils/patch/__init__.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/utils/patch/dataset.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/utils/patch/metrics.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/utils/patch/model.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/utils/patch/visualization.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/utils/resolver.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/utils/segmentation.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/utils/tests/__init__.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/utils/tests/fixtures/__init__.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/utils/tests/fixtures/dataset/__init__.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/utils/tests/fixtures/dataset/anomaly.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/utils/tests/fixtures/dataset/classification.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/utils/tests/fixtures/dataset/imagenette.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/utils/tests/fixtures/dataset/segmentation.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/utils/tests/fixtures/models/__init__.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/utils/tests/fixtures/models/anomaly.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/utils/tests/fixtures/models/classification.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/utils/tests/fixtures/models/segmentation.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/utils/tests/helpers.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/utils/tests/models.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/utils/utils.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/utils/validator.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/utils/visualization.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra/utils/vit_explainability.py +0 -0
- {quadra-2.2.0 → quadra-2.2.2}/quadra_hydra_plugin/hydra_plugins/quadra_searchpath_plugin.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: quadra
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.2
|
|
4
4
|
Summary: Deep Learning experiment orchestration library
|
|
5
5
|
Home-page: https://orobix.github.io/quadra
|
|
6
6
|
License: Apache-2.0
|
|
@@ -21,7 +21,7 @@ Classifier: Topic :: Software Development :: Libraries
|
|
|
21
21
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
22
22
|
Provides-Extra: onnx
|
|
23
23
|
Requires-Dist: albumentations (>=1.3,<1.4)
|
|
24
|
-
Requires-Dist: anomalib-orobix (==0.7.0.
|
|
24
|
+
Requires-Dist: anomalib-orobix (==0.7.0.dev140)
|
|
25
25
|
Requires-Dist: boto3 (>=1.26,<1.27)
|
|
26
26
|
Requires-Dist: grad_cam (==1.4.6)
|
|
27
27
|
Requires-Dist: h5py (>=3.8,<3.9)
|
|
@@ -110,7 +110,7 @@ If you use pip to manage your packages, you can install `quadra` from PyPi by ru
|
|
|
110
110
|
pip install quadra
|
|
111
111
|
```
|
|
112
112
|
|
|
113
|
-
If instead you prefer to use poetry, you can install `quadra` from
|
|
113
|
+
If instead you prefer to use poetry, you can install `quadra` from PyPi by running the following command:
|
|
114
114
|
```shell
|
|
115
115
|
poetry add quadra
|
|
116
116
|
```
|
|
@@ -235,7 +235,7 @@ On the same dataset we can run a simple SSL training using the BYOL algorithm wi
|
|
|
235
235
|
quadra experiment=generic/imagenette/ssl/byol logger=csv
|
|
236
236
|
```
|
|
237
237
|
|
|
238
|
-
BYOL is not the only SSL algorithm available, you can find a list of all the available algorithms under `quadra/experiment/generic/imagenette/ssl` folder.
|
|
238
|
+
BYOL is not the only SSL algorithm available, you can find a list of all the available algorithms under `quadra/configs/experiment/generic/imagenette/ssl` folder.
|
|
239
239
|
|
|
240
240
|
|
|
241
241
|
### Anomaly Detection Training
|
|
@@ -248,11 +248,11 @@ quadra experiment=generic/mnist/anomaly/padim logger=csv
|
|
|
248
248
|
|
|
249
249
|
This will run an anomaly detection considering on of the classes as good (default is the number 9) and the rest as anomalies.
|
|
250
250
|
|
|
251
|
-
This will make use of the [anomalib](https://github.com/openvinotoolkit/anomalib) library to train the model. Many different algorithms are available, you can find them under `quadra/experiment/generic/mnist/anomaly` folder.
|
|
251
|
+
This will make use of the [anomalib](https://github.com/openvinotoolkit/anomalib) library to train the model. Many different algorithms are available, you can find them under `quadra/configs/experiment/generic/mnist/anomaly` folder.
|
|
252
252
|
|
|
253
253
|
## Running with Custom Datasets
|
|
254
254
|
|
|
255
|
-
Each task comes with a default configuration file that can be customized for your needs. Each example experiment we have seen so far uses a default configuration file that can be found under `quadra/experiment/base/<task>/<config_name>.yaml`.
|
|
255
|
+
Each task comes with a default configuration file that can be customized for your needs. Each example experiment we have seen so far uses a default configuration file that can be found under `quadra/configs/experiment/base/<task>/<config_name>.yaml`.
|
|
256
256
|
|
|
257
257
|
Let's see how we can customize the configuration file to run the classification experiment on a custom dataset.
|
|
258
258
|
|
|
@@ -47,7 +47,7 @@ If you use pip to manage your packages, you can install `quadra` from PyPi by ru
|
|
|
47
47
|
pip install quadra
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
-
If instead you prefer to use poetry, you can install `quadra` from
|
|
50
|
+
If instead you prefer to use poetry, you can install `quadra` from PyPi by running the following command:
|
|
51
51
|
```shell
|
|
52
52
|
poetry add quadra
|
|
53
53
|
```
|
|
@@ -172,7 +172,7 @@ On the same dataset we can run a simple SSL training using the BYOL algorithm wi
|
|
|
172
172
|
quadra experiment=generic/imagenette/ssl/byol logger=csv
|
|
173
173
|
```
|
|
174
174
|
|
|
175
|
-
BYOL is not the only SSL algorithm available, you can find a list of all the available algorithms under `quadra/experiment/generic/imagenette/ssl` folder.
|
|
175
|
+
BYOL is not the only SSL algorithm available, you can find a list of all the available algorithms under `quadra/configs/experiment/generic/imagenette/ssl` folder.
|
|
176
176
|
|
|
177
177
|
|
|
178
178
|
### Anomaly Detection Training
|
|
@@ -185,11 +185,11 @@ quadra experiment=generic/mnist/anomaly/padim logger=csv
|
|
|
185
185
|
|
|
186
186
|
This will run an anomaly detection considering on of the classes as good (default is the number 9) and the rest as anomalies.
|
|
187
187
|
|
|
188
|
-
This will make use of the [anomalib](https://github.com/openvinotoolkit/anomalib) library to train the model. Many different algorithms are available, you can find them under `quadra/experiment/generic/mnist/anomaly` folder.
|
|
188
|
+
This will make use of the [anomalib](https://github.com/openvinotoolkit/anomalib) library to train the model. Many different algorithms are available, you can find them under `quadra/configs/experiment/generic/mnist/anomaly` folder.
|
|
189
189
|
|
|
190
190
|
## Running with Custom Datasets
|
|
191
191
|
|
|
192
|
-
Each task comes with a default configuration file that can be customized for your needs. Each example experiment we have seen so far uses a default configuration file that can be found under `quadra/experiment/base/<task>/<config_name>.yaml`.
|
|
192
|
+
Each task comes with a default configuration file that can be customized for your needs. Each example experiment we have seen so far uses a default configuration file that can be found under `quadra/configs/experiment/base/<task>/<config_name>.yaml`.
|
|
193
193
|
|
|
194
194
|
Let's see how we can customize the configuration file to run the classification experiment on a custom dataset.
|
|
195
195
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "quadra"
|
|
3
|
-
version = "2.2.
|
|
3
|
+
version = "2.2.2"
|
|
4
4
|
description = "Deep Learning experiment orchestration library"
|
|
5
5
|
authors = [
|
|
6
6
|
"Federico Belotti <federico.belotti@orobix.com>",
|
|
@@ -72,7 +72,7 @@ h5py = "~3.8"
|
|
|
72
72
|
timm = "0.9.12"
|
|
73
73
|
|
|
74
74
|
segmentation_models_pytorch-orobix = "0.3.3.dev1"
|
|
75
|
-
anomalib-orobix = "0.7.0.
|
|
75
|
+
anomalib-orobix = "0.7.0.dev140"
|
|
76
76
|
xxhash = "~3.2"
|
|
77
77
|
torchinfo = "~1.8"
|
|
78
78
|
typing_extensions = { version = "4.11.0", python = "<3.10" }
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import time
|
|
2
2
|
|
|
3
3
|
import hydra
|
|
4
|
+
import matplotlib
|
|
4
5
|
from omegaconf import DictConfig
|
|
5
6
|
from pytorch_lightning import seed_everything
|
|
6
7
|
|
|
@@ -12,6 +13,8 @@ from quadra.utils.validator import validate_config
|
|
|
12
13
|
load_envs()
|
|
13
14
|
register_resolvers()
|
|
14
15
|
|
|
16
|
+
|
|
17
|
+
matplotlib.use("Agg")
|
|
15
18
|
log = get_logger(__name__)
|
|
16
19
|
|
|
17
20
|
|
|
@@ -7,7 +7,6 @@ from typing import Any, Literal, TypeVar, cast
|
|
|
7
7
|
import torch
|
|
8
8
|
from anomalib.models.cflow import CflowLightning
|
|
9
9
|
from omegaconf import DictConfig, ListConfig, OmegaConf
|
|
10
|
-
from onnxconverter_common import auto_convert_mixed_precision
|
|
11
10
|
from torch import nn
|
|
12
11
|
|
|
13
12
|
from quadra.models.base import ModelSignatureWrapper
|
|
@@ -22,6 +21,7 @@ from quadra.utils.logger import get_logger
|
|
|
22
21
|
try:
|
|
23
22
|
import onnx # noqa
|
|
24
23
|
from onnxsim import simplify as onnx_simplify # noqa
|
|
24
|
+
from onnxconverter_common import auto_convert_mixed_precision # noqa
|
|
25
25
|
|
|
26
26
|
ONNX_AVAILABLE = True
|
|
27
27
|
except ImportError:
|
|
@@ -385,8 +385,9 @@ def _safe_export_half_precision_onnx(
|
|
|
385
385
|
onnx.checker.check_model(onnx_model)
|
|
386
386
|
return True
|
|
387
387
|
except Exception as e:
|
|
388
|
-
|
|
389
|
-
|
|
388
|
+
raise RuntimeError(
|
|
389
|
+
"Failed to export model with automatic mixed precision, check your model or disable ONNX export"
|
|
390
|
+
) from e
|
|
390
391
|
else:
|
|
391
392
|
log.info("Exported half precision ONNX model does not contain NaN values, model is stable")
|
|
392
393
|
return True
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{quadra-2.2.0 → quadra-2.2.2}/quadra/configs/datamodule/base/sklearn_classification_patch.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{quadra-2.2.0 → quadra-2.2.2}/quadra/configs/datamodule/generic/imagenette/classification/base.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{quadra-2.2.0 → quadra-2.2.2}/quadra/configs/datamodule/generic/oxford_pet/segmentation/base.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/base/classification/classification.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/base/segmentation/smp_evaluation.yaml
RENAMED
|
File without changes
|
{quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/base/segmentation/smp_multiclass.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/generic/mnist/anomaly/inference.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/generic/mnist/anomaly/patchcore.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/generic/mvtec/anomaly/efficient_ad.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/generic/mvtec/anomaly/inference.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/generic/mvtec/anomaly/patchcore.yaml
RENAMED
|
File without changes
|
{quadra-2.2.0 → quadra-2.2.2}/quadra/configs/experiment/generic/oxford_pet/segmentation/smp.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|