@@ -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 ,
@@ -465,7 +466,7 @@ def f(self):
465
466
466
467
467
468
@contextmanager
468
- def group_selection_context (groupby : "BaseGroupBy" ):
469
+ def group_selection_context (groupby : "BaseGroupBy" ) -> Iterator [ "BaseGroupBy" ] :
469
470
"""
470
471
Set / reset the group_selection_context.
471
472
"""
@@ -486,7 +487,7 @@ def group_selection_context(groupby: "BaseGroupBy"):
486
487
487
488
488
489
class BaseGroupBy (PandasObject , SelectionMixin , Generic [FrameOrSeries ]):
489
- _group_selection = None
490
+ _group_selection : Optional [ IndexLabel ] = None
490
491
_apply_allowlist : FrozenSet [str ] = frozenset ()
491
492
492
493
def __init__ (
@@ -570,7 +571,7 @@ def groups(self) -> Dict[Hashable, np.ndarray]:
570
571
return self .grouper .groups
571
572
572
573
@property
573
- def ngroups (self ):
574
+ def ngroups (self ) -> int :
574
575
self ._assure_grouper ()
575
576
return self .grouper .ngroups
576
577
@@ -649,7 +650,7 @@ def _selected_obj(self):
649
650
else :
650
651
return self .obj [self ._selection ]
651
652
652
- def _reset_group_selection (self ):
653
+ def _reset_group_selection (self ) -> None :
653
654
"""
654
655
Clear group based selection.
655
656
@@ -661,7 +662,7 @@ def _reset_group_selection(self):
661
662
self ._group_selection = None
662
663
self ._reset_cache ("_selected_obj" )
663
664
664
- def _set_group_selection (self ):
665
+ def _set_group_selection (self ) -> None :
665
666
"""
666
667
Create group based selection.
667
668
@@ -686,7 +687,9 @@ def _set_group_selection(self):
686
687
self ._group_selection = ax .difference (Index (groupers ), sort = False ).tolist ()
687
688
self ._reset_cache ("_selected_obj" )
688
689
689
- def _set_result_index_ordered (self , result ):
690
+ def _set_result_index_ordered (
691
+ self , result : "OutputFrameOrSeries"
692
+ ) -> "OutputFrameOrSeries" :
690
693
# set the result index on the passed values object and
691
694
# return the new object, xref 8046
692
695
@@ -700,7 +703,7 @@ def _set_result_index_ordered(self, result):
700
703
result .set_axis (self .obj ._get_axis (self .axis ), axis = self .axis , inplace = True )
701
704
return result
702
705
703
- def _dir_additions (self ):
706
+ def _dir_additions (self ) -> Set [ str ] :
704
707
return self .obj ._dir_additions () | self ._apply_allowlist
705
708
706
709
def __getattr__ (self , attr : str ):
@@ -818,7 +821,7 @@ def get_group(self, name, obj=None):
818
821
819
822
return obj ._take_with_is_copy (inds , axis = self .axis )
820
823
821
- def __iter__ (self ):
824
+ def __iter__ (self ) -> Iterator [ Tuple [ Label , FrameOrSeries ]] :
822
825
"""
823
826
Groupby iterator.
824
827
0 commit comments