Skip to content

Commit d872b8c

Browse files
committed
add parameter types + @doc decorator
1 parent d3f0246 commit d872b8c

File tree

3 files changed

+44
-51
lines changed

3 files changed

+44
-51
lines changed

pandas/core/groupby/generic.py

+31-43
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131

3232
from pandas._libs import Timestamp, lib
3333
from pandas._typing import FrameOrSeries
34-
from pandas.util._decorators import Appender, Substitution
34+
from pandas.util._decorators import Appender, Substitution, doc
3535

3636
from pandas.core.dtypes.cast import (
3737
maybe_convert_objects,
@@ -80,25 +80,25 @@
8080
from pandas.core.internals import Block
8181

8282
_agg_template = """
83-
Compute %(f)s of group values.
83+
Compute {fname} of group values.
8484
8585
Parameters
8686
----------
87-
numeric_only : bool, default %(no)s
87+
numeric_only : bool, default {no}
8888
Include only float, int, boolean columns. If None, will attempt to use
8989
everything, then use only numeric data.
90-
min_count : int, default %(mc)s
90+
min_count : int, default {mc}
9191
The required number of valid values to perform the operation. If fewer
9292
than ``min_count`` non-NA values are present the result will be NA.
9393
9494
Returns
9595
-------
96-
%(return_type)s
97-
Computed %(f)s of values within each group.
96+
{return_type}
97+
Computed {fname} of values within each group.
9898
9999
See Also
100100
--------
101-
%(return_type)s.groupby
101+
{return_type}.groupby
102102
"""
103103

104104

@@ -811,34 +811,28 @@ def count(self) -> Series:
811811
)
812812
return self._reindex_output(result, fill_value=0)
813813

814-
@Substitution(f="sum", no=True, mc=0, return_type="Series")
815-
@Appender(_agg_template)
816-
def sum(self, numeric_only=True, min_count=0) -> Series:
814+
@doc(_agg_template, fname="sum", no=True, mc=0, return_type="Series")
815+
def sum(self, numeric_only: bool = True, min_count: int = 0) -> Series:
817816
return super().sum(numeric_only=numeric_only, min_count=min_count)
818817

819-
@Substitution(f="prod", no=True, mc=0, return_type="Series")
820-
@Appender(_agg_template)
821-
def prod(self, numeric_only=True, min_count=0) -> Series:
818+
@doc(_agg_template, fname="prod", no=True, mc=0, return_type="Series")
819+
def prod(self, numeric_only: bool = True, min_count: int = 0) -> Series:
822820
return super().prod(numeric_only=numeric_only, min_count=min_count)
823821

824-
@Substitution(f="min", no=False, mc=-1, return_type="Series")
825-
@Appender(_agg_template)
826-
def min(self, numeric_only=False, min_count=-1) -> Series:
822+
@doc(_agg_template, fname="min", no=False, mc=-1, return_type="Series")
823+
def min(self, numeric_only: bool = False, min_count: int = -1) -> Series:
827824
return super().min(numeric_only=numeric_only, min_count=min_count)
828825

829-
@Substitution(f="max", no=False, mc=-1, return_type="Series")
830-
@Appender(_agg_template)
831-
def max(self, numeric_only=False, min_count=-1) -> Series:
826+
@doc(_agg_template, fname="max", no=False, mc=-1, return_type="Series")
827+
def max(self, numeric_only: bool = False, min_count: int = -1) -> Series:
832828
return super().max(numeric_only=numeric_only, min_count=min_count)
833829

834-
@Substitution(f="first", no=False, mc=-1, return_type="Series")
835-
@Appender(_agg_template)
836-
def first(self, numeric_only=False, min_count=-1) -> Series:
830+
@doc(_agg_template, fname="first", no=False, mc=-1, return_type="Series")
831+
def first(self, numeric_only: bool = False, min_count: int = -1) -> Series:
837832
return super().first(numeric_only=numeric_only, min_count=min_count)
838833

839-
@Substitution(f="last", no=False, mc=-1, return_type="Series")
840-
@Appender(_agg_template)
841-
def last(self, numeric_only=False, min_count=-1) -> Series:
834+
@doc(_agg_template, fname="last", no=False, mc=-1, return_type="Series")
835+
def last(self, numeric_only: bool = False, min_count: int = -1) -> Series:
842836
return super().last(numeric_only=numeric_only, min_count=min_count)
843837

844838
def _apply_to_column_groupbys(self, func):
@@ -1915,34 +1909,28 @@ def groupby_series(obj, col=None):
19151909
results.index = ibase.default_index(len(results))
19161910
return results
19171911

1918-
@Substitution(f="sum", no=True, mc=0, return_type="DataFrame")
1919-
@Appender(_agg_template)
1920-
def sum(self, numeric_only=True, min_count=0) -> DataFrame:
1912+
@doc(_agg_template, fname="sum", no=True, mc=0, return_type="DataFrame")
1913+
def sum(self, numeric_only: bool = True, min_count: int = 0) -> DataFrame:
19211914
return super().sum(numeric_only=numeric_only, min_count=min_count)
19221915

1923-
@Substitution(f="prod", no=True, mc=0, return_type="DataFrame")
1924-
@Appender(_agg_template)
1925-
def prod(self, numeric_only=True, min_count=0) -> DataFrame:
1916+
@doc(_agg_template, fname="prod", no=True, mc=0, return_type="DataFrame")
1917+
def prod(self, numeric_only: bool = True, min_count: int = 0) -> DataFrame:
19261918
return super().prod(numeric_only=numeric_only, min_count=min_count)
19271919

