Skip to content
Snippets Groups Projects
Commit 1b55db90 authored by Daniel CARRON's avatar Daniel CARRON :b:
Browse files

Merge branch 'issue-62' into 'main'

Fix db path issues when reusing DataLoaders from other Datamodules

Closes #62

See merge request biosignal/software/mednet!22
parents e914ad66 27712a65
No related branches found
No related tags found
1 merge request!22Fix db path issues when reusing DataLoaders from other Datamodules
Pipeline #84504 passed
Showing
with 190 additions and 3 deletions
......@@ -4,6 +4,7 @@
"""Aggregated DataModule composed of Montgomery, Shenzhen and Indian datasets."""
from ....data.datamodule import ConcatDataModule
from ..indian.datamodule import CONFIGURATION_KEY_DATADIR as INDIAN_KEY_DATADIR
from ..indian.datamodule import RawDataLoader as IndianLoader
from ..indian.datamodule import make_split as make_indian_split
from ..montgomery.datamodule import RawDataLoader as MontgomeryLoader
......@@ -26,7 +27,7 @@ class DataModule(ConcatDataModule):
montgomery_split = make_montgomery_split(split_filename)
shenzhen_loader = ShenzhenLoader()
shenzhen_split = make_shenzhen_split(split_filename)
indian_loader = IndianLoader()
indian_loader = IndianLoader(INDIAN_KEY_DATADIR)
indian_split = make_indian_split(split_filename)
super().__init__(
......
......@@ -4,6 +4,7 @@
"""Aggregated DataModule composed of Montgomery, Shenzhen, Indian, and PadChest datasets."""
from ....data.datamodule import ConcatDataModule
from ..indian.datamodule import CONFIGURATION_KEY_DATADIR as INDIAN_KEY_DATADIR
from ..indian.datamodule import RawDataLoader as IndianLoader
from ..indian.datamodule import make_split as make_indian_split
from ..montgomery.datamodule import RawDataLoader as MontgomeryLoader
......@@ -31,7 +32,7 @@ class DataModule(ConcatDataModule):
montgomery_split = make_montgomery_split(split_filename)
shenzhen_loader = ShenzhenLoader()
shenzhen_split = make_shenzhen_split(split_filename)
indian_loader = IndianLoader()
indian_loader = IndianLoader(INDIAN_KEY_DATADIR)
indian_split = make_indian_split(split_filename)
padchest_loader = PadchestLoader()
padchest_split = make_padchest_split(padchest_split_filename)
......
......@@ -4,6 +4,7 @@
"""Aggregated DataModule composed of Montgomery, Shenzhen, Indian, and TBX11k datasets."""
from ....data.datamodule import ConcatDataModule
from ..indian.datamodule import CONFIGURATION_KEY_DATADIR as INDIAN_KEY_DATADIR
from ..indian.datamodule import RawDataLoader as IndianLoader
from ..indian.datamodule import make_split as make_indian_split
from ..montgomery.datamodule import RawDataLoader as MontgomeryLoader
......@@ -31,7 +32,7 @@ class DataModule(ConcatDataModule):
montgomery_split = make_montgomery_split(split_filename)
shenzhen_loader = ShenzhenLoader()
shenzhen_split = make_shenzhen_split(split_filename)
indian_loader = IndianLoader()
indian_loader = IndianLoader(INDIAN_KEY_DATADIR)
indian_split = make_indian_split(split_filename)
tbx11k_loader = TBX11kLoader()
tbx11k_split = make_tbx11k_split(tbx11k_split_filename)
......
......@@ -7,6 +7,8 @@ import importlib
import pytest
from click.testing import CliRunner
def id_function(val):
if isinstance(val, dict):
......@@ -43,6 +45,17 @@ def test_protocol_consistency(
)
@pytest.mark.skip_if_rc_var_not_set("datadir.hivtb")
def test_database_check():
from mednet.scripts.database import check
runner = CliRunner()
result = runner.invoke(check, ["--limit=10", "hivtb-f0"])
assert (
result.exit_code == 0
), f"Exit code {result.exit_code} != 0 -- Output:\n{result.output}"
@pytest.mark.skip_if_rc_var_not_set("datadir.hivtb")
@pytest.mark.parametrize(
"dataset",
......
......@@ -10,6 +10,8 @@ import importlib
import pytest
from click.testing import CliRunner
def id_function(val):
if isinstance(val, dict):
......@@ -47,6 +49,17 @@ def test_protocol_consistency(
)
@pytest.mark.skip_if_rc_var_not_set("datadir.indian")
def test_database_check():
from mednet.scripts.database import check
runner = CliRunner()
result = runner.invoke(check, ["indian"])
assert (
result.exit_code == 0
), f"Exit code {result.exit_code} != 0 -- Output:\n{result.output}"
@pytest.mark.skip_if_rc_var_not_set("datadir.indian")
@pytest.mark.parametrize(
"dataset",
......
......@@ -7,6 +7,8 @@ import importlib
import pytest
from click.testing import CliRunner
def id_function(val):
if isinstance(val, dict):
......@@ -44,6 +46,17 @@ def test_protocol_consistency(
)
@pytest.mark.skip_if_rc_var_not_set("datadir.montgomery")
def test_database_check():
from mednet.scripts.database import check
runner = CliRunner()
result = runner.invoke(check, ["montgomery"])
assert (
result.exit_code == 0
), f"Exit code {result.exit_code} != 0 -- Output:\n{result.output}"
@pytest.mark.skip_if_rc_var_not_set("datadir.montgomery")
@pytest.mark.parametrize(
"dataset",
......
......@@ -7,6 +7,8 @@ import importlib
import pytest
from click.testing import CliRunner
@pytest.mark.parametrize(
"name",
......@@ -53,3 +55,15 @@ def test_split_consistency(name: str):
assert shenzhen.splits[split][0][0] == combined.splits[split][1][0]
assert isinstance(shenzhen.splits[split][0][1], ShenzhenLoader)
assert isinstance(combined.splits[split][1][1], ShenzhenLoader)
@pytest.mark.skip_if_rc_var_not_set("datadir.montgomery")
@pytest.mark.skip_if_rc_var_not_set("datadir.shenzhen")
def test_database_check():
from mednet.scripts.database import check
runner = CliRunner()
result = runner.invoke(check, ["montgomery-shenzhen"])
assert (
result.exit_code == 0
), f"Exit code {result.exit_code} != 0 -- Output:\n{result.output}"
......@@ -7,6 +7,8 @@ import importlib
import pytest
from click.testing import CliRunner
@pytest.mark.parametrize(
"name",
......@@ -65,3 +67,16 @@ def test_split_consistency(name: str):
assert indian.splits[split][0][0] == combined.splits[split][2][0]
assert isinstance(indian.splits[split][0][1], IndianLoader)
assert isinstance(combined.splits[split][2][1], IndianLoader)
@pytest.mark.skip_if_rc_var_not_set("datadir.montgomery")
@pytest.mark.skip_if_rc_var_not_set("datadir.indian")
@pytest.mark.skip_if_rc_var_not_set("datadir.shenzhen")
def test_database_check():
from mednet.scripts.database import check
runner = CliRunner()
result = runner.invoke(check, ["montgomery-shenzhen-indian"])
assert (
result.exit_code == 0
), f"Exit code {result.exit_code} != 0 -- Output:\n{result.output}"
......@@ -7,6 +7,8 @@ import importlib
import pytest
from click.testing import CliRunner
@pytest.mark.parametrize(
"name,padchest_name",
......@@ -69,3 +71,17 @@ def test_split_consistency(name: str, padchest_name: str):
assert padchest.splits[split][0][0] == combined.splits[split][3][0]
assert isinstance(padchest.splits[split][0][1], PadChestLoader)
assert isinstance(combined.splits[split][3][1], PadChestLoader)
@pytest.mark.skip_if_rc_var_not_set("datadir.montgomery")
@pytest.mark.skip_if_rc_var_not_set("datadir.shenzhen")
@pytest.mark.skip_if_rc_var_not_set("datadir.indian")
@pytest.mark.skip_if_rc_var_not_set("datadir.padchest")
def test_database_check():
from mednet.scripts.database import check
runner = CliRunner()
result = runner.invoke(check, ["montgomery-shenzhen-indian-padchest"])
assert (
result.exit_code == 0
), f"Exit code {result.exit_code} != 0 -- Output:\n{result.output}"
......@@ -7,6 +7,8 @@ import importlib
import pytest
from click.testing import CliRunner
@pytest.mark.parametrize(
"name,tbx11k_name",
......@@ -89,3 +91,17 @@ def test_split_consistency(name: str, tbx11k_name: str):
assert tbx11k.splits[split][0][0] == combined.splits[split][3][0]
assert isinstance(tbx11k.splits[split][0][1], TBX11kLoader)
assert isinstance(combined.splits[split][3][1], TBX11kLoader)
@pytest.mark.skip_if_rc_var_not_set("datadir.montgomery")
@pytest.mark.skip_if_rc_var_not_set("datadir.shenzhen")
@pytest.mark.skip_if_rc_var_not_set("datadir.indian")
@pytest.mark.skip_if_rc_var_not_set("datadir.tbx11k")
def test_database_check():
from mednet.scripts.database import check
runner = CliRunner()
result = runner.invoke(check, ["montgomery-shenzhen-indian-tbx11k-v1"])
assert (
result.exit_code == 0
), f"Exit code {result.exit_code} != 0 -- Output:\n{result.output}"
......@@ -7,6 +7,8 @@ import importlib
import pytest
from click.testing import CliRunner
def id_function(val):
if isinstance(val, dict):
......@@ -44,6 +46,17 @@ testdata = [
]
@pytest.mark.skip_if_rc_var_not_set("datadir.nih_cxr14")
def test_database_check():
from mednet.scripts.database import check
runner = CliRunner()
result = runner.invoke(check, ["--limit=10", "nih-cxr14"])
assert (
result.exit_code == 0
), f"Exit code {result.exit_code} != 0 -- Output:\n{result.output}"
@pytest.mark.skip_if_rc_var_not_set("datadir.nih_cxr14")
@pytest.mark.parametrize("name,dataset,num_labels", testdata)
def test_loading(database_checkers, name: str, dataset: str, num_labels: int):
......
......@@ -7,6 +7,8 @@ import importlib
import pytest
from click.testing import CliRunner
@pytest.mark.parametrize(
"name,padchest_name,combined_name",
......@@ -45,3 +47,15 @@ def test_split_consistency(name: str, padchest_name: str, combined_name: str):
assert padchest.splits[split][0][0] == combined.splits[split][1][0]
assert isinstance(padchest.splits[split][0][1], PadChestLoader)
assert isinstance(combined.splits[split][1][1], PadChestLoader)
@pytest.mark.skip_if_rc_var_not_set("datadir.nih_cxr14")
@pytest.mark.skip_if_rc_var_not_set("datadir.padchest")
def test_database_check():
from mednet.scripts.database import check
runner = CliRunner()
result = runner.invoke(check, ["--limit=10", "nih-cxr14-padchest"])
assert (
result.exit_code == 0
), f"Exit code {result.exit_code} != 0 -- Output:\n{result.output}"
......@@ -7,6 +7,8 @@ import importlib
import pytest
from click.testing import CliRunner
def id_function(val):
if isinstance(val, dict):
......@@ -40,6 +42,17 @@ def test_protocol_consistency(
)
@pytest.mark.skip_if_rc_var_not_set("datadir.padchest")
def test_database_check():
from mednet.scripts.database import check
runner = CliRunner()
result = runner.invoke(check, ["--limit=10", "padchest-idiap"])
assert (
result.exit_code == 0
), f"Exit code {result.exit_code} != 0 -- Output:\n{result.output}"
testdata = [
("idiap", "train", 193),
("idiap", "test", 1),
......
......@@ -7,6 +7,8 @@ import importlib
import pytest
from click.testing import CliRunner
def id_function(val):
if isinstance(val, dict):
......@@ -44,6 +46,17 @@ def test_protocol_consistency(
)
@pytest.mark.skip_if_rc_var_not_set("datadir.shenzhen")
def test_database_check():
from mednet.scripts.database import check
runner = CliRunner()
result = runner.invoke(check, ["shenzhen"])
assert (
result.exit_code == 0
), f"Exit code {result.exit_code} != 0 -- Output:\n{result.output}"
@pytest.mark.skip_if_rc_var_not_set("datadir.shenzhen")
@pytest.mark.parametrize(
"dataset",
......
......@@ -7,6 +7,8 @@ import importlib
import pytest
from click.testing import CliRunner
def id_function(val):
if isinstance(val, dict):
......@@ -46,6 +48,17 @@ def test_protocol_consistency(
)
@pytest.mark.skip_if_rc_var_not_set("datadir.tbpoc")
def test_database_check():
from mednet.scripts.database import check
runner = CliRunner()
result = runner.invoke(check, ["tbpoc-f0"])
assert (
result.exit_code == 0
), f"Exit code {result.exit_code} != 0 -- Output:\n{result.output}"
@pytest.mark.skip_if_rc_var_not_set("datadir.tbpoc")
@pytest.mark.parametrize(
"dataset",
......
......@@ -9,6 +9,8 @@ import typing
import pytest
import torch
from click.testing import CliRunner
def id_function(val):
if isinstance(val, (dict, tuple)):
......@@ -231,6 +233,22 @@ def check_loaded_batch(
# __import__("pdb").set_trace()
@pytest.mark.skip_if_rc_var_not_set("datadir.tbx11k")
def test_database_check():
from mednet.scripts.database import check
runner = CliRunner()
result = runner.invoke(check, ["--limit=10", "tbx11k-v1-f0"])
assert (
result.exit_code == 0
), f"Exit code {result.exit_code} != 0 -- Output:\n{result.output}"
result = runner.invoke(check, ["--limit=10", "tbx11k-v2-f0"])
assert (
result.exit_code == 0
), f"Exit code {result.exit_code} != 0 -- Output:\n{result.output}"
@pytest.mark.skip_if_rc_var_not_set("datadir.tbx11k")
@pytest.mark.parametrize(
"dataset",
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment