"...torch/git@developer.sourcefind.cn:OpenDAS/fairscale.git" did not exist on "4d58a2949370a1bd3699cf8e903054afabaf763d"
Unverified Commit 563d9cad authored by Philip Meier's avatar Philip Meier Committed by GitHub
Browse files

improve error message for prototype datasets without options (#5224)

* improve error message for prototype datasets without options

* remove early exit

* add test
parent e32b19e1
...@@ -126,13 +126,16 @@ class TestDatasetInfo: ...@@ -126,13 +126,16 @@ class TestDatasetInfo:
assert info.default_config == default_config assert info.default_config == default_config
@pytest.mark.parametrize( @pytest.mark.parametrize(
("options", "expected_error_msg"), ("valid_options", "options", "expected_error_msg"),
[ [
pytest.param(dict(unknown_option=None), "Unknown option 'unknown_option'", id="unknown_option"), (dict(), dict(any_option=None), "does not take any options"),
pytest.param(dict(split="unknown_split"), "Invalid argument 'unknown_split'", id="invalid_argument"), (dict(split="train"), dict(unknown_option=None), "Unknown option 'unknown_option'"),
(dict(split="train"), dict(split="invalid_argument"), "Invalid argument 'invalid_argument'"),
], ],
) )
def test_make_config_invalid_inputs(self, info, options, expected_error_msg): def test_make_config_invalid_inputs(self, info, valid_options, options, expected_error_msg):
info = make_minimal_dataset_info(valid_options=valid_options)
with pytest.raises(ValueError, match=expected_error_msg): with pytest.raises(ValueError, match=expected_error_msg):
info.make_config(**options) info.make_config(**options)
......
...@@ -78,6 +78,12 @@ class DatasetInfo: ...@@ -78,6 +78,12 @@ class DatasetInfo:
return [row for row in csv.reader(file)] return [row for row in csv.reader(file)]
def make_config(self, **options: Any) -> DatasetConfig: def make_config(self, **options: Any) -> DatasetConfig:
if not self._valid_options and options:
raise ValueError(
f"Dataset {self.name} does not take any options, "
f"but got {sequence_to_str(list(options), separate_last=' and')}."
)
for name, arg in options.items(): for name, arg in options.items():
if name not in self._valid_options: if name not in self._valid_options:
raise ValueError( raise ValueError(
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment