Skip to content

Commit f59a439

Browse files
committed
compatibility fixes for cdo-bindings>=1.5
1 parent 6eb37a2 commit f59a439

1 file changed

Lines changed: 16 additions & 8 deletions

File tree

‎psyplot/project.py‎

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,9 @@
3737
from psyplot.compat.pycompat import (OrderedDict, range, getcwd,
3838
get_default_value as _get_default_value)
3939
try:
40-
from cdo import Cdo as _CdoBase
40+
from cdo import Cdo as _CdoBase, __version__ as cdo_version
4141
with_cdo = True
42+
cdo_version = tuple(map(int, cdo_version.split('.')[:2]))
4243
except ImportError as e:
4344
Cdo = _MissingModule(e)
4445
with_cdo = False
@@ -2203,17 +2204,21 @@ class Cdo(_CdoBase):
22032204
""")
22042205

22052206
def __init__(self, *args, **kwargs):
2206-
kwargs.setdefault('cdfMod', CDF_MOD_NCREADER)
2207+
if cdo_version < (1, 5):
2208+
kwargs.setdefault('cdfMod', CDF_MOD_NCREADER)
22072209
super(Cdo, self).__init__(*args, **kwargs)
22082210
self.loadCdf()
22092211

22102212
def loadCdf(self, *args, **kwargs):
22112213
"""Load data handler as specified by self.cdfMod"""
2212-
def open_nc(*args, **kwargs):
2213-
kwargs.pop('mode', None)
2214-
return open_dataset(*args, **kwargs)
2215-
if self.cdfMod == CDF_MOD_NCREADER:
2216-
self.cdf = open_nc
2214+
if cdo_version < (1, 5):
2215+
def open_nc(*args, **kwargs):
2216+
kwargs.pop('mode', None)
2217+
return open_dataset(*args, **kwargs)
2218+
if self.cdfMod == CDF_MOD_NCREADER:
2219+
self.cdf = open_nc
2220+
else:
2221+
super(Cdo, self).loadCdf(*args, **kwargs)
22172222
else:
22182223
super(Cdo, self).loadCdf(*args, **kwargs)
22192224

@@ -2232,7 +2237,10 @@ def wrapper(self, *args, **kwargs):
22322237
dims = kwargs.pop('dims', {})
22332238
name = kwargs.pop('name', None)
22342239
method = kwargs.pop('method', 'isel')
2235-
kwargs['returnCdf'] = True
2240+
if cdo_version < (1, 5):
2241+
kwargs['returnCdf'] = True
2242+
else:
2243+
kwargs['returnXDataset'] = True
22362244
ds = get(*args, **kwargs)
22372245
if isinstance(plot_method, six.string_types):
22382246
plot_method = getattr(plot, plot_method)

0 commit comments

Comments
 (0)