@@ -1077,17 +1077,19 @@ def test_open_mfdataset(self):
1077
1077
with create_tmp_file () as tmp2 :
1078
1078
original .isel (x = slice (5 )).to_netcdf (tmp1 )
1079
1079
original .isel (x = slice (5 , 10 )).to_netcdf (tmp2 )
1080
- with open_mfdataset ([tmp1 , tmp2 ]) as actual :
1081
- self .assertIsInstance (actual .foo .variable .data , da .Array )
1082
- self .assertEqual (actual .foo .variable .data .chunks ,
1083
- ((5 , 5 ),))
1084
- self .assertDatasetAllClose (original , actual )
1085
- with open_mfdataset ([tmp1 , tmp2 ], chunks = {'x' : 3 }) as actual :
1086
- self .assertEqual (actual .foo .variable .data .chunks ,
1087
- ((3 , 2 , 3 , 2 ),))
1080
+ for close in [True , False ]:
1081
+ with open_mfdataset ([tmp1 , tmp2 ], autoclose = close ) as actual :
1082
+ self .assertIsInstance (actual .foo .variable .data , da .Array )
1083
+ self .assertEqual (actual .foo .variable .data .chunks ,
1084
+ ((5 , 5 ),))
1085
+ self .assertDatasetAllClose (original , actual )
1086
+ with open_mfdataset ([tmp1 , tmp2 ], chunks = {'x' : 3 }, autoclose = close ) as actual :
1087
+ self .assertEqual (actual .foo .variable .data .chunks ,
1088
+ ((3 , 2 , 3 , 2 ),))
1088
1089
1089
1090
with self .assertRaisesRegexp (IOError , 'no files to open' ):
1090
- open_mfdataset ('foo-bar-baz-*.nc' )
1091
+ for close in [True , False ]:
1092
+ open_mfdataset ('foo-bar-baz-*.nc' , autoclose = close )
1091
1093
1092
1094
def test_preprocess_mfdataset (self ):
1093
1095
original = Dataset ({'foo' : ('x' , np .random .randn (10 ))})
@@ -1098,8 +1100,9 @@ def preprocess(ds):
1098
1100
return ds .assign_coords (z = 0 )
1099
1101
1100
1102
expected = preprocess (original )
1101
- with open_mfdataset (tmp , preprocess = preprocess ) as actual :
1102
- self .assertDatasetIdentical (expected , actual )
1103
+ for close in [True , False ]:
1104
+ with open_mfdataset (tmp , preprocess = preprocess , autoclose = close ) as actual :
1105
+ self .assertDatasetIdentical (expected , actual )
1103
1106
1104
1107
def test_save_mfdataset_roundtrip (self ):
1105
1108
original = Dataset ({'foo' : ('x' , np .random .randn (10 ))})
@@ -1108,8 +1111,9 @@ def test_save_mfdataset_roundtrip(self):
1108
1111
with create_tmp_file () as tmp1 :
1109
1112
with create_tmp_file () as tmp2 :
1110
1113
save_mfdataset (datasets , [tmp1 , tmp2 ])
1111
- with open_mfdataset ([tmp1 , tmp2 ]) as actual :
1112
- self .assertDatasetIdentical (actual , original )
1114
+ for close in [True , False ]:
1115
+ with open_mfdataset ([tmp1 , tmp2 ], autoclose = close ) as actual :
1116
+ self .assertDatasetIdentical (actual , original )
1113
1117
1114
1118
def test_save_mfdataset_invalid (self ):
1115
1119
ds = Dataset ()
@@ -1122,18 +1126,21 @@ def test_open_and_do_math(self):
1122
1126
original = Dataset ({'foo' : ('x' , np .random .randn (10 ))})
1123
1127
with create_tmp_file () as tmp :
1124
1128
original .to_netcdf (tmp )
1125
- with open_mfdataset (tmp ) as ds :
1126
- actual = 1.0 * ds
1127
- self .assertDatasetAllClose (original , actual )
1129
+ for close in [True , False ]:
1130
+ with open_mfdataset (tmp , autoclose = close ) as ds :
1131
+ actual = 1.0 * ds
1132
+ self .assertDatasetAllClose (original , actual )
1128
1133
1129
1134
def test_open_mfdataset_concat_dim_none (self ):
1130
1135
with create_tmp_file () as tmp1 :
1131
1136
with create_tmp_file () as tmp2 :
1132
1137
data = Dataset ({'x' : 0 })
1133
1138
data .to_netcdf (tmp1 )
1134
1139
Dataset ({'x' : np .nan }).to_netcdf (tmp2 )
1135
- with open_mfdataset ([tmp1 , tmp2 ], concat_dim = None ) as actual :
1136
- self .assertDatasetIdentical (data , actual )
1140
+ for close in [True , False ]:
1141
+ with open_mfdataset ([tmp1 , tmp2 ],
1142
+ concat_dim = None , autoclose = close ) as actual :
1143
+ self .assertDatasetIdentical (data , actual )
1137
1144
1138
1145
def test_open_dataset (self ):
1139
1146
original = Dataset ({'foo' : ('x' , np .random .randn (10 ))})
@@ -1165,16 +1172,17 @@ def test_deterministic_names(self):
1165
1172
with create_tmp_file () as tmp :
1166
1173
data = create_test_data ()
1167
1174
data .to_netcdf (tmp )
1168
- with open_mfdataset (tmp ) as ds :
1169
- original_names = dict ((k , v .data .name )
1170
- for k , v in ds .data_vars .items ())
1171
- with open_mfdataset (tmp ) as ds :
1172
- repeat_names = dict ((k , v .data .name )
1173
- for k , v in ds .data_vars .items ())
1174
- for var_name , dask_name in original_names .items ():
1175
- self .assertIn (var_name , dask_name )
1176
- self .assertIn (tmp , dask_name )
1177
- self .assertEqual (original_names , repeat_names )
1175
+ for close in [True , False ]:
1176
+ with open_mfdataset (tmp , autoclose = close ) as ds :
1177
+ original_names = dict ((k , v .data .name )
1178
+ for k , v in ds .data_vars .items ())
1179
+ with open_mfdataset (tmp , autoclose = close ) as ds :
1180
+ repeat_names = dict ((k , v .data .name )
1181
+ for k , v in ds .data_vars .items ())
1182
+ for var_name , dask_name in original_names .items ():
1183
+ self .assertIn (var_name , dask_name )
1184
+ self .assertIn (tmp , dask_name )
1185
+ self .assertEqual (original_names , repeat_names )
1178
1186
1179
1187
def test_dataarray_compute (self ):
1180
1188
# Test DataArray.compute() on dask backend.
0 commit comments