def METHOD_NAME(
    self,
    obj: Union[Team, User],
    attrs: Mapping[str, Iterable[Any]],
    user: User,
    **kwargs: Any,
) -> Mapping[str, Mapping[str, Mapping[int, Mapping[str, str]]]]:
    """
    Convert a user or team's NotificationSettings to a python object
    comprised of primitives. This will backfill all possible notification
    settings with the appropriate defaults.
    Example: {
        "workflow": {
            "project": {
                1: {
                    "email": "always",
                    "slack": "always"
                },
                2: {
                    "email": "subscribe_only",
                    "slack": "subscribe_only"
                }
            }
        }
    }
    :param obj: A user or team.
    :param attrs: The `obj` target's NotificationSettings
    :param user: The user who will be viewing the NotificationSettings.
    :param kwargs: The same `kwargs` as `get_attrs`.
    :returns A mapping. See example.
    """
    data: MutableMapping[
        str, MutableMapping[str, MutableMapping[int, MutableMapping[str, str]]]
    ] = defaultdict(lambda: defaultdict(lambda: defaultdict(dict)))
    # Forgive the variable name, I wanted the following lines to be legible.
    for n in attrs["settings"]:
        # Override the notification settings.
        data[n.type_str][n.scope_str][n.scope_identifier][n.provider_str] = n.value_str
    return data