PyCQA/flake8-bugbear

B031 flagged on non-itertools groupby

Ouverte

#356 ouverte le 15 févr. 2023

 (3 commentaires) (0 réaction) (0 personne assignée)Python (116 forks)github user discovery
enhancementhelp wanted

Métriques du dépôt

Stars
 (1 116 étoiles)
Métriques de merge PR
 (Merge moyen 4h 17m) (3 PRs mergées en 30 j)

Description

Recent B031 addition: https://github.com/PyCQA/flake8-bugbear/pull/347

A code that defines a groupby function (not itertools.groupby) will still raise B031 error.

Example:

def groupby(x, y):
    return dict().items()


for _, v in groupby(None, None):
    if v:
        ...
    if v:
        ...

Then:

$ flake8 example.py
example.py:8:8: 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.

flake8: 6.0.0, flake8-bugbear: 23.2.13

Perhaps we can have a better inspection so the error is not raised in such cases?

Guide contributeur