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
{{ message }}
Repository navigation
Warn about certain sequences of chained comparisons #690
(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)
Activity
asottile commentedon May 4, 2022
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)