Skip to content

Commit 2c856b1

Browse files
authored
Fix drop_variables support in kerchunk, dmrpp (#396)
Fix reversed assignment of results from collision detection that was causing NotImplementedError to be incorrectly raised for loadable_variables when only drop_variables is supplied.
1 parent 443928f commit 2c856b1

File tree

4 files changed

+25
-2
lines changed

4 files changed

+25
-2
lines changed

virtualizarr/readers/dmrpp.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ def open_virtual_dataset(
2727
virtual_backend_kwargs: Optional[dict] = None,
2828
reader_options: Optional[dict] = None,
2929
) -> Dataset:
30-
loadable_variables, drop_variables = check_for_collisions(
30+
drop_variables, loadable_variables = check_for_collisions(
3131
drop_variables=drop_variables,
3232
loadable_variables=loadable_variables,
3333
)

virtualizarr/readers/kerchunk.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ def open_virtual_dataset(
3838
if group:
3939
raise NotImplementedError()
4040

41-
loadable_variables, drop_variables = check_for_collisions(
41+
drop_variables, loadable_variables = check_for_collisions(
4242
drop_variables=drop_variables,
4343
loadable_variables=loadable_variables,
4444
)

virtualizarr/tests/test_readers/test_dmrpp.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -446,3 +446,15 @@ def test_relative_path_to_dmrpp_file(self, basic_dmrpp_temp_filepath: Path):
446446
".dmrpp"
447447
)
448448
assert path == expected_datafile_path_uri
449+
450+
451+
@pytest.mark.parametrize("drop_variables", ["mask", ["data", "mask"]])
452+
def test_drop_variables(basic_dmrpp_temp_filepath: Path, drop_variables):
453+
vds = open_virtual_dataset(
454+
str(basic_dmrpp_temp_filepath),
455+
indexes={},
456+
filetype="dmrpp",
457+
drop_variables=drop_variables,
458+
)
459+
460+
assert all(var not in vds for var in drop_variables)

virtualizarr/tests/test_readers/test_kerchunk.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,3 +248,14 @@ def test_notimplemented_read_inline_refs(tmp_path, netcdf4_inlined_ref):
248248
open_virtual_dataset(
249249
filepath=ref_filepath.as_posix(), filetype="kerchunk", indexes={}
250250
)
251+
252+
253+
@pytest.mark.parametrize("drop_variables", ["a", ["a"]])
254+
def test_drop_variables(refs_file_factory, drop_variables):
255+
refs_file = refs_file_factory()
256+
257+
vds = open_virtual_dataset(
258+
refs_file, filetype="kerchunk", drop_variables=drop_variables
259+
)
260+
261+
assert all(var not in vds for var in drop_variables)

0 commit comments

Comments
 (0)