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
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
The text was updated successfully, but these errors were encountered:
On a related note, I am also getting false positive for code that only type-annotates the iterable. It iterates only once, but B031 is triggered:
for form_id, form_obs in groupby(observations, key=lambda obs: obs.form):
form_id: int
form_obs: Iterable[Observation]
pks: Iterable[int] = list(o.pk for o in form_obs)
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
produces
but it's obvious that
group
cannot be used twice here.flake8 --version:
The text was updated successfully, but these errors were encountered: