17
17
MutableMapping ,
18
18
Sequence ,
19
19
)
20
+ from functools import partial
20
21
from html import escape
21
22
from numbers import Number
22
23
from operator import methodcaller
124
125
from xarray .namedarray .parallelcompat import get_chunked_array_type , guess_chunkmanager
125
126
from xarray .namedarray .pycompat import array_type , is_chunked_array
126
127
from xarray .plot .accessor import DatasetPlotAccessor
127
- from xarray .util .deprecation_helpers import _deprecate_positional_args
128
+ from xarray .util .deprecation_helpers import _deprecate_positional_args , deprecate_dims
128
129
129
130
if TYPE_CHECKING :
130
131
from dask .dataframe import DataFrame as DaskDataFrame
@@ -5264,12 +5265,13 @@ def _stack_once(
5264
5265
new_variables , coord_names = new_coord_names , indexes = indexes
5265
5266
)
5266
5267
5268
+ @partial (deprecate_dims , old_name = "dimensions" )
5267
5269
def stack (
5268
5270
self ,
5269
- dimensions : Mapping [Any , Sequence [Hashable | ellipsis ]] | None = None ,
5271
+ dim : Mapping [Any , Sequence [Hashable | ellipsis ]] | None = None ,
5270
5272
create_index : bool | None = True ,
5271
5273
index_cls : type [Index ] = PandasMultiIndex ,
5272
- ** dimensions_kwargs : Sequence [Hashable | ellipsis ],
5274
+ ** dim_kwargs : Sequence [Hashable | ellipsis ],
5273
5275
) -> Self :
5274
5276
"""
5275
5277
Stack any number of existing dimensions into a single new dimension.
@@ -5279,7 +5281,7 @@ def stack(
5279
5281
5280
5282
Parameters
5281
5283
----------
5282
- dimensions : mapping of hashable to sequence of hashable
5284
+ dim : mapping of hashable to sequence of hashable
5283
5285
Mapping of the form `new_name=(dim1, dim2, ...)`. Names of new
5284
5286
dimensions, and the existing dimensions that they replace. An
5285
5287
ellipsis (`...`) will be replaced by all unlisted dimensions.
@@ -5295,9 +5297,9 @@ def stack(
5295
5297
index_cls: Index-class, default: PandasMultiIndex
5296
5298
Can be used to pass a custom multi-index type (must be an Xarray index that
5297
5299
implements `.stack()`). By default, a pandas multi-index wrapper is used.
5298
- **dimensions_kwargs
5299
- The keyword arguments form of ``dimensions ``.
5300
- One of dimensions or dimensions_kwargs must be provided.
5300
+ **dim_kwargs
5301
+ The keyword arguments form of ``dim ``.
5302
+ One of dim or dim_kwargs must be provided.
5301
5303
5302
5304
Returns
5303
5305
-------
@@ -5308,9 +5310,9 @@ def stack(
5308
5310
--------
5309
5311
Dataset.unstack
5310
5312
"""
5311
- dimensions = either_dict_or_kwargs (dimensions , dimensions_kwargs , "stack" )
5313
+ dim = either_dict_or_kwargs (dim , dim_kwargs , "stack" )
5312
5314
result = self
5313
- for new_dim , dims in dimensions .items ():
5315
+ for new_dim , dims in dim .items ():
5314
5316
result = result ._stack_once (dims , new_dim , index_cls , create_index )
5315
5317
return result
5316
5318
@@ -6218,9 +6220,10 @@ def drop_dims(
6218
6220
drop_vars = {k for k , v in self ._variables .items () if set (v .dims ) & drop_dims }
6219
6221
return self .drop_vars (drop_vars )
6220
6222
6223
+ @deprecate_dims
6221
6224
def transpose (
6222
6225
self ,
6223
- * dims : Hashable ,
6226
+ * dim : Hashable ,
6224
6227
missing_dims : ErrorOptionsWithWarn = "raise" ,
6225
6228
) -> Self :
6226
6229
"""Return a new Dataset object with all array dimensions transposed.
@@ -6230,7 +6233,7 @@ def transpose(
6230
6233
6231
6234
Parameters
6232
6235
----------
6233
- *dims : hashable, optional
6236
+ *dim : hashable, optional
6234
6237
By default, reverse the dimensions on each array. Otherwise,
6235
6238
reorder the dimensions to this order.
6236
6239
missing_dims : {"raise", "warn", "ignore"}, default: "raise"
@@ -6257,20 +6260,20 @@ def transpose(
6257
6260
numpy.transpose
6258
6261
DataArray.transpose
6259
6262
"""
6260
- # Raise error if list is passed as dims
6261
- if (len (dims ) > 0 ) and (isinstance (dims [0 ], list )):
6262
- list_fix = [f"{ repr (x )} " if isinstance (x , str ) else f"{ x } " for x in dims [0 ]]
6263
+ # Raise error if list is passed as dim
6264
+ if (len (dim ) > 0 ) and (isinstance (dim [0 ], list )):
6265
+ list_fix = [f"{ repr (x )} " if isinstance (x , str ) else f"{ x } " for x in dim [0 ]]
6263
6266
raise TypeError (
6264
- f'transpose requires dims to be passed as multiple arguments. Expected `{ ", " .join (list_fix )} `. Received `{ dims [0 ]} ` instead'
6267
+ f'transpose requires dim to be passed as multiple arguments. Expected `{ ", " .join (list_fix )} `. Received `{ dim [0 ]} ` instead'
6265
6268
)
6266
6269
6267
6270
# Use infix_dims to check once for missing dimensions
6268
- if len (dims ) != 0 :
6269
- _ = list (infix_dims (dims , self .dims , missing_dims ))
6271
+ if len (dim ) != 0 :
6272
+ _ = list (infix_dims (dim , self .dims , missing_dims ))
6270
6273
6271
6274
ds = self .copy ()
6272
6275
for name , var in self ._variables .items ():
6273
- var_dims = tuple (dim for dim in dims if dim in (var .dims + (...,)))
6276
+ var_dims = tuple (d for d in dim if d in (var .dims + (...,)))
6274
6277
ds ._variables [name ] = var .transpose (* var_dims )
6275
6278
return ds
6276
6279
0 commit comments