LINE_LENGTH: 79

**********
from typing import Callable, Mapping


class Widget:
    """
    Widget docstring.

    Args:
        foo (str): Primary value.
        bar (int): Secondary value.
        options (tuple): Additional options payload.
        callback (Callable): Callback invoked after processing.
        arg_not_in_init_signature ("MyCustomClassThatHasVeryVeryVeryVeryVeryVeryVeryVeryLongName"):
            Arg

    Attributes:
        qux (dict): Class attribute.
        count (tuple): Count attribute.
        settings (Mapping): Settings payload.
        threshold (float): Threshold attribute.
        prefix (str | None, default='x'): Prefix attribute.
    """

    qux: dict[str, list[int]] = {'alpha': [1, 2]}
    count: tuple[int, ...]
    settings: Mapping[str, tuple[int, ...]]
    threshold: float = 0.75
    # Regression: type-commented attributes keep assigned defaults during
    # Attributes sync, matching function argument default handling.
    prefix = 'x'  # type: str | None

    def __init__(
            self,
            foo: dict[str, list[int]],
            bar: 'PathLike[str]' | None = None,
            *,
            options: tuple[list[int], dict[str, float]] = (
                [1, 2], {'scale': 0.5}
            ),
            callback: Callable[[str, int], bool] | None = None,
    ) -> None:
        """Init."""
        self.foo = foo
        self.bar = bar
        self.options = options
        self.callback = callback


class Both:
    """
    Both class docstring and __init__
    docstring will have a Parameters section,
    and this tool will
    format the type hints and default values in both
    docstrings. Even
    though this is not best
    practice (and some linters will
    report an error), it
    is out of the scope
    of this
    formatter
    to
    fix
    this.

    Args:
        data: The input data
        metadata: The metadata

    Attributes:
        something: Something
        important: Important
    """

    something: tuple[str, ...] = ['a', 'b', "c", "d"]
    important: bool = False

    def __init__(self, data: np.ndarray, metadata: dict[str, Any]) -> None:
        """
        Initialize the class.

        Args:
            data (np.ndarray): The input data
            metadata: The metadata
        """
        pass


**********
from typing import Callable, Mapping


class Widget:
    """Widget docstring.

    Args:
        foo (dict[str, list[int]]): Primary value.
        bar ('PathLike[str]' | None, default=None): Secondary value.
        options (tuple[list[int], dict[str, float]], default=([1, 2], {'scale': 0.5})):
            Additional options payload.
        callback (Callable[[str, int], bool] | None, default=None): Callback
            invoked after processing.
        arg_not_in_init_signature ("MyCustomClassThatHasVeryVeryVeryVeryVeryVeryVeryVeryLongName"):
            Arg

    Attributes:
        qux (dict[str, list[int]], default={'alpha': [1, 2]}): Class attribute.
        count (tuple[int, ...]): Count attribute.
        settings (Mapping[str, tuple[int, ...]]): Settings payload.
        threshold (float, default=0.75): Threshold attribute.
        prefix (str | None, default='x'): Prefix attribute.
    """

    qux: dict[str, list[int]] = {'alpha': [1, 2]}
    count: tuple[int, ...]
    settings: Mapping[str, tuple[int, ...]]
    threshold: float = 0.75
    # Regression: type-commented attributes keep assigned defaults during
    # Attributes sync, matching function argument default handling.
    prefix = 'x'  # type: str | None

    def __init__(
            self,
            foo: dict[str, list[int]],
            bar: 'PathLike[str]' | None = None,
            *,
            options: tuple[list[int], dict[str, float]] = (
                [1, 2], {'scale': 0.5}
            ),
            callback: Callable[[str, int], bool] | None = None,
    ) -> None:
        """Init."""
        self.foo = foo
        self.bar = bar
        self.options = options
        self.callback = callback


class Both:
    """Both class docstring and __init__ docstring will have a Parameters
    section, and this tool will format the type hints and default values in
    both docstrings. Even though this is not best practice (and some linters
    will report an error), it is out of the scope of this formatter to fix
    this.

    Args:
        data (np.ndarray): The input data
        metadata (dict[str, Any]): The metadata

    Attributes:
        something (tuple[str, ...], default=['a', 'b', "c", "d"]): Something
        important (bool, default=False): Important
    """

    something: tuple[str, ...] = ['a', 'b', "c", "d"]
    important: bool = False

    def __init__(self, data: np.ndarray, metadata: dict[str, Any]) -> None:
        """Initialize the class.

        Args:
            data (np.ndarray): The input data
            metadata (dict[str, Any]): The metadata
        """
        pass
