Ruff reuse-of-groupby-generator (B031)

reuse-of-groupby-generator в Ruff проверяет код на предупреждение B031. Правило относится к группе flake8-bugbear.

Почему это неправильно

Такая конструкция часто указывает на скрытую ошибку, неожиданное поведение Python или слишком хрупкий код.

Если валидатор показывает это предупреждение, исправьте место, на которое указывает Ruff, ориентируясь на смысл правила reuse-of-groupby-generator и пример ниже.

Пример ошибки

import itertools

for name, group in itertools.groupby(data):
    for _ in range(5):
        do_something_with_the_group(group)

Как правильно

import itertools

for name, group in itertools.groupby(data):
    values = list(group)
    for _ in range(5):
        do_something_with_the_group(values)

Автоисправление

Ruff не предлагает автоисправление для этого правила.