diff --git a/pandas/core/generic.py b/pandas/core/generic.py index 62ef9c91770b6..6b59841c909d6 100644 --- a/pandas/core/generic.py +++ b/pandas/core/generic.py @@ -7367,16 +7367,124 @@ def _clip_with_one_bound(self, threshold, method, axis, inplace): threshold = align_method_FRAME(self, threshold, axis, flex=None)[1] return self.where(subset, threshold, axis=axis, inplace=inplace) + @overload + def clip( + self: FrameOrSeries, + lower=..., + upper=..., + axis: Axis | None = ..., + inplace: Literal[False] = ..., + *args, + **kwargs, + ) -> FrameOrSeries: + ... + + @overload + def clip( + self: FrameOrSeries, + lower, + *, + axis: Axis | None, + inplace: Literal[True], + **kwargs, + ) -> None: + ... + + @overload + def clip( + self: FrameOrSeries, + lower, + *, + inplace: Literal[True], + **kwargs, + ) -> None: + ... + + @overload + def clip( + self: FrameOrSeries, + *, + upper, + axis: Axis | None, + inplace: Literal[True], + **kwargs, + ) -> None: + ... + + @overload + def clip( + self: FrameOrSeries, + *, + upper, + inplace: Literal[True], + **kwargs, + ) -> None: + ... + + @overload + def clip( + self: FrameOrSeries, + *, + axis: Axis | None, + inplace: Literal[True], + **kwargs, + ) -> None: + ... + + @overload + def clip( + self: FrameOrSeries, + lower, + upper, + axis: Axis | None, + inplace: Literal[True], + *args, + **kwargs, + ) -> None: + ... + + @overload + def clip( + self: FrameOrSeries, + lower, + upper, + *, + inplace: Literal[True], + **kwargs, + ) -> None: + ... + + @overload + def clip( + self: FrameOrSeries, + *, + inplace: Literal[True], + **kwargs, + ) -> None: + ... + + @overload + def clip( + self: FrameOrSeries, + lower=..., + upper=..., + axis: Axis | None = ..., + inplace: bool_t = ..., + *args, + **kwargs, + ) -> FrameOrSeries | None: + ... + @final def clip( self: FrameOrSeries, lower=None, upper=None, - axis=None, + axis: Axis | None = None, inplace: bool_t = False, *args, **kwargs, - ) -> FrameOrSeries: + ) -> FrameOrSeries | None: """ Trim values at input threshold(s).