@@ -20,6 +20,7 @@ class providing the base-class of operations.
20
20
Generic ,
21
21
Hashable ,
22
22
Iterable ,
23
+ Iterator ,
23
24
List ,
24
25
Mapping ,
25
26
Optional ,
@@ -467,7 +468,7 @@ def f(self):
467
468
468
469
469
470
@contextmanager
470
- def group_selection_context (groupby : "BaseGroupBy" ):
471
+ def group_selection_context (groupby : "BaseGroupBy" ) -> Iterator [ "BaseGroupBy" ] :
471
472
"""
472
473
Set / reset the group_selection_context.
473
474
"""
@@ -488,7 +489,7 @@ def group_selection_context(groupby: "BaseGroupBy"):
488
489
489
490
490
491
class BaseGroupBy (PandasObject , SelectionMixin , Generic [FrameOrSeries ]):
491
- _group_selection = None
492
+ _group_selection : Optional [ IndexLabel ] = None
492
493
_apply_allowlist : FrozenSet [str ] = frozenset ()
493
494
494
495
def __init__ (
@@ -576,7 +577,7 @@ def groups(self) -> Dict[Hashable, np.ndarray]:
576
577
return self .grouper .groups
577
578
578
579
@property
579
- def ngroups (self ):
580
+ def ngroups (self ) -> int :
580
581
self ._assure_grouper ()
581
582
return self .grouper .ngroups
582
583
@@ -655,7 +656,7 @@ def _selected_obj(self):
655
656
else :
656
657
return self .obj [self ._selection ]
657
658
658
- def _reset_group_selection (self ):
659
+ def _reset_group_selection (self ) -> None :
659
660
"""
660
661
Clear group based selection.
661
662
@@ -667,7 +668,7 @@ def _reset_group_selection(self):
667
668
self ._group_selection = None
668
669
self ._reset_cache ("_selected_obj" )
669
670
670
- def _set_group_selection (self ):
671
+ def _set_group_selection (self ) -> None :
671
672
"""
672
673
Create group based selection.
673
674
@@ -692,7 +693,9 @@ def _set_group_selection(self):
692
693
self ._group_selection = ax .difference (Index (groupers ), sort = False ).tolist ()
693
694
self ._reset_cache ("_selected_obj" )
694
695
695
- def _set_result_index_ordered (self , result ):
696
+ def _set_result_index_ordered (
697
+ self , result : "OutputFrameOrSeries"
698
+ ) -> "OutputFrameOrSeries" :
696
699
# set the result index on the passed values object and
697
700
# return the new object, xref 8046
698
701
@@ -706,7 +709,7 @@ def _set_result_index_ordered(self, result):
706
709
result .set_axis (self .obj ._get_axis (self .axis ), axis = self .axis , inplace = True )
707
710
return result
708
711
709
- def _dir_additions (self ):
712
+ def _dir_additions (self ) -> Set [ str ] :
710
713
return self .obj ._dir_additions () | self ._apply_allowlist
711
714
712
715
def __getattr__ (self , attr : str ):
@@ -824,7 +827,7 @@ def get_group(self, name, obj=None):
824
827
825
828
return obj ._take_with_is_copy (inds , axis = self .axis )
826
829
827
- def __iter__ (self ):
830
+ def __iter__ (self ) -> Iterator [ Tuple [ Label , FrameOrSeries ]] :
828
831
"""
829
832
Groupby iterator.
830
833
0 commit comments