LINE_LENGTH: 79

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


class Widget:
    """
    Widget docstring.

    Parameters
    ----------
    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
    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.

    Parameters
    ----------
    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.

        Parameters
        ----------
        data: np.ndarray
            The input data
        metadata:
            The metadata
        """
        pass

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


class Widget:
    """
    Widget docstring.

    Parameters
    ----------
    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 :
        Prefix attribute.
    """

    qux: dict[str, list[int]] = {'alpha': [1, 2]}
    count: tuple[int, ...]
    settings: Mapping[str, tuple[int, ...]]
    threshold: float = 0.75
    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.

    Parameters
    ----------
    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.

        Parameters
        ----------
        data : np.ndarray
            The input data
        metadata : dict[str, Any]
            The metadata
        """
        pass
