@@ -91,6 +91,13 @@ def _get_dims(arr):
9191 return tuple (filter (lambda d : d != VARIABLELABEL , arr .dims ))
9292
9393
94+ def _open_store (store_mod , store_cls , fname ):
95+ try :
96+ return getattr (import_module (store_mod ), store_cls ).open (fname )
97+ except AttributeError :
98+ return getattr (import_module (store_mod ), store_cls )(fname )
99+
100+
94101@docstrings .get_sectionsf ('setup_coords' )
95102@dedent
96103def setup_coords (arr_names = None , sort = [], dims = {}, ** kwargs ):
@@ -4066,13 +4073,13 @@ def _open_ds_from_store(fname, store_mod=None, store_cls=None, **kwargs):
40664073 store_mod = repeat (store_mod )
40674074 if isstring (store_cls ):
40684075 store_cls = repeat (store_cls )
4069- fname = [getattr ( import_module ( sm ) , sc )( f )
4076+ fname = [_open_store ( sm , sc , f )
40704077 for sm , sc , f in zip (store_mod , store_cls , fname )]
40714078 kwargs ['engine' ] = None
40724079 kwargs ['lock' ] = False
40734080 return open_mfdataset (fname , ** kwargs )
40744081 if store_mod is not None and store_cls is not None :
4075- fname = getattr ( import_module ( store_mod ) , store_cls )( fname )
4082+ fname = _open_store ( store_mod , store_cls , fname )
40764083 return open_dataset (fname , ** kwargs )
40774084
40784085
0 commit comments