Ruff complex-structure (C901)

complex-structure в Ruff проверяет код на предупреждение C901. Правило относится к группе mccabe.

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

Слишком высокая цикломатическая сложность усложняет тестирование, понимание и изменение функции.

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

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

def foo(a, b, c):
    if a:
        if b:
            if c:
                return 1
            else:
                return 2
        else:
            return 3
    else:
        return 4

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

def foo(a, b, c):
    if not a:
        return 4
    if not b:
        return 3
    if not c:
        return 2
    return 1

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

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