mirror of
https://github.com/astral-sh/ruff.git
synced 2025-09-29 21:35:58 +00:00

## Summary Implements [FURB136](https://github.com/dosisod/refurb/blob/master/docs/checks.md#furb136-use-min-max) that checks for `if` expressions that can be replaced with `min()` or `max()` calls. See issue #1348 for more information. This implementation diverges from Refurb's original implementation by retaining the order of equal values. For example, Refurb suggest that the following expressions: ```python highest_score1 = score1 if score1 > score2 else score2 highest_score2 = score1 if score1 >= score2 else score2 ``` should be to rewritten as: ```python highest_score1 = max(score1, score2) highest_score2 = max(score1, score2) ``` whereas this implementation provides more correct alternatives: ```python highest_score1 = max(score2, score1) highest_score2 = max(score1, score2) ``` ## Test Plan Unit test checks all eight possibilities.
25 lines
327 B
Python
25 lines
327 B
Python
x = 1
|
|
y = 2
|
|
|
|
x if x > y else y # FURB136
|
|
|
|
x if x >= y else y # FURB136
|
|
|
|
x if x < y else y # FURB136
|
|
|
|
x if x <= y else y # FURB136
|
|
|
|
y if x > y else x # FURB136
|
|
|
|
y if x >= y else x # FURB136
|
|
|
|
y if x < y else x # FURB136
|
|
|
|
y if x <= y else x # FURB136
|
|
|
|
x + y if x > y else y # OK
|
|
|
|
x if (
|
|
x
|
|
> y
|
|
) else y # FURB136
|