Ruff too-many-arguments (PLR0913)

too-many-arguments в Ruff проверяет код на предупреждение PLR0913. Правило относится к группе Pylint.

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

Правило Pylint указывает на возможную ошибку, слишком сложный код или нарушение распространённых соглашений Python.

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

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

def calculate_position(x_pos, y_pos, z_pos, x_vel, y_vel, z_vel, time):
    new_x = x_pos + x_vel * time
    new_y = y_pos + y_vel * time
    new_z = z_pos + z_vel * time
    return new_x, new_y, new_z

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

from typing import NamedTuple


class Vector(NamedTuple):
    x: float
    y: float
    z: float


def calculate_position(pos: Vector, vel: Vector, time: float) -> Vector:
    return Vector(*(p + v * time for p, v in zip(pos, vel)))

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

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