Skip to content

Commit 9ab55b4

Browse files
TYP: Improve clip() return and argument typing. (#40860)
* Improve clip() typing. * Update typing. * More clip overloads. * Add missing axis types
1 parent 059e3dd commit 9ab55b4

File tree

1 file changed

+110
-2
lines changed

1 file changed

+110
-2
lines changed

pandas/core/generic.py

+110-2
Original file line numberDiff line numberDiff line change
@@ -7352,16 +7352,124 @@ def _clip_with_one_bound(self, threshold, method, axis, inplace):
73527352
threshold = align_method_FRAME(self, threshold, axis, flex=None)[1]
73537353
return self.where(subset, threshold, axis=axis, inplace=inplace)
73547354

7355+
@overload
7356+
def clip(
7357+
self: FrameOrSeries,
7358+
lower=...,
7359+
upper=...,
7360+
axis: Axis | None = ...,
7361+
inplace: Literal[False] = ...,
7362+
*args,
7363+
**kwargs,
7364+
) -> FrameOrSeries:
7365+
...
7366+
7367+
@overload
7368+
def clip(
7369+
self: FrameOrSeries,
7370+
lower,
7371+
*,
7372+
axis: Axis | None,
7373+
inplace: Literal[True],
7374+
**kwargs,
7375+
) -> None:
7376+
...
7377+
7378+
@overload
7379+
def clip(
7380+
self: FrameOrSeries,
7381+
lower,
7382+
*,
7383+
inplace: Literal[True],
7384+
**kwargs,
7385+
) -> None:
7386+
...
7387+
7388+
@overload
7389+
def clip(
7390+
self: FrameOrSeries,
7391+
*,
7392+
upper,
7393+
axis: Axis | None,
7394+
inplace: Literal[True],
7395+
**kwargs,
7396+
) -> None:
7397+
...
7398+
7399+
@overload
7400+
def clip(
7401+
self: FrameOrSeries,
7402+
*,
7403+
upper,
7404+
inplace: Literal[True],
7405+
**kwargs,
7406+
) -> None:
7407+
...
7408+
7409+
@overload
7410+
def clip(
7411+
self: FrameOrSeries,
7412+
*,
7413+
axis: Axis | None,
7414+
inplace: Literal[True],
7415+
**kwargs,
7416+
) -> None:
7417+
...
7418+
7419+
@overload
7420+
def clip(
7421+
self: FrameOrSeries,
7422+
lower,
7423+
upper,
7424+
axis: Axis | None,
7425+
inplace: Literal[True],
7426+
*args,
7427+
**kwargs,
7428+
) -> None:
7429+
...
7430+
7431+
@overload
7432+
def clip(
7433+
self: FrameOrSeries,
7434+
lower,
7435+
upper,
7436+
*,
7437+
inplace: Literal[True],
7438+
**kwargs,
7439+
) -> None:
7440+
...
7441+
7442+
@overload
7443+
def clip(
7444+
self: FrameOrSeries,
7445+
*,
7446+
inplace: Literal[True],
7447+
**kwargs,
7448+
) -> None:
7449+
...
7450+
7451+
@overload
7452+
def clip(
7453+
self: FrameOrSeries,
7454+
lower=...,
7455+
upper=...,
7456+
axis: Axis | None = ...,
7457+
inplace: bool_t = ...,
7458+
*args,
7459+
**kwargs,
7460+
) -> FrameOrSeries | None:
7461+
...
7462+
73557463
@final
73567464
def clip(
73577465
self: FrameOrSeries,
73587466
lower=None,
73597467
upper=None,
7360-
axis=None,
7468+
axis: Axis | None = None,
73617469
inplace: bool_t = False,
73627470
*args,
73637471
**kwargs,
7364-
) -> FrameOrSeries:
7472+
) -> FrameOrSeries | None:
73657473
"""
73667474
Trim values at input threshold(s).
73677475

0 commit comments

Comments
 (0)