3737from psyplot .compat .pycompat import (OrderedDict , range , getcwd ,
3838 get_default_value as _get_default_value )
3939try :
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 ]))
4243except 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