Ruff undocumented-public-class (D101)

undocumented-public-class проверяет отсутствие документации для публичных классов.

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

Публичные классы должны быть документированы с помощью docstring, который описывает их назначение и поведение.

Обычно docstring класса должен:

  • Описывать цель класса.
  • Перечислять его публичные атрибуты и методы.

Если кодовая база придерживается стандарта оформления docstring для классов (например, NumPy или Google), следуйте ему для единообразия.

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

class Player:
    def __init__(self, name: str, points: int = 0) -> None:
        self.name: str = name
        self.points: int = points

    def add_points(self, points: int) -> None:
        self.points += points

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

В формате NumPy:

class Player:
    """A player in the game.

    Attributes
    ----------
    name : str
        The name of the player.
    points : int
        The number of points the player has.

    Methods
    -------
    add_points(points: int) -> None
        Add points to the player's score.
    """

    def __init__(self, name: str, points: int = 0) -> None:
        self.name: str = name
        self.points: int = points

    def add_points(self, points: int) -> None:
        self.points += points

Или в формате Google:

class Player:
    """A player in the game.

    Attributes:
        name: The name of the player.
        points: The number of points the player has.
    """

    def __init__(self, name: str, points: int = 0) -> None:
        self.name: str = name
        self.points: int = points

    def add_points(self, points: int) -> None:
        self.points += points