diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
index 592674cb2..3e990cf09 100644
--- a/.github/workflows/codeql-analysis.yml
+++ b/.github/workflows/codeql-analysis.yml
@@ -54,4 +54,3 @@ jobs:
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1
-
diff --git a/.idea/InnerEye-DeepLearning.iml b/.idea/InnerEye-DeepLearning.iml
index d052cf6ee..c2157dfea 100644
--- a/.idea/InnerEye-DeepLearning.iml
+++ b/.idea/InnerEye-DeepLearning.iml
@@ -17,4 +17,4 @@
-
\ No newline at end of file
+
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
index 31f93d8e5..eff2f1634 100644
--- a/.idea/codeStyles/Project.xml
+++ b/.idea/codeStyles/Project.xml
@@ -16,4 +16,4 @@
-
\ No newline at end of file
+
diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml
index 79ee123c2..0f7bc519d 100644
--- a/.idea/codeStyles/codeStyleConfig.xml
+++ b/.idea/codeStyles/codeStyleConfig.xml
@@ -2,4 +2,4 @@
-
\ No newline at end of file
+
diff --git a/.idea/copyright/MIT_license.xml b/.idea/copyright/MIT_license.xml
index f6a718655..c983428f0 100644
--- a/.idea/copyright/MIT_license.xml
+++ b/.idea/copyright/MIT_license.xml
@@ -4,4 +4,4 @@
-
\ No newline at end of file
+
diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml
index 0b67356ec..d442e420b 100644
--- a/.idea/copyright/profiles_settings.xml
+++ b/.idea/copyright/profiles_settings.xml
@@ -4,4 +4,4 @@
-
\ No newline at end of file
+
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
index 9cefc048e..4e73ce9c7 100644
--- a/.idea/inspectionProfiles/Project_Default.xml
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -41,4 +41,4 @@
-
\ No newline at end of file
+
diff --git a/.idea/modules.xml b/.idea/modules.xml
index f1433aa15..09133fce3 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -5,4 +5,4 @@
-
\ No newline at end of file
+
diff --git a/.idea/other.xml b/.idea/other.xml
index 640fd80b8..6ab7d1707 100644
--- a/.idea/other.xml
+++ b/.idea/other.xml
@@ -4,4 +4,4 @@
-
\ No newline at end of file
+
diff --git a/.idea/runConfigurations/Template__Cross_Validation.xml b/.idea/runConfigurations/Template__Cross_Validation.xml
index 804fa03f6..3fcdb1b7f 100644
--- a/.idea/runConfigurations/Template__Cross_Validation.xml
+++ b/.idea/runConfigurations/Template__Cross_Validation.xml
@@ -20,4 +20,4 @@
-
\ No newline at end of file
+
diff --git a/.idea/runConfigurations/Template__Plot_Cross_Validation_Results.xml b/.idea/runConfigurations/Template__Plot_Cross_Validation_Results.xml
index 0823613e3..9a4e7a1f9 100644
--- a/.idea/runConfigurations/Template__Plot_Cross_Validation_Results.xml
+++ b/.idea/runConfigurations/Template__Plot_Cross_Validation_Results.xml
@@ -20,4 +20,4 @@
-
\ No newline at end of file
+
diff --git a/.idea/runConfigurations/Template__Run_ML_on_AzureML.xml b/.idea/runConfigurations/Template__Run_ML_on_AzureML.xml
index 1f92e2c5c..5b9a6e979 100644
--- a/.idea/runConfigurations/Template__Run_ML_on_AzureML.xml
+++ b/.idea/runConfigurations/Template__Run_ML_on_AzureML.xml
@@ -21,4 +21,4 @@
-
\ No newline at end of file
+
diff --git a/.idea/runConfigurations/Template__Run_ML_on_local_machine.xml b/.idea/runConfigurations/Template__Run_ML_on_local_machine.xml
index 768b70cf2..c33eb9956 100644
--- a/.idea/runConfigurations/Template__Run_ML_on_local_machine.xml
+++ b/.idea/runConfigurations/Template__Run_ML_on_local_machine.xml
@@ -21,4 +21,4 @@
-
\ No newline at end of file
+
diff --git a/.idea/runConfigurations/Template__Submit_image_for_inference.xml b/.idea/runConfigurations/Template__Submit_image_for_inference.xml
index 67610b9ba..34eea3270 100644
--- a/.idea/runConfigurations/Template__Submit_image_for_inference.xml
+++ b/.idea/runConfigurations/Template__Submit_image_for_inference.xml
@@ -20,4 +20,4 @@
-
\ No newline at end of file
+
diff --git a/.idea/runConfigurations/Template__Tensorboard_monitoring.xml b/.idea/runConfigurations/Template__Tensorboard_monitoring.xml
index 893db2beb..57621f630 100644
--- a/.idea/runConfigurations/Template__Tensorboard_monitoring.xml
+++ b/.idea/runConfigurations/Template__Tensorboard_monitoring.xml
@@ -20,4 +20,4 @@
-
\ No newline at end of file
+
diff --git a/.idea/runConfigurations/Template__Visualize_Patch_Sampling.xml b/.idea/runConfigurations/Template__Visualize_Patch_Sampling.xml
index dc91689ec..c3ab9f13f 100644
--- a/.idea/runConfigurations/Template__Visualize_Patch_Sampling.xml
+++ b/.idea/runConfigurations/Template__Visualize_Patch_Sampling.xml
@@ -20,4 +20,4 @@
-
\ No newline at end of file
+
diff --git a/.idea/runConfigurations/Template__normalize_and_visualize_dataset.xml b/.idea/runConfigurations/Template__normalize_and_visualize_dataset.xml
index b4e189ec2..f06cc6e7e 100644
--- a/.idea/runConfigurations/Template__normalize_and_visualize_dataset.xml
+++ b/.idea/runConfigurations/Template__normalize_and_visualize_dataset.xml
@@ -20,4 +20,4 @@
-
\ No newline at end of file
+
diff --git a/.idea/runConfigurations/pytest_all_simple_tests.xml b/.idea/runConfigurations/pytest_all_simple_tests.xml
index e5e3a6a01..6262bbc05 100644
--- a/.idea/runConfigurations/pytest_all_simple_tests.xml
+++ b/.idea/runConfigurations/pytest_all_simple_tests.xml
@@ -16,4 +16,4 @@
-
\ No newline at end of file
+
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
index 1adf7e3ee..edb21e439 100644
--- a/.idea/vcs.xml
+++ b/.idea/vcs.xml
@@ -5,4 +5,4 @@
-
\ No newline at end of file
+
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 78d7951b0..1d7152990 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -5,5 +5,7 @@
],
"python.testing.unittestEnabled": false,
"python.testing.pytestEnabled": true,
- "files.trimTrailingWhitespace": true
+ "files.trimTrailingWhitespace": true,
+ "files.trimFinalNewlines": true,
+ "files.insertFinalNewline": true
}
diff --git a/GeoPol.xml b/GeoPol.xml
index 410335716..43fd91bcd 100644
--- a/GeoPol.xml
+++ b/GeoPol.xml
@@ -26,4 +26,4 @@
GeoPol.xml*.nii.gz
-
\ No newline at end of file
+
diff --git a/InnerEye-DataQuality/README.md b/InnerEye-DataQuality/README.md
index a4e569c62..a62abd8b0 100644
--- a/InnerEye-DataQuality/README.md
+++ b/InnerEye-DataQuality/README.md
@@ -1 +1 @@
-The InnerEye-DataQuality code has been moved here: [https://github.com/microsoft/InnerEye-DeepLearning/tree/1606729c7a16e1bfeb269694314212b6e2737939/InnerEye-DataQuality](https://github.com/microsoft/InnerEye-DeepLearning/tree/1606729c7a16e1bfeb269694314212b6e2737939/InnerEye-DataQuality)
\ No newline at end of file
+The InnerEye-DataQuality code has been moved here: [https://github.com/microsoft/InnerEye-DeepLearning/tree/1606729c7a16e1bfeb269694314212b6e2737939/InnerEye-DataQuality](https://github.com/microsoft/InnerEye-DeepLearning/tree/1606729c7a16e1bfeb269694314212b6e2737939/InnerEye-DataQuality)
diff --git a/InnerEye/ML/configs/classification/DummyClassification.py b/InnerEye/ML/configs/classification/DummyClassification.py
index a0b5b6b92..81a53e687 100644
--- a/InnerEye/ML/configs/classification/DummyClassification.py
+++ b/InnerEye/ML/configs/classification/DummyClassification.py
@@ -49,4 +49,3 @@ def create_model(self) -> Any:
# Use a local import so that we don't need to import pytorch when creating configs in the runner
from Tests.ML.models.architectures.DummyScalarModel import DummyScalarModel
return DummyScalarModel(self.expected_image_size_zyx)
-
diff --git a/InnerEye/ML/models/architectures/classification/bit.py b/InnerEye/ML/models/architectures/classification/bit.py
index 963bd6ec5..2fc85b596 100644
--- a/InnerEye/ML/models/architectures/classification/bit.py
+++ b/InnerEye/ML/models/architectures/classification/bit.py
@@ -165,4 +165,3 @@ def forward(self, x: torch.Tensor) -> torch.Tensor: # type: ignore
x = self.conv_stack(x)
x = self.linear(x)
return x
-
diff --git a/InnerEye/ML/reports/classification_crossval_report.ipynb b/InnerEye/ML/reports/classification_crossval_report.ipynb
index 1c364f294..3661f0280 100644
--- a/InnerEye/ML/reports/classification_crossval_report.ipynb
+++ b/InnerEye/ML/reports/classification_crossval_report.ipynb
@@ -280,4 +280,4 @@
},
"nbformat": 4,
"nbformat_minor": 5
-}
\ No newline at end of file
+}
diff --git a/InnerEye/ML/reports/classification_multilabel_report.ipynb b/InnerEye/ML/reports/classification_multilabel_report.ipynb
index daaf7224f..8af93a945 100644
--- a/InnerEye/ML/reports/classification_multilabel_report.ipynb
+++ b/InnerEye/ML/reports/classification_multilabel_report.ipynb
@@ -163,4 +163,4 @@
},
"nbformat": 4,
"nbformat_minor": 5
-}
\ No newline at end of file
+}
diff --git a/InnerEye/ML/reports/segmentation_report.ipynb b/InnerEye/ML/reports/segmentation_report.ipynb
index 18cb6a1d2..83ed4e613 100644
--- a/InnerEye/ML/reports/segmentation_report.ipynb
+++ b/InnerEye/ML/reports/segmentation_report.ipynb
@@ -162,4 +162,4 @@
},
"nbformat": 4,
"nbformat_minor": 5
-}
\ No newline at end of file
+}
diff --git a/RegressionTestResults/PR_BasicModel2Epochs/AZUREML_OUTPUT/final_model/model_inference_config.json b/RegressionTestResults/PR_BasicModel2Epochs/AZUREML_OUTPUT/final_model/model_inference_config.json
index fbfbb09e8..f8b91ae8b 100644
--- a/RegressionTestResults/PR_BasicModel2Epochs/AZUREML_OUTPUT/final_model/model_inference_config.json
+++ b/RegressionTestResults/PR_BasicModel2Epochs/AZUREML_OUTPUT/final_model/model_inference_config.json
@@ -1 +1 @@
-{"model_name": "BasicModel2Epochs", "checkpoint_paths": ["checkpoints/last.ckpt"], "model_configs_namespace": "InnerEye.ML.configs.segmentation.BasicModel2Epochs"}
\ No newline at end of file
+{"model_name": "BasicModel2Epochs", "checkpoint_paths": ["checkpoints/last.ckpt"], "model_configs_namespace": "InnerEye.ML.configs.segmentation.BasicModel2Epochs"}
diff --git a/RegressionTestResults/PR_BasicModel2Epochs/OUTPUT/best_validation_epoch/Test/BaselineComparisonWilcoxonSignedRankTestResults.txt b/RegressionTestResults/PR_BasicModel2Epochs/OUTPUT/best_validation_epoch/Test/BaselineComparisonWilcoxonSignedRankTestResults.txt
index 3e7fbfc54..00959090e 100644
--- a/RegressionTestResults/PR_BasicModel2Epochs/OUTPUT/best_validation_epoch/Test/BaselineComparisonWilcoxonSignedRankTestResults.txt
+++ b/RegressionTestResults/PR_BasicModel2Epochs/OUTPUT/best_validation_epoch/Test/BaselineComparisonWilcoxonSignedRankTestResults.txt
@@ -1 +1 @@
-There were not enough data points for any statistically meaningful comparisons.
\ No newline at end of file
+There were not enough data points for any statistically meaningful comparisons.
diff --git a/RegressionTestResults/PR_GlaucomaCV/AZUREML_PARENT_OUTPUT/CrossValResults/0/Train/metrics.csv b/RegressionTestResults/PR_GlaucomaCV/AZUREML_PARENT_OUTPUT/CrossValResults/0/Train/metrics.csv
index 881e3a8d3..f2956bda3 100644
--- a/RegressionTestResults/PR_GlaucomaCV/AZUREML_PARENT_OUTPUT/CrossValResults/0/Train/metrics.csv
+++ b/RegressionTestResults/PR_GlaucomaCV/AZUREML_PARENT_OUTPUT/CrossValResults/0/Train/metrics.csv
@@ -998,4 +998,4 @@ epoch,subject,prediction_target,model_output,label,data_split,cross_validation_s
1,003469-OD,Default,0.482178,0,Train,0
1,001578-OS,Default,0.487305,1,Train,0
1,003327-OD,Default,0.477539,1,Train,0
-1,002457-OS,Default,0.466064,0,Train,0
\ No newline at end of file
+1,002457-OS,Default,0.466064,0,Train,0
diff --git a/RegressionTestResults/PR_GlaucomaCV/AZUREML_PARENT_OUTPUT/CrossValResults/0/Val/metrics.csv b/RegressionTestResults/PR_GlaucomaCV/AZUREML_PARENT_OUTPUT/CrossValResults/0/Val/metrics.csv
index f3378e2cd..a700f3ecf 100644
--- a/RegressionTestResults/PR_GlaucomaCV/AZUREML_PARENT_OUTPUT/CrossValResults/0/Val/metrics.csv
+++ b/RegressionTestResults/PR_GlaucomaCV/AZUREML_PARENT_OUTPUT/CrossValResults/0/Val/metrics.csv
@@ -998,4 +998,4 @@ epoch,subject,prediction_target,model_output,label,data_split,cross_validation_s
1,003423-OS,Default,0.330811,1,Val,0
1,003476-OD,Default,0.313477,1,Val,0
1,003505-OS,Default,0.322266,1,Val,0
-1,003516-OD,Default,0.295898,1,Val,0
\ No newline at end of file
+1,003516-OD,Default,0.295898,1,Val,0
diff --git a/RegressionTestResults/PR_GlaucomaCV/AZUREML_PARENT_OUTPUT/CrossValResults/1/Train/metrics.csv b/RegressionTestResults/PR_GlaucomaCV/AZUREML_PARENT_OUTPUT/CrossValResults/1/Train/metrics.csv
index 8b18a6c8e..aaba830d2 100644
--- a/RegressionTestResults/PR_GlaucomaCV/AZUREML_PARENT_OUTPUT/CrossValResults/1/Train/metrics.csv
+++ b/RegressionTestResults/PR_GlaucomaCV/AZUREML_PARENT_OUTPUT/CrossValResults/1/Train/metrics.csv
@@ -998,4 +998,4 @@ epoch,subject,prediction_target,model_output,label,data_split,cross_validation_s
1,001436-OD,Default,0.553223,1,Train,1
1,001255-OS,Default,0.553223,1,Train,1
1,003059-OS,Default,0.539062,1,Train,1
-1,002407-OD,Default,0.532715,0,Train,1
\ No newline at end of file
+1,002407-OD,Default,0.532715,0,Train,1
diff --git a/RegressionTestResults/PR_GlaucomaCV/AZUREML_PARENT_OUTPUT/CrossValResults/1/Val/metrics.csv b/RegressionTestResults/PR_GlaucomaCV/AZUREML_PARENT_OUTPUT/CrossValResults/1/Val/metrics.csv
index e80738e37..2d7b118ba 100644
--- a/RegressionTestResults/PR_GlaucomaCV/AZUREML_PARENT_OUTPUT/CrossValResults/1/Val/metrics.csv
+++ b/RegressionTestResults/PR_GlaucomaCV/AZUREML_PARENT_OUTPUT/CrossValResults/1/Val/metrics.csv
@@ -998,4 +998,4 @@ epoch,subject,prediction_target,model_output,label,data_split,cross_validation_s
1,003423-OD,Default,0.422363,1,Val,1
1,003476-OS,Default,0.388184,1,Val,1
1,003485-OS,Default,0.418945,1,Val,1
-1,003502-OS,Default,0.399170,1,Val,1
\ No newline at end of file
+1,003502-OS,Default,0.399170,1,Val,1
diff --git a/RegressionTestResults/PR_GlaucomaCV/AZUREML_PARENT_OUTPUT/final_ensemble_model/model_inference_config.json b/RegressionTestResults/PR_GlaucomaCV/AZUREML_PARENT_OUTPUT/final_ensemble_model/model_inference_config.json
index 221bd9d06..b335ba396 100644
--- a/RegressionTestResults/PR_GlaucomaCV/AZUREML_PARENT_OUTPUT/final_ensemble_model/model_inference_config.json
+++ b/RegressionTestResults/PR_GlaucomaCV/AZUREML_PARENT_OUTPUT/final_ensemble_model/model_inference_config.json
@@ -1 +1 @@
-{"model_name": "GlaucomaPublic", "checkpoint_paths": ["checkpoints/OTHER_RUNS/1/last.ckpt", "checkpoints/last.ckpt"], "model_configs_namespace": "InnerEye.ML.configs.classification.GlaucomaPublic"}
\ No newline at end of file
+{"model_name": "GlaucomaPublic", "checkpoint_paths": ["checkpoints/OTHER_RUNS/1/last.ckpt", "checkpoints/last.ckpt"], "model_configs_namespace": "InnerEye.ML.configs.classification.GlaucomaPublic"}
diff --git a/RegressionTestResults/PR_HelloContainer/AZUREML_OUTPUT/final_model/model_inference_config.json b/RegressionTestResults/PR_HelloContainer/AZUREML_OUTPUT/final_model/model_inference_config.json
index bb6c61be0..c93b708ad 100644
--- a/RegressionTestResults/PR_HelloContainer/AZUREML_OUTPUT/final_model/model_inference_config.json
+++ b/RegressionTestResults/PR_HelloContainer/AZUREML_OUTPUT/final_model/model_inference_config.json
@@ -1 +1 @@
-{"model_name": "HelloContainer", "checkpoint_paths": ["checkpoints/last.ckpt"], "model_configs_namespace": "InnerEye.ML.configs.other.HelloContainer"}
\ No newline at end of file
+{"model_name": "HelloContainer", "checkpoint_paths": ["checkpoints/last.ckpt"], "model_configs_namespace": "InnerEye.ML.configs.other.HelloContainer"}
diff --git a/RegressionTestResults/PR_HelloContainer/OUTPUT/test_mse.txt b/RegressionTestResults/PR_HelloContainer/OUTPUT/test_mse.txt
index 7f15df5f3..869632041 100644
--- a/RegressionTestResults/PR_HelloContainer/OUTPUT/test_mse.txt
+++ b/RegressionTestResults/PR_HelloContainer/OUTPUT/test_mse.txt
@@ -1 +1 @@
-0.012701375409960747
\ No newline at end of file
+0.012701375409960747
diff --git a/RegressionTestResults/PR_Train2Nodes/OUTPUT/best_validation_epoch/Test/BaselineComparisonWilcoxonSignedRankTestResults.txt b/RegressionTestResults/PR_Train2Nodes/OUTPUT/best_validation_epoch/Test/BaselineComparisonWilcoxonSignedRankTestResults.txt
index 3e7fbfc54..00959090e 100644
--- a/RegressionTestResults/PR_Train2Nodes/OUTPUT/best_validation_epoch/Test/BaselineComparisonWilcoxonSignedRankTestResults.txt
+++ b/RegressionTestResults/PR_Train2Nodes/OUTPUT/best_validation_epoch/Test/BaselineComparisonWilcoxonSignedRankTestResults.txt
@@ -1 +1 @@
-There were not enough data points for any statistically meaningful comparisons.
\ No newline at end of file
+There were not enough data points for any statistically meaningful comparisons.
diff --git a/RegressionTestResults/PR_TrainEnsemble/AZUREML_PARENT_OUTPUT/CrossValResults/CrossValidationMannWhitneyTestResults.txt b/RegressionTestResults/PR_TrainEnsemble/AZUREML_PARENT_OUTPUT/CrossValResults/CrossValidationMannWhitneyTestResults.txt
index 3e7fbfc54..00959090e 100644
--- a/RegressionTestResults/PR_TrainEnsemble/AZUREML_PARENT_OUTPUT/CrossValResults/CrossValidationMannWhitneyTestResults.txt
+++ b/RegressionTestResults/PR_TrainEnsemble/AZUREML_PARENT_OUTPUT/CrossValResults/CrossValidationMannWhitneyTestResults.txt
@@ -1 +1 @@
-There were not enough data points for any statistically meaningful comparisons.
\ No newline at end of file
+There were not enough data points for any statistically meaningful comparisons.
diff --git a/RegressionTestResults/PR_TrainEnsemble/AZUREML_PARENT_OUTPUT/CrossValResults/CrossValidationWilcoxonSignedRankTestResults.txt b/RegressionTestResults/PR_TrainEnsemble/AZUREML_PARENT_OUTPUT/CrossValResults/CrossValidationWilcoxonSignedRankTestResults.txt
index 3e7fbfc54..00959090e 100644
--- a/RegressionTestResults/PR_TrainEnsemble/AZUREML_PARENT_OUTPUT/CrossValResults/CrossValidationWilcoxonSignedRankTestResults.txt
+++ b/RegressionTestResults/PR_TrainEnsemble/AZUREML_PARENT_OUTPUT/CrossValResults/CrossValidationWilcoxonSignedRankTestResults.txt
@@ -1 +1 @@
-There were not enough data points for any statistically meaningful comparisons.
\ No newline at end of file
+There were not enough data points for any statistically meaningful comparisons.
diff --git a/RegressionTestResults/PR_TrainEnsemble/AZUREML_PARENT_OUTPUT/CrossValResults/Test_outliers.txt b/RegressionTestResults/PR_TrainEnsemble/AZUREML_PARENT_OUTPUT/CrossValResults/Test_outliers.txt
index b1ac6c222..333fd5186 100644
--- a/RegressionTestResults/PR_TrainEnsemble/AZUREML_PARENT_OUTPUT/CrossValResults/Test_outliers.txt
+++ b/RegressionTestResults/PR_TrainEnsemble/AZUREML_PARENT_OUTPUT/CrossValResults/Test_outliers.txt
@@ -6,4 +6,4 @@ No outliers found
=== METRIC: HausdorffDistance_mm ===
-No outliers found
\ No newline at end of file
+No outliers found
diff --git a/RegressionTestResults/PR_TrainEnsemble/AZUREML_PARENT_OUTPUT/final_ensemble_model/model_inference_config.json b/RegressionTestResults/PR_TrainEnsemble/AZUREML_PARENT_OUTPUT/final_ensemble_model/model_inference_config.json
index d2a9b5564..ebce580a2 100644
--- a/RegressionTestResults/PR_TrainEnsemble/AZUREML_PARENT_OUTPUT/final_ensemble_model/model_inference_config.json
+++ b/RegressionTestResults/PR_TrainEnsemble/AZUREML_PARENT_OUTPUT/final_ensemble_model/model_inference_config.json
@@ -1 +1 @@
-{"model_name": "BasicModelForEnsembleTest", "checkpoint_paths": ["checkpoints/OTHER_RUNS/1/last.ckpt", "checkpoints/last.ckpt"], "model_configs_namespace": "InnerEye.ML.configs.segmentation.BasicModel2Epochs"}
\ No newline at end of file
+{"model_name": "BasicModelForEnsembleTest", "checkpoint_paths": ["checkpoints/OTHER_RUNS/1/last.ckpt", "checkpoints/last.ckpt"], "model_configs_namespace": "InnerEye.ML.configs.segmentation.BasicModel2Epochs"}
diff --git a/SECURITY.md b/SECURITY.md
index 1f9d3d442..a050f362c 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -38,4 +38,4 @@ We prefer all communications to be in English.
Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://www.microsoft.com/en-us/msrc/cvd).
-
\ No newline at end of file
+
diff --git a/Tests/ML/test_data/Val_outliers.txt b/Tests/ML/test_data/Val_outliers.txt
index dc252a9f5..311e7f1cf 100644
--- a/Tests/ML/test_data/Val_outliers.txt
+++ b/Tests/ML/test_data/Val_outliers.txt
@@ -55,4 +55,4 @@ Patient Structure seriesId
prostate 6fa04f324339c532a7c06877d1129bfacd7504d9c0bf6277a393915e73e41d66 5a6ba8fe-65bc-43ec-b1fc-682c8c37e40c 1.0 0.0 0.0 0.0
seminalvesicles 6fa04f324339c532a7c06877d1129bfacd7504d9c0bf6277a393915e73e41d66 5a6ba8fe-65bc-43ec-b1fc-682c8c37e40c 1.0 0.0 0.0 0.0
-SELECT * FROM ROOT as r WHERE true AND (r.InstitutionId = "641eda02-90c3-45ed-b8b1-2651b6a5da6c" OR r.InstitutionId = "5a6ba8fe-65bc-43ec-b1fc-682c8c37e40c") AND (STARTSWITH(r.VersionedDicomImageSeries.Latest.Series.InstanceUID,"9e84c7f5b030cc48e867430e762e1bb7e756051e27468b4fa6a0472292bb59eb") OR STARTSWITH(r.VersionedDicomImageSeries.Latest.Series.InstanceUID,"4af0d32eb2c7b4d253b98530b8c6f5aac10602d51ff4097ab3c932331cf0d2a5") OR STARTSWITH(r.VersionedDicomImageSeries.Latest.Series.InstanceUID,"d41cb61517793f87f97d5d6c0cee9f91df94169c29701c10190723ff8ede419a") OR STARTSWITH(r.VersionedDicomImageSeries.Latest.Series.InstanceUID,"5f1573dbbf6a8335bcf8bf5eed74e9157d4e7ee9dae8d679d4d4d7118510d741") OR STARTSWITH(r.VersionedDicomImageSeries.Latest.Series.InstanceUID,"991648f92b04f05e316fe7c99b1aa748c2d556b1e873591ae9b9bbd2c319254a") OR STARTSWITH(r.VersionedDicomImageSeries.Latest.Series.InstanceUID,"1deef6a1145f76617016a3e26288b009028e411ae4a236043afe7aa8cfbff6b4") OR STARTSWITH(r.VersionedDicomImageSeries.Latest.Series.InstanceUID,"f040ac05a1eeee9a064662adda21f703d7ba969b7dfc2787248b2c596ccf59a7") OR STARTSWITH(r.VersionedDicomImageSeries.Latest.Series.InstanceUID,"4b6610b5b249fbc149eb0a47abe97d08df6b26b76ffcf59431271d057f722d14") OR STARTSWITH(r.VersionedDicomImageSeries.Latest.Series.InstanceUID,"776d594c55725ad79bf59df2e3e9b6e6ded64cd37a1df45b03847c1e54828246") OR STARTSWITH(r.VersionedDicomImageSeries.Latest.Series.InstanceUID,"6fa04f324339c532a7c06877d1129bfacd7504d9c0bf6277a393915e73e41d66"))
\ No newline at end of file
+SELECT * FROM ROOT as r WHERE true AND (r.InstitutionId = "641eda02-90c3-45ed-b8b1-2651b6a5da6c" OR r.InstitutionId = "5a6ba8fe-65bc-43ec-b1fc-682c8c37e40c") AND (STARTSWITH(r.VersionedDicomImageSeries.Latest.Series.InstanceUID,"9e84c7f5b030cc48e867430e762e1bb7e756051e27468b4fa6a0472292bb59eb") OR STARTSWITH(r.VersionedDicomImageSeries.Latest.Series.InstanceUID,"4af0d32eb2c7b4d253b98530b8c6f5aac10602d51ff4097ab3c932331cf0d2a5") OR STARTSWITH(r.VersionedDicomImageSeries.Latest.Series.InstanceUID,"d41cb61517793f87f97d5d6c0cee9f91df94169c29701c10190723ff8ede419a") OR STARTSWITH(r.VersionedDicomImageSeries.Latest.Series.InstanceUID,"5f1573dbbf6a8335bcf8bf5eed74e9157d4e7ee9dae8d679d4d4d7118510d741") OR STARTSWITH(r.VersionedDicomImageSeries.Latest.Series.InstanceUID,"991648f92b04f05e316fe7c99b1aa748c2d556b1e873591ae9b9bbd2c319254a") OR STARTSWITH(r.VersionedDicomImageSeries.Latest.Series.InstanceUID,"1deef6a1145f76617016a3e26288b009028e411ae4a236043afe7aa8cfbff6b4") OR STARTSWITH(r.VersionedDicomImageSeries.Latest.Series.InstanceUID,"f040ac05a1eeee9a064662adda21f703d7ba969b7dfc2787248b2c596ccf59a7") OR STARTSWITH(r.VersionedDicomImageSeries.Latest.Series.InstanceUID,"4b6610b5b249fbc149eb0a47abe97d08df6b26b76ffcf59431271d057f722d14") OR STARTSWITH(r.VersionedDicomImageSeries.Latest.Series.InstanceUID,"776d594c55725ad79bf59df2e3e9b6e6ded64cd37a1df45b03847c1e54828246") OR STARTSWITH(r.VersionedDicomImageSeries.Latest.Series.InstanceUID,"6fa04f324339c532a7c06877d1129bfacd7504d9c0bf6277a393915e73e41d66"))
diff --git a/Tests/ML/test_data/Val_outliers_pruned.txt b/Tests/ML/test_data/Val_outliers_pruned.txt
index 49518fe9b..c27f7a57f 100644
--- a/Tests/ML/test_data/Val_outliers_pruned.txt
+++ b/Tests/ML/test_data/Val_outliers_pruned.txt
@@ -53,4 +53,4 @@ Patient Structure
411 bladder 1.0 0.0 0.0 0.0
femur_r 1.0 0.0 0.0 0.0
prostate 1.0 0.0 0.0 0.0
- seminalvesicles 1.0 0.0 0.0 0.0
\ No newline at end of file
+ seminalvesicles 1.0 0.0 0.0 0.0
diff --git a/Tests/ML/test_data/classification_data_multiclass/dataset.csv b/Tests/ML/test_data/classification_data_multiclass/dataset.csv
index 1de4b79d8..d27e93327 100644
--- a/Tests/ML/test_data/classification_data_multiclass/dataset.csv
+++ b/Tests/ML/test_data/classification_data_multiclass/dataset.csv
@@ -4,4 +4,4 @@ S1,green,1_green.png,
S2,blue,1_blue.png,2|3
S2,green,1_green.png,
S3,blue,1_blue.png,3
-S3,green,1_green.png,
\ No newline at end of file
+S3,green,1_green.png,
diff --git a/Tests/ML/test_data/sequence_data_for_classification/dataset.csv b/Tests/ML/test_data/sequence_data_for_classification/dataset.csv
index 1e9ee1feb..f6cec58f1 100644
--- a/Tests/ML/test_data/sequence_data_for_classification/dataset.csv
+++ b/Tests/ML/test_data/sequence_data_for_classification/dataset.csv
@@ -25,4 +25,4 @@
3250.00005,VST 7,25,Bar,category_1,category_B,233,0,0,84,img_8,5,0
3250.00005,VST 8,25,Bar,category_1,category_B,218,0,0,84,img_9,6,0
3250.00005,VST 9,25,Bar,category_1,category_B,221,0,0,84,img_10,7,0
-3250.00005,VST 10,25,Bar,category_1,category_B,238,0,0.02,84,img_11,8,0
\ No newline at end of file
+3250.00005,VST 10,25,Bar,category_1,category_B,238,0,0.02,84,img_11,8,0
diff --git a/Tests/ML/test_data/test_dataset_parameters.csv b/Tests/ML/test_data/test_dataset_parameters.csv
index b9836f6b2..05604b296 100644
--- a/Tests/ML/test_data/test_dataset_parameters.csv
+++ b/Tests/ML/test_data/test_dataset_parameters.csv
@@ -1,4 +1,3 @@
1,2,crop_sizes
[ 37 37 37],[ 37 37 37],"[55, 55, 55]"
[ 37 37 37],[ 37 37 37],"[55, 55, 55]"
-
diff --git a/Tests/ML/utils/test_temperature_scaling.py b/Tests/ML/utils/test_temperature_scaling.py
index 979f7ca30..2929bb4c9 100644
--- a/Tests/ML/utils/test_temperature_scaling.py
+++ b/Tests/ML/utils/test_temperature_scaling.py
@@ -42,4 +42,3 @@ def criterion_fn(_logits: torch.Tensor, _labels: torch.Tensor) -> Tuple[torch.Te
assert after_ece.item() < before_ece.item()
assert np.isclose(optimal_temperature, 1.44, rtol=0.1)
assert model.temperature.requires_grad is False
-
diff --git a/docs/bring_your_own_model.md b/docs/bring_your_own_model.md
index 611756187..ccc8fb771 100644
--- a/docs/bring_your_own_model.md
+++ b/docs/bring_your_own_model.md
@@ -252,4 +252,3 @@ class Container2(LightningContainer):
# These arguments will be passed through to the Lightning trainer.
return {"gradient_clip_val": 1, "limit_train_batches": 10}
```
-
diff --git a/docs/move_model.md b/docs/move_model.md
index 4195fad1e..6e4aa2f01 100644
--- a/docs/move_model.md
+++ b/docs/move_model.md
@@ -25,4 +25,4 @@ workspace specified in the parameters.
The model is expected to be in the format above, i.e. contained in a subfolder called `name_version` of the path in `--path` parameter. The model will be automatically given the next available `id` once uploaded to the workspace. For example, if `my_model:100` already exists then it will be called `my_model:101`.
Once in place you may want to run inference on the model with partial test data, i.e. test data from patients for whom
-some of the labels are missing. Normally inference on partial test data would raise an exception. To allow inference to continue over partial test data add the flag `--allow_incomplete_labels` to your inference call, for example `python InnerEye/ML/runner.py --allow_incomplete_labels --no-train --azureml --model= --run_recovery_id=`
\ No newline at end of file
+some of the labels are missing. Normally inference on partial test data would raise an exception. To allow inference to continue over partial test data add the flag `--allow_incomplete_labels` to your inference call, for example `python InnerEye/ML/runner.py --allow_incomplete_labels --no-train --azureml --model= --run_recovery_id=`
diff --git a/docs/self_supervised_models.md b/docs/self_supervised_models.md
index 8f5f14d67..2e762e806 100644
--- a/docs/self_supervised_models.md
+++ b/docs/self_supervised_models.md
@@ -196,4 +196,4 @@ or for a local run
```
python ML/runner.py --model=CXRImageClassifier --local_weights_path={LOCAL_PATH_TO_YOUR_SSL_CHECKPOINT}
-```
\ No newline at end of file
+```