@@ -20,6 +20,7 @@ class providing the base-class of operations.
2020 Generic ,
2121 Hashable ,
2222 Iterable ,
23+ Iterator ,
2324 List ,
2425 Mapping ,
2526 Optional ,
@@ -465,7 +466,7 @@ def f(self):
465466
466467
467468@contextmanager
468- def group_selection_context (groupby : "BaseGroupBy" ):
469+ def group_selection_context (groupby : "BaseGroupBy" ) -> Iterator [ "BaseGroupBy" ] :
469470 """
470471 Set / reset the group_selection_context.
471472 """
@@ -486,7 +487,7 @@ def group_selection_context(groupby: "BaseGroupBy"):
486487
487488
488489class BaseGroupBy (PandasObject , SelectionMixin , Generic [FrameOrSeries ]):
489- _group_selection = None
490+ _group_selection : Optional [ IndexLabel ] = None
490491 _apply_allowlist : FrozenSet [str ] = frozenset ()
491492
492493 def __init__ (
@@ -570,7 +571,7 @@ def groups(self) -> Dict[Hashable, np.ndarray]:
570571 return self .grouper .groups
571572
572573 @property
573- def ngroups (self ):
574+ def ngroups (self ) -> int :
574575 self ._assure_grouper ()
575576 return self .grouper .ngroups
576577
@@ -649,7 +650,7 @@ def _selected_obj(self):
649650 else :
650651 return self .obj [self ._selection ]
651652
652- def _reset_group_selection (self ):
653+ def _reset_group_selection (self ) -> None :
653654 """
654655 Clear group based selection.
655656
@@ -661,7 +662,7 @@ def _reset_group_selection(self):
661662 self ._group_selection = None
662663 self ._reset_cache ("_selected_obj" )
663664
664- def _set_group_selection (self ):
665+ def _set_group_selection (self ) -> None :
665666 """
666667 Create group based selection.
667668
@@ -686,7 +687,9 @@ def _set_group_selection(self):
686687 self ._group_selection = ax .difference (Index (groupers ), sort = False ).tolist ()
687688 self ._reset_cache ("_selected_obj" )
688689
689- def _set_result_index_ordered (self , result ):
690+ def _set_result_index_ordered (
691+ self , result : "OutputFrameOrSeries"
692+ ) -> "OutputFrameOrSeries" :
690693 # set the result index on the passed values object and
691694 # return the new object, xref 8046
692695
@@ -700,7 +703,7 @@ def _set_result_index_ordered(self, result):
700703 result .set_axis (self .obj ._get_axis (self .axis ), axis = self .axis , inplace = True )
701704 return result
702705
703- def _dir_additions (self ):
706+ def _dir_additions (self ) -> Set [ str ] :
704707 return self .obj ._dir_additions () | self ._apply_allowlist
705708
706709 def __getattr__ (self , attr : str ):
@@ -818,7 +821,7 @@ def get_group(self, name, obj=None):
818821
819822 return obj ._take_with_is_copy (inds , axis = self .axis )
820823
821- def __iter__ (self ):
824+ def __iter__ (self ) -> Iterator [ Tuple [ Label , FrameOrSeries ]] :
822825 """
823826 Groupby iterator.
824827
0 commit comments