Closed fluidnumerics-joe closed 2 years ago
Fantastic, thank you!
I believe the test failures are unrelated to this PR.
@fraserwg, any insight into this test error?
with pytest.warns(None) as record:
llc_global_model.get_dataset(varnames=['Eta'], read_grid=False)
> assert not record
E assert not WarningsChecker(record=True)
It seems to be being caused by a deprecation warning being raised by distutils
and xarray
-- see below for the full warnings summary.
=============================== warnings summary ===============================
../../opt/miniconda3/envs/py39/lib/python3.9/site-packages/xarray/core/pycompat.py:22
/Users/goldsworth/opt/miniconda3/envs/py39/lib/python3.9/site-packages/xarray/core/pycompat.py:22: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
duck_array_version = LooseVersion(duck_array_module.__version__)
../../opt/miniconda3/envs/py39/lib/python3.9/site-packages/xarray/core/pycompat.py:37
../../opt/miniconda3/envs/py39/lib/python3.9/site-packages/xarray/core/pycompat.py:37
/Users/goldsworth/opt/miniconda3/envs/py39/lib/python3.9/site-packages/xarray/core/pycompat.py:37: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
duck_array_version = LooseVersion("0.0.0")
../../opt/miniconda3/envs/py39/lib/python3.9/site-packages/setuptools/_distutils/version.py:351
../../opt/miniconda3/envs/py39/lib/python3.9/site-packages/setuptools/_distutils/version.py:351
../../opt/miniconda3/envs/py39/lib/python3.9/site-packages/setuptools/_distutils/version.py:351
../../opt/miniconda3/envs/py39/lib/python3.9/site-packages/setuptools/_distutils/version.py:351
/Users/goldsworth/opt/miniconda3/envs/py39/lib/python3.9/site-packages/setuptools/_distutils/version.py:351: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
other = LooseVersion(other)
../../opt/miniconda3/envs/py39/lib/python3.9/site-packages/xarray/core/npcompat.py:82
/Users/goldsworth/opt/miniconda3/envs/py39/lib/python3.9/site-packages/xarray/core/npcompat.py:82: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
if LooseVersion(np.__version__) >= "1.20.0":
../../opt/miniconda3/envs/py39/lib/python3.9/site-packages/xarray/core/pdcompat.py:45
/Users/goldsworth/opt/miniconda3/envs/py39/lib/python3.9/site-packages/xarray/core/pdcompat.py:45: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
if LooseVersion(pd.__version__) < "0.25.0":
I've had a play and can get around this by adding a filter to the test_aste_portal_iterations
and test_ecco_portal_iterations
functions, which ignores deprecation warnings. This can be done by replacing the lines
with pytest.warns(None) as record:
iters = aste_model.iters[:2]
aste_model.get_dataset(varnames=['ETAN'], iters=iters, read_grid=False)
assert not record
with something like
with warnings.catch_warnings(record=True) as record:
# Make sure only deprecation warnings are triggered
warnings.simplefilter("ignore", category=DeprecationWarning)
iters = aste_model.iters[:2]
aste_model.get_dataset(varnames=['ETAN'], iters=iters, read_grid=False)
assert not record
in both the Ecco and Aste tests (making appropriate changes for the Ecco test).
I will add these changes as a pull request now