3838import pandas as pd
3939
4040from xarray .coding .calendar_ops import convert_calendar , interp_calendar
41- from xarray .coding .cftimeindex import CFTimeIndex , _parse_array_of_cftime_strings
41+ from xarray .coding .cftimeindex import (
42+ CFTimeIndex ,
43+ _parse_array_of_cftime_strings ,
44+ )
4245from xarray .core import (
4346 alignment ,
4447 duck_array_ops ,
126129 broadcast_variables ,
127130 calculate_dimensions ,
128131)
129- from xarray .namedarray .parallelcompat import get_chunked_array_type , guess_chunkmanager
132+ from xarray .namedarray .parallelcompat import (
133+ get_chunked_array_type ,
134+ guess_chunkmanager ,
135+ )
130136from xarray .namedarray .pycompat import array_type , is_chunked_array
131137from xarray .plot .accessor import DatasetPlotAccessor
132- from xarray .util .deprecation_helpers import _deprecate_positional_args , deprecate_dims
138+ from xarray .util .deprecation_helpers import (
139+ _deprecate_positional_args ,
140+ deprecate_dims ,
141+ )
133142
134143if TYPE_CHECKING :
135144 from dask .dataframe import DataFrame as DaskDataFrame
140149 from xarray .backends .api import T_NetcdfEngine , T_NetcdfTypes
141150 from xarray .core .dataarray import DataArray
142151 from xarray .core .groupby import DatasetGroupBy
143- from xarray .core .merge import CoercibleMapping , CoercibleValue , _MergeResult
152+ from xarray .core .merge import (
153+ CoercibleMapping ,
154+ CoercibleValue ,
155+ _MergeResult ,
156+ )
144157 from xarray .core .resample import DatasetResample
145158 from xarray .core .rolling import DatasetCoarsen , DatasetRolling
146159 from xarray .core .types import (
@@ -253,7 +266,10 @@ def _get_chunk(var: Variable, chunks, chunkmanager: ChunkManagerEntrypoint):
253266 )
254267
255268 chunk_shape = chunkmanager .normalize_chunks (
256- chunk_shape , shape = shape , dtype = var .dtype , previous_chunks = preferred_chunk_shape
269+ chunk_shape ,
270+ shape = shape ,
271+ dtype = var .dtype ,
272+ previous_chunks = preferred_chunk_shape ,
257273 )
258274
259275 # Warn where requested chunks break preferred chunks, provided that the variable
@@ -887,7 +903,12 @@ def __dask_tokenize__(self) -> object:
887903 from dask .base import normalize_token
888904
889905 return normalize_token (
890- (type (self ), self ._variables , self ._coord_names , self ._attrs or None )
906+ (
907+ type (self ),
908+ self ._variables ,
909+ self ._coord_names ,
910+ self ._attrs or None ,
911+ )
891912 )
892913
893914 def __dask_graph__ (self ):
@@ -1260,7 +1281,9 @@ def _overwrite_indexes(
12601281 new_coord_names .remove (name )
12611282
12621283 replaced = self ._replace (
1263- variables = new_variables , coord_names = new_coord_names , indexes = new_indexes
1284+ variables = new_variables ,
1285+ coord_names = new_coord_names ,
1286+ indexes = new_indexes ,
12641287 )
12651288
12661289 if rename_dims :
@@ -2823,7 +2846,9 @@ def _resolve_frequency(
28232846 return self ._replace (variables )
28242847
28252848 def _validate_indexers (
2826- self , indexers : Mapping [Any , Any ], missing_dims : ErrorOptionsWithWarn = "raise"
2849+ self ,
2850+ indexers : Mapping [Any , Any ],
2851+ missing_dims : ErrorOptionsWithWarn = "raise" ,
28272852 ) -> Iterator [tuple [Hashable , int | slice | np .ndarray | Variable ]]:
28282853 """Here we make sure
28292854 + indexer has a valid keys
@@ -4105,7 +4130,10 @@ def _validate_interp_indexer(x, new_x):
41054130 # GH4739
41064131 if obj .__dask_graph__ ():
41074132 dask_indexers = {
4108- k : (index .to_base_variable ().chunk (), dest .to_base_variable ().chunk ())
4133+ k : (
4134+ index .to_base_variable ().chunk (),
4135+ dest .to_base_variable ().chunk (),
4136+ )
41094137 for k , (index , dest ) in validated_indexers .items ()
41104138 }
41114139
@@ -4319,7 +4347,9 @@ def _rename_dims(self, name_dict: Mapping[Any, Hashable]) -> dict[Hashable, int]
43194347 return {name_dict .get (k , k ): v for k , v in self .sizes .items ()}
43204348
43214349 def _rename_indexes (
4322- self , name_dict : Mapping [Any , Hashable ], dims_dict : Mapping [Any , Hashable ]
4350+ self ,
4351+ name_dict : Mapping [Any , Hashable ],
4352+ dims_dict : Mapping [Any , Hashable ],
43234353 ) -> tuple [dict [Hashable , Index ], dict [Hashable , Variable ]]:
43244354 if not self ._indexes :
43254355 return {}, {}
@@ -4342,7 +4372,9 @@ def _rename_indexes(
43424372 return indexes , variables
43434373
43444374 def _rename_all (
4345- self , name_dict : Mapping [Any , Hashable ], dims_dict : Mapping [Any , Hashable ]
4375+ self ,
4376+ name_dict : Mapping [Any , Hashable ],
4377+ dims_dict : Mapping [Any , Hashable ],
43464378 ) -> tuple [
43474379 dict [Hashable , Variable ],
43484380 set [Hashable ],
@@ -7389,7 +7421,8 @@ def _to_dataframe(self, ordered_dims: Mapping[Any, int]):
73897421 ]
73907422 index = self .coords .to_index ([* ordered_dims ])
73917423 broadcasted_df = pd .DataFrame (
7392- dict (zip (non_extension_array_columns , data , strict = True )), index = index
7424+ dict (zip (non_extension_array_columns , data , strict = True )),
7425+ index = index ,
73937426 )
73947427 for extension_array_column in extension_array_columns :
73957428 extension_array = self .variables [extension_array_column ].data .array
@@ -7436,7 +7469,10 @@ def to_dataframe(self, dim_order: Sequence[Hashable] | None = None) -> pd.DataFr
74367469 return self ._to_dataframe (ordered_dims = ordered_dims )
74377470
74387471 def _set_sparse_data_from_dataframe (
7439- self , idx : pd .Index , arrays : list [tuple [Hashable , np .ndarray ]], dims : tuple
7472+ self ,
7473+ idx : pd .Index ,
7474+ arrays : list [tuple [Hashable , np .ndarray ]],
7475+ dims : tuple ,
74407476 ) -> None :
74417477 from sparse import COO
74427478
@@ -7468,7 +7504,10 @@ def _set_sparse_data_from_dataframe(
74687504 self [name ] = (dims , data )
74697505
74707506 def _set_numpy_data_from_dataframe (
7471- self , idx : pd .Index , arrays : list [tuple [Hashable , np .ndarray ]], dims : tuple
7507+ self ,
7508+ idx : pd .Index ,
7509+ arrays : list [tuple [Hashable , np .ndarray ]],
7510+ dims : tuple ,
74727511 ) -> None :
74737512 if not isinstance (idx , pd .MultiIndex ):
74747513 for name , values in arrays :
@@ -7591,7 +7630,9 @@ def from_dataframe(cls, dataframe: pd.DataFrame, sparse: bool = False) -> Self:
75917630 return obj [dataframe .columns ] if len (dataframe .columns ) else obj
75927631
75937632 def to_dask_dataframe (
7594- self , dim_order : Sequence [Hashable ] | None = None , set_index : bool = False
7633+ self ,
7634+ dim_order : Sequence [Hashable ] | None = None ,
7635+ set_index : bool = False ,
75957636 ) -> DaskDataFrame :
75967637 """
75977638 Convert this dataset into a dask.dataframe.DataFrame.
@@ -7675,7 +7716,9 @@ def to_dask_dataframe(
76757716 return df
76767717
76777718 def to_dict (
7678- self , data : bool | Literal ["list" , "array" ] = "list" , encoding : bool = False
7719+ self ,
7720+ data : bool | Literal ["list" , "array" ] = "list" ,
7721+ encoding : bool = False ,
76797722 ) -> dict [str , Any ]:
76807723 """
76817724 Convert this dataset to a dictionary following xarray naming
@@ -7908,7 +7951,10 @@ def apply_over_both(lhs_data_vars, rhs_data_vars, lhs_vars, rhs_vars):
79087951
79097952 if isinstance (other , Dataset ):
79107953 new_vars = apply_over_both (
7911- self .data_vars , other .data_vars , self .variables , other .variables
7954+ self .data_vars ,
7955+ other .data_vars ,
7956+ self .variables ,
7957+ other .variables ,
79127958 )
79137959 else :
79147960 other_variable = getattr (other , "variable" , other )
0 commit comments