1928-
@Substitution(f="min", no=False, mc=-1, return_type="DataFrame")
1929-
@Appender(_agg_template)
1930-
def min(self, numeric_only=False, min_count=-1) -> DataFrame:
1920+
@doc(_agg_template, fname="min", no=False, mc=-1, return_type="DataFrame")
1921+
def min(self, numeric_only: bool = False, min_count: int = -1) -> DataFrame:
19311922
return super().min(numeric_only=numeric_only, min_count=min_count)
19321923

1933-
@Substitution(f="max", no=False, mc=-1, return_type="DataFrame")
1934-
@Appender(_agg_template)
1935-
def max(self, numeric_only=False, min_count=-1) -> DataFrame:
1924+
@doc(_agg_template, fname="max", no=False, mc=-1, return_type="DataFrame")
1925+
def max(self, numeric_only: bool = False, min_count: int = -1) -> DataFrame:
19361926
return super().max(numeric_only=numeric_only, min_count=min_count)
19371927

1938-
@Substitution(f="first", no=False, mc=-1, return_type="DataFrame")
1939-
@Appender(_agg_template)
1940-
def first(self, numeric_only=False, min_count=-1) -> DataFrame:
1928+
@doc(_agg_template, fname="first", no=False, mc=-1, return_type="DataFrame")
1929+
def first(self, numeric_only: bool = False, min_count: int = -1) -> DataFrame:
19411930
return super().first(numeric_only=numeric_only, min_count=min_count)
19421931

1943-
@Substitution(f="last", no=False, mc=-1, return_type="DataFrame")
1944-
@Appender(_agg_template)
1945-
def last(self, numeric_only=False, min_count=-1) -> DataFrame:
1932+
@doc(_agg_template, fname="last", no=False, mc=-1, return_type="DataFrame")
1933+
def last(self, numeric_only: bool = False, min_count: int = -1) -> DataFrame:
19461934
return super().last(numeric_only=numeric_only, min_count=min_count)
19471935

19481936
boxplot = boxplot_frame_groupby

pandas/core/groupby/groupby.py

+12-7
Original file line numberDiff line numberDiff line change
@@ -871,7 +871,12 @@ def _wrap_applied_output(self, keys, values, not_indexed_same: bool = False):
871871
raise AbstractMethodError(self)
872872

873873
def _agg_general(
874-
self, numeric_only=True, min_count=-1, *, alias: str, npfunc: Callable
874+
self,
875+
numeric_only: bool = True,
876+
min_count: int = -1,
877+
*,
878+
alias: str,
879+
npfunc: Callable,
875880
):
876881
self._set_group_selection()
877882

@@ -1361,22 +1366,22 @@ def size(self):
13611366
result.name = self.obj.name
13621367
return self._reindex_output(result, fill_value=0)
13631368

1364-
def sum(self, numeric_only=True, min_count=0):
1369+
def sum(self, numeric_only: bool = True, min_count: int = 0):
13651370
return self._agg_general(
13661371
numeric_only=numeric_only, min_count=min_count, alias="add", npfunc=np.sum
13671372
)
13681373

1369-
def prod(self, numeric_only=True, min_count=0):
1374+
def prod(self, numeric_only: bool = True, min_count: int = 0):
13701375
return self._agg_general(
13711376
numeric_only=numeric_only, min_count=min_count, alias="prod", npfunc=np.prod
13721377
)
13731378

1374-
def min(self, numeric_only=False, min_count=-1):
1379+
def min(self, numeric_only: bool = False, min_count: int = -1):
13751380
return self._agg_general(
13761381
numeric_only=numeric_only, min_count=min_count, alias="min", npfunc=np.min
13771382
)
13781383

1379-
def max(self, numeric_only=False, min_count=-1):
1384+
def max(self, numeric_only: bool = False, min_count: int = -1):
13801385
return self._agg_general(
13811386
numeric_only=numeric_only, min_count=min_count, alias="max", npfunc=np.max
13821387
)
@@ -1398,7 +1403,7 @@ def get_loc_notna(x, loc: int):
13981403
else:
13991404
return get_loc_notna(x, loc=loc)
14001405

1401-
def first(self, numeric_only=False, min_count=-1):
1406+
def first(self, numeric_only: bool = False, min_count: int = -1):
14021407
first_compat = partial(self._get_loc, loc=0)
14031408

14041409
return self._agg_general(
@@ -1408,7 +1413,7 @@ def first(self, numeric_only=False, min_count=-1):
14081413
npfunc=first_compat,
14091414
)
14101415

1411-
def last(self, numeric_only=False, min_count=-1):
1416+
def last(self, numeric_only: bool = False, min_count: int = -1):
14121417
last_compat = partial(self._get_loc, loc=-1)
14131418

14141419
return self._agg_general(

pandas/util/_decorators.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ def wrapper(*args, **kwargs) -> Callable[..., Any]:
245245
return decorate
246246

247247

248-
def doc(*args: Union[str, Callable], **kwargs: str) -> Callable[[F], F]:
248+
def doc(*args: Union[str, Callable], **kwargs: Any) -> Callable[[F], F]:
249249
"""
250250
A decorator take docstring templates, concatenate them and perform string
251251
substitution on it.

0 commit comments

Comments
 (0)