Ruff function-call-in-dataclass-default-argument (RUF009)

function-call-in-dataclass-default-argument в Ruff проверяет код на предупреждение RUF009. Правило относится к группе Ruff-specific rules.

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

Эти проверки реализованы самим Ruff и закрывают практические проблемы, которые не относятся к одному внешнему плагину.

Если валидатор показывает это предупреждение, исправьте место, на которое указывает Ruff, ориентируясь на смысл правила function-call-in-dataclass-default-argument и пример ниже.

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

from dataclasses import dataclass


def simple_list() -> list[int]:
    return [1, 2, 3, 4]


@dataclass
class A:
    mutable_default: list[int] = simple_list()

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

from dataclasses import dataclass, field


def creating_list() -> list[int]:
    return [1, 2, 3, 4]


@dataclass
class A:
    mutable_default: list[int] = field(default_factory=creating_list)

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

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