Comments (3)
Agree this would be nice to add to B018. Thanks for reporting.
from flake8-bugbear.
I remembered that internally in our codebase we have a similar lint rule. It triggers on these types:
ast.Attribute, ast.Lambda, ast.Dict, ast.Set, ast.Compare, ast.Num, ast.Subscript, ast.List, ast.Tuple, ast.Name
So that's missing a few that I mentioned above. We also flag ast.Call nodes if the called function is one of sorted
, reversed
, map
, and filter
. If you write sorted(x)
on a line by itself, you probably meant x.sort()
.
from flake8-bugbear.
"multiple variables" isn't a great description of what's going on here. If you look at the code for B018, it triggers if a statement consists only of an expression that is a set/list/tuple/dict literal or a non-str constant. (The original post claims that B018 triggers for +1
and -1
, but I don't think it does.)
We could expand the rule to some other kinds of nodes:
- UnaryOp, like
+1
,not x
,~3
. I don't know of any code patterns that would trigger false positives. - BinOp, like
1 + 1
or2 << 3
. This is what the OP is asking for. This could have false positives with Airflow code, where you dodag << task
to add a task to a dag. - Compare, like
1 < 2
. Can't think of any problems with this one. - BoolOp, like
a and b
. People could be using this for conditional execution. - GeneratorExp, like
(x for x in y)
. That is definitely useless. - JoinedStr, which is an f-string. Having an f-string in a line by itself doesn't have any use.
So we could definitely expand B018 to a few more kinds of AST nodes, but there's some room for false positives.
from flake8-bugbear.
Related Issues (20)
- False positive `B023` with loop's local variable HOT 3
- B109: Documentation/error message is wrong about the violation scope HOT 2
- False-positive B902 on custom metaclass extending ABCMeta HOT 8
- Add flake8 to pre-commit config HOT 3
- B902: False positive when using the attrs library HOT 6
- Policy on bugbears in usage of popular third party libraries HOT 2
- B026 False negative on class methods HOT 1
- B017: False negative when "from" imports used HOT 2
- Improve unit test runner HOT 2
- Feature request: a rule for calling super().__init__() in custom exception's __init__() HOT 2
- Feature request: a rule for detecting calls to mutate all-caps "constants" HOT 1
- B035: False positive for comprehensions that use a walrus operator
- Couple new rule suggestions HOT 2
- Rule to detect changes to iterable object of loop HOT 5
- Error in latest version of flake8-bugbear 24.1.15 HOT 4
- B038 false positive in 24.1.15 + 24.1.16 HOT 5
- B909 improvements HOT 4
- B038 false positives HOT 5
- How to handle B015 within pytest.raises blocks
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from flake8-bugbear.