@@ -129,11 +129,11 @@ def position(self, **kwargs):
129
129
else :
130
130
query_params [coord ] = self ._dims [coord ]['type' ](level )
131
131
else :
132
- raise ProviderInvalidQueryError (user_msg = f"""Invalid Value '{ level } ' for Dimension Parameter '{ coord } '. Valid Values are '{ self ._dims [coord ]['values' ]} '""" )
132
+ raise ProviderInvalidQueryError (user_msg = f"""Invalid Value '{ level } ' for Dimension Parameter '{ coord } '. Valid Values are '{ self ._dims [coord ]['values' ]} '""" )
133
133
134
134
data = data .sel (string_query )
135
135
else :
136
- raise ProviderInvalidQueryError (user_msg = f"""Invalid Dimension Parameter '{ coord } '""" )
136
+ raise ProviderInvalidQueryError (user_msg = f"""Invalid Dimension Parameter '{ coord } '""" )
137
137
138
138
LOGGER .debug (query_params )
139
139
@@ -229,31 +229,32 @@ def cube(self, **kwargs):
229
229
230
230
dims = kwargs .get ('dims' )
231
231
232
- if dims :
233
- string_query = {}
234
- if isinstance (dims , dict ):
235
- for coord , level in dims .items ():
236
- if coord in self ._dims :
237
- if self ._dims [coord ]['type' ](level ) in self ._dims [coord ]['values' ]:
238
- if self ._dims [coord ]['type' ] == str :
239
- string_query [coord ] = self ._dims [coord ]['type' ](level )
240
- else :
241
- query_params [coord ] = self ._dims [coord ]['type' ](level )
242
- else :
243
- raise ProviderInvalidQueryError (
244
- user_msg = f"""Invalid Value '{ level } ' for Dimension Parameter '{ coord } '. Valid Values are '{ self ._dims [coord ]['values' ]} '""" )
245
-
246
- data = data .sel (string_query )
247
- else :
248
- raise ProviderInvalidQueryError (user_msg = f"""Invalid Dimension Parameter '{ coord } '""" )
249
-
250
232
LOGGER .debug (f'query parameters: { query_params } ' )
251
233
try :
252
234
if select_properties :
253
235
self ._fields = {k : v for k , v in self ._fields .items () if k in select_properties } # noqa
254
236
data = self ._data [[* select_properties ]]
255
237
else :
256
238
data = self ._data
239
+
240
+ if dims :
241
+ string_query = {}
242
+ if isinstance (dims , dict ):
243
+ for coord , level in dims .items ():
244
+ if coord in self ._dims :
245
+ if self ._dims [coord ]['type' ](level ) in self ._dims [coord ]['values' ]:
246
+ if self ._dims [coord ]['type' ] == str :
247
+ string_query [coord ] = self ._dims [coord ]['type' ](level )
248
+ else :
249
+ query_params [coord ] = self ._dims [coord ]['type' ](level )
250
+ else :
251
+ raise ProviderInvalidQueryError (
252
+ user_msg = f"""Invalid Value '{ level } ' for Dimension Parameter '{ coord } '. Valid Values are '{ self ._dims [coord ]['values' ]} '""" )
253
+
254
+ data = data .sel (string_query )
255
+ else :
256
+ raise ProviderInvalidQueryError (user_msg = f"""Invalid Dimension Parameter '{ coord } '""" )
257
+
257
258
data = data .sel (query_params )
258
259
data = _convert_float32_to_float64 (data )
259
260
except KeyError :
0 commit comments