@@ -289,12 +289,12 @@ def _apply_loffset(
289
289
290
290
class Grouper :
291
291
def __init__ (self , group : T_Group ):
292
- self .group = group
293
- self .codes = None
292
+ self .group : T_Group | None = group
293
+ self .codes : np . ndarry | None = None
294
294
self .labels = None
295
- self .group_indices = None
295
+ self .group_indices : list [ list [ int , ...]] | None = None
296
296
self .unique_coord = None
297
- self .full_index = None
297
+ self .full_index : pd . Index | None = None
298
298
self ._group_as_index = None
299
299
300
300
@property
@@ -328,9 +328,10 @@ def group_as_index(self) -> pd.Index:
328
328
self ._group_as_index = safe_cast_to_index (self .group1d )
329
329
return self ._group_as_index
330
330
331
- def _resolve_group (self , obj ) -> None :
331
+ def _resolve_group (self , obj : T_DataArray | T_Dataset ) -> None :
332
332
from xarray .core .dataarray import DataArray
333
333
334
+ group : T_Group
334
335
group = self .group
335
336
if not isinstance (group , (DataArray , IndexVariable )):
336
337
if not hashable (group ):
@@ -339,11 +340,11 @@ def _resolve_group(self, obj) -> None:
339
340
"name of an xarray variable or dimension. "
340
341
f"Received { group !r} instead."
341
342
)
342
- group = obj [group ]
343
- if len (group ) == 0 :
344
- raise ValueError (f"{ group .name } must not be empty" )
343
+ group_da : T_DataArray = obj [group ]
344
+ if len (group_da ) == 0 :
345
+ raise ValueError (f"{ group_da .name } must not be empty" )
345
346
346
- if group .name not in obj .coords and group .name in obj .dims :
347
+ if group_da .name not in obj .coords and group_da .name in obj .dims :
347
348
# DummyGroups should not appear on groupby results
348
349
group = _DummyGroup (obj , group .name , group .coords )
349
350
0 commit comments