PyCQA/flake8-bugbear

B031 flagged on non-itertools groupby

Aberta

#356 aberto em 15 de fev. de 2023

 (3 comentários) (0 reação) (0 responsável)Python (116 forks)github user discovery
enhancementhelp wanted

Métricas do repositório

Stars
 (1.116 estrelas)
Métricas de merge de PR
 (Mesclagem média 4h 17m) (3 fundiu PRs em 30d)

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?

Guia do colaborador