32
32
from .pycompat import (
33
33
OrderedDict , basestring , dask_array_type , integer_types , iteritems , range )
34
34
from .utils import (
35
- Frozen , SortedKeysDict , datetime_to_numeric , decode_numpy_dict_values ,
36
- either_dict_or_kwargs , ensure_us_time_resolution , hashable ,
37
- maybe_wrap_array )
35
+ _check_inplace , Frozen , SortedKeysDict , datetime_to_numeric ,
36
+ decode_numpy_dict_values , either_dict_or_kwargs , ensure_us_time_resolution ,
37
+ hashable , maybe_wrap_array )
38
38
from .variable import IndexVariable , Variable , as_variable , broadcast_variables
39
39
40
40
# list of attributes of pd.DatetimeIndex that are ndarrays of time info
@@ -1072,7 +1072,7 @@ def data_vars(self):
1072
1072
"""
1073
1073
return DataVariables (self )
1074
1074
1075
- def set_coords (self , names , inplace = False ):
1075
+ def set_coords (self , names , inplace = None ):
1076
1076
"""Given names of one or more variables, set them as coordinates
1077
1077
1078
1078
Parameters
@@ -1095,14 +1095,15 @@ def set_coords(self, names, inplace=False):
1095
1095
# DataFrame.set_index?
1096
1096
# nb. check in self._variables, not self.data_vars to insure that the
1097
1097
# operation is idempotent
1098
+ inplace = _check_inplace (inplace )
1098
1099
if isinstance (names , basestring ):
1099
1100
names = [names ]
1100
1101
self ._assert_all_in_dataset (names )
1101
1102
obj = self if inplace else self .copy ()
1102
1103
obj ._coord_names .update (names )
1103
1104
return obj
1104
1105
1105
- def reset_coords (self , names = None , drop = False , inplace = False ):
1106
+ def reset_coords (self , names = None , drop = False , inplace = None ):
1106
1107
"""Given names of coordinates, reset them to become variables
1107
1108
1108
1109
Parameters
@@ -1121,6 +1122,7 @@ def reset_coords(self, names=None, drop=False, inplace=False):
1121
1122
-------
1122
1123
Dataset
1123
1124
"""
1125
+ inplace = _check_inplace (inplace )
1124
1126
if names is None :
1125
1127
names = self ._coord_names - set (self .dims )
1126
1128
else :
@@ -2045,7 +2047,7 @@ def interp_like(self, other, method='linear', assume_sorted=False,
2045
2047
ds = self .reindex (object_coords )
2046
2048
return ds .interp (numeric_coords , method , assume_sorted , kwargs )
2047
2049
2048
- def rename (self , name_dict = None , inplace = False , ** names ):
2050
+ def rename (self , name_dict = None , inplace = None , ** names ):
2049
2051
"""Returns a new object with renamed variables and dimensions.
2050
2052
2051
2053
Parameters
@@ -2070,6 +2072,7 @@ def rename(self, name_dict=None, inplace=False, **names):
2070
2072
Dataset.swap_dims
2071
2073
DataArray.rename
2072
2074
"""
2075
+ inplace = _check_inplace (inplace )
2073
2076
name_dict = either_dict_or_kwargs (name_dict , names , 'rename' )
2074
2077
for k , v in name_dict .items ():
2075
2078
if k not in self and k not in self .dims :
@@ -2095,7 +2098,7 @@ def rename(self, name_dict=None, inplace=False, **names):
2095
2098
return self ._replace_vars_and_dims (variables , coord_names , dims = dims ,
2096
2099
inplace = inplace )
2097
2100
2098
- def swap_dims (self , dims_dict , inplace = False ):
2101
+ def swap_dims (self , dims_dict , inplace = None ):
2099
2102
"""Returns a new object with swapped dimensions.
2100
2103
2101
2104
Parameters
@@ -2119,6 +2122,7 @@ def swap_dims(self, dims_dict, inplace=False):
2119
2122
Dataset.rename
2120
2123
DataArray.swap_dims
2121
2124
"""
2125
+ inplace = _check_inplace (inplace )
2122
2126
for k , v in dims_dict .items ():
2123
2127
if k not in self .dims :
2124
2128
raise ValueError ('cannot swap from dimension %r because it is '
@@ -2231,7 +2235,7 @@ def expand_dims(self, dim, axis=None):
2231
2235
2232
2236
return self ._replace_vars_and_dims (variables , self ._coord_names )
2233
2237
2234
- def set_index (self , indexes = None , append = False , inplace = False ,
2238
+ def set_index (self , indexes = None , append = False , inplace = None ,
2235
2239
** indexes_kwargs ):
2236
2240
"""Set Dataset (multi-)indexes using one or more existing coordinates or
2237
2241
variables.
@@ -2262,14 +2266,15 @@ def set_index(self, indexes=None, append=False, inplace=False,
2262
2266
Dataset.reset_index
2263
2267
Dataset.swap_dims
2264
2268
"""
2269
+ inplace = _check_inplace (inplace )
2265
2270
indexes = either_dict_or_kwargs (indexes , indexes_kwargs , 'set_index' )
2266
2271
variables , coord_names = merge_indexes (indexes , self ._variables ,
2267
2272
self ._coord_names ,
2268
2273
append = append )
2269
2274
return self ._replace_vars_and_dims (variables , coord_names = coord_names ,
2270
2275
inplace = inplace )
2271
2276
2272
- def reset_index (self , dims_or_levels , drop = False , inplace = False ):
2277
+ def reset_index (self , dims_or_levels , drop = False , inplace = None ):
2273
2278
"""Reset the specified index(es) or multi-index level(s).
2274
2279
2275
2280
Parameters
@@ -2293,13 +2298,14 @@ def reset_index(self, dims_or_levels, drop=False, inplace=False):
2293
2298
--------
2294
2299
Dataset.set_index
2295
2300
"""
2301
+ inplace = _check_inplace (inplace )
2296
2302
variables , coord_names = split_indexes (dims_or_levels , self ._variables ,
2297
2303
self ._coord_names ,
2298
2304
self ._level_coords , drop = drop )
2299
2305
return self ._replace_vars_and_dims (variables , coord_names = coord_names ,
2300
2306
inplace = inplace )
2301
2307
2302
- def reorder_levels (self , dim_order = None , inplace = False ,
2308
+ def reorder_levels (self , dim_order = None , inplace = None ,
2303
2309
** dim_order_kwargs ):
2304
2310
"""Rearrange index levels using input order.
2305
2311
@@ -2322,6 +2328,7 @@ def reorder_levels(self, dim_order=None, inplace=False,
2322
2328
Another dataset, with this dataset's data but replaced
2323
2329
coordinates.
2324
2330
"""
2331
+ inplace = _check_inplace (inplace )
2325
2332
dim_order = either_dict_or_kwargs (dim_order , dim_order_kwargs ,
2326
2333
'reorder_levels' )
2327
2334
replace_variables = {}
@@ -2472,7 +2479,7 @@ def unstack(self, dim=None):
2472
2479
result = result ._unstack_once (dim )
2473
2480
return result
2474
2481
2475
- def update (self , other , inplace = True ):
2482
+ def update (self , other , inplace = None ):
2476
2483
"""Update this dataset's variables with those from another dataset.
2477
2484
2478
2485
Parameters
@@ -2494,12 +2501,13 @@ def update(self, other, inplace=True):
2494
2501
If any dimensions would have inconsistent sizes in the updated
2495
2502
dataset.
2496
2503
"""
2504
+ inplace = _check_inplace (inplace , default = True )
2497
2505
variables , coord_names , dims = dataset_update_method (self , other )
2498
2506
2499
2507
return self ._replace_vars_and_dims (variables , coord_names , dims ,
2500
2508
inplace = inplace )
2501
2509
2502
- def merge (self , other , inplace = False , overwrite_vars = frozenset (),
2510
+ def merge (self , other , inplace = None , overwrite_vars = frozenset (),
2503
2511
compat = 'no_conflicts' , join = 'outer' ):
2504
2512
"""Merge the arrays of two datasets into a single dataset.
2505
2513
@@ -2550,6 +2558,7 @@ def merge(self, other, inplace=False, overwrite_vars=frozenset(),
2550
2558
MergeError
2551
2559
If any variables conflict (see ``compat``).
2552
2560
"""
2561
+ inplace = _check_inplace (inplace )
2553
2562
variables , coord_names , dims = dataset_merge_method (
2554
2563
self , other , overwrite_vars = overwrite_vars , compat = compat ,
2555
2564
join = join )
@@ -3317,7 +3326,6 @@ def func(self, other):
3317
3326
3318
3327
def _calculate_binary_op (self , f , other , join = 'inner' ,
3319
3328
inplace = False ):
3320
-
3321
3329
def apply_over_both (lhs_data_vars , rhs_data_vars , lhs_vars , rhs_vars ):
3322
3330
if inplace and set (lhs_data_vars ) != set (rhs_data_vars ):
3323
3331
raise ValueError ('datasets must have the same data variables '
0 commit comments