@@ -114,7 +114,8 @@ def __init__(
114
114
records : typing .List [typing .Dict [str , typing .Any ]],
115
115
variable_column_name : pydantic .StrictStr ,
116
116
path_column_name : pydantic .StrictStr ,
117
- data_format : DataFormat ,
117
+ data_format : typing .Optional [DataFormat ],
118
+ format_column_name : typing .Optional [pydantic .StrictStr ],
118
119
* ,
119
120
aggregations : typing .Optional [typing .List [Aggregation ]] = None ,
120
121
requested_variables : typing .List [str ] = None ,
@@ -162,12 +163,11 @@ def __init__(
162
163
self .storage_options = storage_options or {}
163
164
self .preprocess = preprocess
164
165
self .requested_variables = requested_variables or []
165
- self .data_format = data_format .value
166
166
self .path_column_name = path_column_name
167
167
self .variable_column_name = variable_column_name
168
168
self .aggregations = aggregations
169
169
self .df = pd .DataFrame .from_records (records )
170
- self .xarray_open_kwargs = _get_xarray_open_kwargs ( self . data_format , xarray_open_kwargs )
170
+ self .xarray_open_kwargs = xarray_open_kwargs
171
171
self .xarray_combine_by_coords_kwargs = dict (combine_attrs = 'drop_conflicts' )
172
172
if xarray_combine_by_coords_kwargs is None :
173
173
xarray_combine_by_coords_kwargs = {}
@@ -177,6 +177,11 @@ def __init__(
177
177
}
178
178
self ._ds = None
179
179
180
+ if data_format is not None :
181
+ self .df ['_data_format_' ] = data_format .value
182
+ else :
183
+ self .df = self .df .rename (columns = {format_column_name : '_data_format_' })
184
+
180
185
def __repr__ (self ) -> str :
181
186
return f'<{ type (self ).__name__ } (name: { self .key } , asset(s): { len (self .df )} )>'
182
187
@@ -203,7 +208,9 @@ def _open_dataset(self):
203
208
_open_dataset (
204
209
record [self .path_column_name ],
205
210
record [self .variable_column_name ],
206
- xarray_open_kwargs = self .xarray_open_kwargs ,
211
+ xarray_open_kwargs = _get_xarray_open_kwargs (
212
+ record ['_data_format_' ], self .xarray_open_kwargs
213
+ ),
207
214
preprocess = self .preprocess ,
208
215
expand_dims = {
209
216
agg .attribute_name : [record [agg .attribute_name ]]
0 commit comments