Skip to content

Commit e659f9e

Browse files
committed
address more comments
1 parent 06bb3bf commit e659f9e

File tree

13 files changed

+59
-106
lines changed

13 files changed

+59
-106
lines changed

pandas-stubs/core/groupby/generic.pyi

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ class SeriesGroupBy(GroupBy[Series[S2]], Generic[S2, ByT]):
179179
def cov(
180180
self,
181181
other: Series,
182-
min_periods: int | None = ...,
182+
min_periods: int | None = None,
183183
ddof: int | None = 1,
184184
) -> Series: ...
185185
@property
@@ -188,8 +188,8 @@ class SeriesGroupBy(GroupBy[Series[S2]], Generic[S2, ByT]):
188188
def is_monotonic_decreasing(self) -> Series[bool]: ...
189189
def hist(
190190
self,
191-
by: IndexLabel | None = ...,
192-
ax: PlotAxes | None = ...,
191+
by: IndexLabel | None = None,
192+
ax: PlotAxes | None = None,
193193
grid: bool = True,
194194
xlabelsize: float | str | None = None,
195195
xrot: float | None = None,
@@ -424,18 +424,18 @@ class DataFrameGroupBy(GroupBy[DataFrame], Generic[ByT, _TT]):
424424
) -> DataFrame: ...
425425
def hist(
426426
self,
427-
column: IndexLabel | None = ...,
428-
by: IndexLabel | None = ...,
427+
column: IndexLabel | None = None,
428+
by: IndexLabel | None = None,
429429
grid: bool = True,
430430
xlabelsize: float | str | None = None,
431431
xrot: float | None = None,
432432
ylabelsize: float | str | None = None,
433433
yrot: float | None = None,
434434
ax: PlotAxes | None = None,
435-
sharex: bool = ...,
435+
sharex: bool = False,
436436
sharey: bool = False,
437-
figsize: tuple[float, float] | None = ...,
438-
layout: tuple[int, int] | None = ...,
437+
figsize: tuple[float, float] | None = None,
438+
layout: tuple[int, int] | None = None,
439439
bins: int | Sequence[int] = 10,
440440
backend: str | None = None,
441441
legend: bool = False,

pandas-stubs/core/groupby/groupby.pyi

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -177,9 +177,13 @@ class GroupBy(BaseGroupBy[NDFrameT]):
177177
engine_kwargs: WindowingEngineKwargs = None,
178178
) -> NDFrameT: ...
179179
@final
180-
def first(self, numeric_only: bool = False, min_count: int = -1) -> NDFrameT: ...
180+
def first(
181+
self, numeric_only: bool = False, min_count: int = -1, skipna: bool = True
182+
) -> NDFrameT: ...
181183
@final
182-
def last(self, numeric_only: bool = False, min_count: int = -1) -> NDFrameT: ...
184+
def last(
185+
self, numeric_only: bool = False, min_count: int = -1, skipna: bool = True
186+
) -> NDFrameT: ...
183187
@final
184188
def ohlc(self) -> DataFrame: ...
185189
def describe(
@@ -215,11 +219,11 @@ class GroupBy(BaseGroupBy[NDFrameT]):
215219
center: bool | None = False,
216220
win_type: str | None = None,
217221
axis: Axis = 0,
218-
on: str | Index | None = ...,
222+
on: str | Index | None = None,
219223
closed: IntervalClosedType | None = None,
220224
method: CalculationMethod = "single",
221225
*,
222-
selection: IndexLabel | None = ...,
226+
selection: IndexLabel | None = None,
223227
) -> RollingGroupby[NDFrameT]: ...
224228
@final
225229
def expanding(
@@ -256,7 +260,7 @@ class GroupBy(BaseGroupBy[NDFrameT]):
256260
def quantile(
257261
self,
258262
q: float | AnyArrayLike = 0.5,
259-
interpolation: str = ...,
263+
interpolation: str = "linear",
260264
numeric_only: bool = False,
261265
) -> NDFrameT: ...
262266
@final
@@ -323,8 +327,8 @@ class GroupBy(BaseGroupBy[NDFrameT]):
323327
@final
324328
def sample(
325329
self,
326-
n: int | None = ...,
327-
frac: float | None = ...,
330+
n: int | None = None,
331+
frac: float | None = None,
328332
replace: bool = False,
329333
weights: Sequence | Series | None = ...,
330334
random_state: RandomState | None = ...,
@@ -371,7 +375,7 @@ class BaseGroupBy(SelectionMixin[NDFrameT], GroupByIndexingMixin):
371375
**kwargs: Any,
372376
) -> T: ...
373377
@final
374-
def get_group(self, name, obj: NDFrameT | None = None) -> NDFrameT: ...
378+
def get_group(self, name) -> NDFrameT: ...
375379
@final
376380
def __iter__(self) -> Iterator[tuple[Hashable, NDFrameT]]: ...
377381
@overload

pandas-stubs/core/indexes/base.pyi

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,16 +44,19 @@ from pandas._libs.interval import _OrderableT
4444
from pandas._typing import (
4545
S1,
4646
AnyAll,
47+
ArrayLike,
4748
AxesData,
4849
DropKeep,
4950
DtypeArg,
5051
DtypeObj,
5152
HashableT,
53+
IgnoreRaise,
5254
Label,
5355
Level,
5456
MaskType,
5557
NaPosition,
5658
ReindexMethod,
59+
Scalar,
5760
SliceType,
5861
TimedeltaDtypeArg,
5962
TimestampDtypeArg,
@@ -290,9 +293,9 @@ class Index(IndexOpsMixin[S1]):
290293
def take(
291294
self,
292295
indices,
293-
axis: int = ...,
296+
axis: int = 0,
294297
allow_fill: bool = True,
295-
fill_value=None,
298+
fill_value: Scalar | None = None,
296299
**kwargs,
297300
): ...
298301
def repeat(self, repeats, axis=...): ...
@@ -397,7 +400,7 @@ class Index(IndexOpsMixin[S1]):
397400
@property
398401
def array(self) -> ExtensionArray: ...
399402
def memory_usage(self, deep: bool = False): ...
400-
def where(self, cond, other=None): ...
403+
def where(self, cond, other: Scalar | ArrayLike | None = None): ...
401404
def __contains__(self, key) -> bool: ...
402405
@final
403406
def __setitem__(self, key, value) -> None: ...
@@ -434,12 +437,19 @@ class Index(IndexOpsMixin[S1]):
434437
def groupby(self, values) -> dict[Hashable, np.ndarray]: ...
435438
def map(self, mapper, na_action=...) -> Index: ...
436439
def isin(self, values, level=...) -> np_ndarray_bool: ...
437-
def slice_indexer(self, start=None, end=None, step=None): ...
440+
def slice_indexer(
441+
self,
442+
start: Label | None = None,
443+
end: Label | None = None,
444+
step: int | None = None,
445+
): ...
438446
def get_slice_bound(self, label, side): ...
439-
def slice_locs(self, start: SliceType = None, end: SliceType = None, step=...): ...
447+
def slice_locs(
448+
self, start: SliceType = None, end: SliceType = None, step: int | None = None
449+
): ...
440450
def delete(self, loc) -> Self: ...
441451
def insert(self, loc, item) -> Self: ...
442-
def drop(self, labels, errors: _str = "raise") -> Self: ...
452+
def drop(self, labels, errors: IgnoreRaise = "raise") -> Self: ...
443453
@property
444454
def shape(self) -> tuple[int, ...]: ...
445455
# Extra methods from old stubs

pandas-stubs/core/indexes/category.pyi

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ from collections.abc import (
33
Iterable,
44
)
55
from typing import (
6-
Literal,
76
final,
87
)
98

@@ -39,7 +38,6 @@ class CategoricalIndex(ExtensionIndex[S1], accessor.PandasDelegate):
3938
def __array__(
4039
self, dtype: DtypeArg = ..., copy: bool | None = ...
4140
) -> np.ndarray: ...
42-
def astype(self, dtype: DtypeArg, copy: bool = True) -> Index: ...
4341
def fillna(self, value=...): ...
4442
@property
4543
def is_unique(self) -> bool: ...
@@ -48,9 +46,6 @@ class CategoricalIndex(ExtensionIndex[S1], accessor.PandasDelegate):
4846
@property
4947
def is_monotonic_decreasing(self) -> bool: ...
5048
def unique(self, level=...): ...
51-
def duplicated(self, keep: Literal["first", "last", False] = "first"): ...
52-
@final
53-
def where(self, cond, other=None): ...
5449
def reindex(self, target, method=..., level=..., limit=..., tolerance=...): ...
5550
@final
5651
def get_indexer(self, target, method=..., limit=..., tolerance=...): ...

pandas-stubs/core/indexes/datetimelike.pyi

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
1-
import numpy as np
21
from pandas.core.indexes.extension import ExtensionIndex
32
from pandas.core.indexes.timedeltas import TimedeltaIndex
43
from typing_extensions import Self
54

65
from pandas._libs.tslibs import BaseOffset
76
from pandas._typing import (
87
S1,
9-
AxisIndex,
108
TimeUnit,
119
)
1210

@@ -17,34 +15,6 @@ class DatetimeIndexOpsMixin(ExtensionIndex[S1]):
1715
def freqstr(self) -> str | None: ...
1816
@property
1917
def is_all_dates(self) -> bool: ...
20-
def min(
21-
self,
22-
axis: AxisIndex | None = ...,
23-
skipna: bool = True,
24-
*args,
25-
**kwargs,
26-
) -> S1: ...
27-
def argmin(
28-
self,
29-
axis: AxisIndex | None = ...,
30-
skipna: bool = True,
31-
*args,
32-
**kwargs,
33-
) -> np.int64: ...
34-
def max(
35-
self,
36-
axis: AxisIndex | None = ...,
37-
skipna: bool = True,
38-
*args,
39-
**kwargs,
40-
) -> S1: ...
41-
def argmax(
42-
self,
43-
axis: AxisIndex | None = ...,
44-
skipna: bool = True,
45-
*args,
46-
**kwargs,
47-
) -> np.int64: ...
4818
def __rsub__( # type: ignore[override]
4919
self, other: DatetimeIndexOpsMixin
5020
) -> TimedeltaIndex: ...

pandas-stubs/core/indexes/datetimes.pyi

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ from pandas.core.series import (
2828
)
2929
from typing_extensions import Self
3030

31+
from pandas._libs.tslibs.offsets import DateOffset
3132
from pandas._typing import (
3233
AxesData,
3334
DateAndDatetimeLike,
@@ -85,8 +86,8 @@ class DatetimeIndex(DatetimeTimedeltaMixin[Timestamp], DatetimeIndexProperties):
8586
def indexer_at_time(self, time, asof: bool = ...): ...
8687
def indexer_between_time(
8788
self,
88-
start_time,
89-
end_time,
89+
start_time: datetime | str,
90+
end_time: datetime | str,
9091
include_start: bool = True,
9192
include_end: bool = True,
9293
): ...
@@ -96,7 +97,9 @@ class DatetimeIndex(DatetimeTimedeltaMixin[Timestamp], DatetimeIndexProperties):
9697
def tzinfo(self) -> _tzinfo | None: ...
9798
@property
9899
def dtype(self) -> np.dtype | DatetimeTZDtype: ...
99-
def shift(self, periods: int = 1, freq=...) -> Self: ...
100+
def shift(
101+
self, periods: int = 1, freq: DateOffset | Timedelta | str | None = None
102+
) -> Self: ...
100103

101104
def date_range(
102105
start: str | DateAndDatetimeLike | None = None,

pandas-stubs/core/indexes/multi.pyi

Lines changed: 9 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ from pandas._typing import (
1919
Axes,
2020
DropKeep,
2121
Dtype,
22-
DtypeArg,
2322
HashableT,
23+
IndexLabel,
2424
Level,
2525
MaskType,
2626
NaPosition,
@@ -132,27 +132,17 @@ class MultiIndex(Index):
132132
def __getitem__( # pyright: ignore[reportIncompatibleMethodOverride]
133133
self, key: int
134134
) -> tuple: ...
135-
def take(
136-
self,
137-
indices,
138-
axis: int = ...,
139-
allow_fill: bool = True,
140-
fill_value=None,
141-
**kwargs,
142-
): ...
143135
def append(self, other): ...
144136
def argsort(self, *args, **kwargs): ...
145137
def repeat(self, repeats, axis=...): ...
146-
@final
147-
def where(self, cond, other=None) -> None: ...
148-
def drop(self, codes, level=None, errors: str = "raise") -> Self: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride]
138+
def drop(self, codes, level: Level | None = None, errors: str = "raise") -> Self: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride]
149139
def swaplevel(self, i: int = -2, j: int = -1): ...
150140
def reorder_levels(self, order): ...
151141
def sortlevel(
152142
self,
153143
level: Level | Sequence[Level] = 0,
154144
ascending: bool = True,
155-
sort_remaining: bool = ...,
145+
sort_remaining: bool = True,
156146
na_position: NaPosition = "first",
157147
): ...
158148
@final
@@ -162,20 +152,15 @@ class MultiIndex(Index):
162152
def get_slice_bound(
163153
self, label: Hashable | Sequence[Hashable], side: str
164154
) -> int: ...
165-
def get_loc_level(self, key, level=..., drop_level: bool = True): ...
155+
def get_loc_level(
156+
self, key, level: Level | list[Level] | None = None, drop_level: bool = True
157+
): ...
166158
def get_locs(self, seq): ...
167-
def truncate(self, before=None, after=None): ...
159+
def truncate(
160+
self, before: IndexLabel | None = None, after: IndexLabel | None = None
161+
): ...
168162
def equals(self, other) -> bool: ...
169163
def equal_levels(self, other): ...
170-
@final
171-
def union(self, other, sort=None): ... # pyrefly: ignore
172-
@final
173-
def intersection( # pyright: ignore[reportIncompatibleMethodOverride]
174-
self, other: list | Self, sort: bool | None = False
175-
): ...
176-
@final
177-
def difference(self, other, sort=None): ...
178-
def astype(self, dtype: DtypeArg, copy: bool = True) -> Self: ...
179164
def insert(self, loc, item): ...
180165
def delete(self, loc): ...
181166
def isin(self, values, level=...) -> np_ndarray_bool: ...

pandas-stubs/core/indexes/period.pyi

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ class PeriodIndex(DatetimeIndexOpsMixin[pd.Period], PeriodIndexFieldOps):
5757
@final
5858
def __array_wrap__(self, result, context=...): ...
5959
def asof_locs(self, where, mask): ...
60-
def astype(self, dtype, copy: bool = True): ...
6160
def searchsorted(self, value, side: str = ..., sorter=...): ...
6261
@property
6362
def is_full(self) -> bool: ...
@@ -77,9 +76,6 @@ class PeriodIndex(DatetimeIndexOpsMixin[pd.Period], PeriodIndexFieldOps):
7776
return_indexers: bool = ...,
7877
sort: bool = ...,
7978
): ...
80-
@final
81-
def difference(self, other, sort=None): ...
82-
def memory_usage(self, deep: bool = False): ...
8379
@property
8480
def freqstr(self) -> str: ...
8581
def shift(self, periods: int = 1, freq=...) -> Self: ...

pandas-stubs/core/indexes/range.pyi

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ class RangeIndex(Index[int]):
5353
@final
5454
def get_indexer(self, target, method=..., limit=..., tolerance=...): ...
5555
def tolist(self): ...
56-
def copy(self, name: Hashable = ..., deep: bool = False, dtype=..., **kwargs): ...
5756
def min(self, axis=..., skipna: bool = ..., *args, **kwargs): ...
5857
def max(self, axis=..., skipna: bool = ..., *args, **kwargs): ...
5958
def argsort(self, *args, **kwargs): ...
@@ -79,7 +78,7 @@ class RangeIndex(Index[int]):
7978
def any(self) -> bool: ...
8079
@final
8180
def union( # pyrefly: ignore
82-
self, other: list[HashableT] | Index, sort=None
81+
self, other: list[HashableT] | Index, sort: bool | None = None
8382
) -> Index | Index[int] | RangeIndex: ...
8483
@overload # type: ignore[override]
8584
def __getitem__(

pandas-stubs/core/indexes/timedeltas.pyi

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,6 @@ class TimedeltaIndex(DatetimeTimedeltaMixin[Timedelta], TimedeltaIndexProperties
7070
self, other: dt.timedelta | Sequence[dt.timedelta]
7171
) -> Index[int]: ...
7272
def __rfloordiv__(self, other: dt.timedelta | Sequence[dt.timedelta]) -> Index[int]: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride]
73-
def astype(self, dtype, copy: bool = True): ...
7473
def searchsorted(self, value, side: str = ..., sorter=...): ...
7574
@property
7675
def inferred_type(self) -> str: ...
@@ -82,7 +81,7 @@ def timedelta_range(
8281
start: TimedeltaConvertibleTypes | None = None,
8382
end: TimedeltaConvertibleTypes | None = None,
8483
periods: int | None = None,
85-
freq: str | DateOffset | Timedelta | dt.timedelta | None = "D",
84+
freq: str | DateOffset | Timedelta | dt.timedelta | None = None,
8685
name: Hashable | None = None,
8786
closed: Literal["left", "right"] | None = None,
8887
*,

0 commit comments

Comments
 (0)