You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
(For context, Python allows chaining any of the comparison operators ==, !=, is, is not, >, >=, <, <=, in, not in. a OP b OP c is equivalent to a OP b and b OP c except that b is only evaluated once.)
I find it hard to imagine a use case for combining is and != in the same chained comparison, so it would be useful for linters to warn about this and similar patterns.
In my company's internal linter, I implemented a check that disallows all chained comparison pairs except == + ==, is + is, </<= + </<=, and >/>= + >/>=.
It found one false positive where someone had intentionally written == + !=, but I'd argue it's clearer with and:
I think this probably makes more sense in flake8-bugbear (slightly more opinionated checks) but I definitely agree on making this an error! (it could go here as well, might want to check popular packages to see how many would get tripped by a new check)
I was pointed to this buggy line:
(For context, Python allows chaining any of the comparison operators
==
,!=
,is
,is not
,>
,>=
,<
,<=
,in
,not in
.a OP b OP c
is equivalent toa OP b and b OP c
except thatb
is only evaluated once.)I find it hard to imagine a use case for combining
is
and!=
in the same chained comparison, so it would be useful for linters to warn about this and similar patterns.In my company's internal linter, I implemented a check that disallows all chained comparison pairs except
==
+==
,is
+is
,<
/<=
+<
/<=
, and>
/>=
+>
/>=
.It found one false positive where someone had intentionally written
==
+!=
, but I'd argue it's clearer withand
:Would pyflakes be interested in a similar check?
The text was updated successfully, but these errors were encountered: