PyCQA/flake8-bugbear
B031 does not take into account if-else statements
Offen
#465 geöffnet am 24.03.2024
bughelp wanted
Repository-Metriken
- Stars
- (1.116 Sterne)
- PR-Merge-Metriken
- (Durchschn. Merge 4h 17m) (3 gemergte PRs in 30 T)
Beschreibung
Bugbear reports false-positive "more that one" usage of the generator even if it occurs inside 2 different branches of the if-else statement.
This code
import itertools
for _, group in itertools.groupby([]):
if True:
print(group, True)
else:
print(group, False)
produces
b031.py:7:15: B031 Using the generator returned from `itertools.groupby()` more than once will do nothing on the second usage. Save the result to a list, if the result is needed multiple times.
but it's obvious that group cannot be used twice here.
flake8 --version:
7.0.0 (flake8-bugbear: 24.2.6, mccabe: 0.7.0, pycodestyle: 2.11.1, pyflakes: 3.2.0) CPython 3.11.2 on Linux