Module adcp.error_sanitization

Sanitizers for public error/account authorization metadata.

Functions

def sanitize_account_authorization(value: Any) ‑> dict[str, typing.Any] | None
Expand source code
def sanitize_account_authorization(value: Any) -> dict[str, Any] | None:
    """Return caller-visible account authorization metadata only."""
    dumped = _dump_public(value)
    if not isinstance(dumped, dict):
        return None
    out = {
        key: dumped[key]
        for key in ACCOUNT_AUTHORIZATION_PUBLIC_KEYS
        if key in dumped and dumped[key] is not None
    }
    return out or None

Return caller-visible account authorization metadata only.

def sanitize_authorization_required_details(details: Any) ‑> dict[str, typing.Any] | None
Expand source code
def sanitize_authorization_required_details(details: Any) -> dict[str, Any] | None:
    """Return public AUTHORIZATION_REQUIRED remediation details only."""
    dumped = _dump_public(details)
    if not isinstance(dumped, dict):
        return None
    out: dict[str, Any] = {}
    for key in AUTHORIZATION_REQUIRED_DETAIL_KEYS:
        if key not in dumped or dumped[key] is None:
            continue
        if key in {"required_connections", "missing_connections"}:
            connections = _sanitize_connection_list(dumped[key])
            if connections:
                out[key] = connections
        else:
            out[key] = dumped[key]
    return out or None

Return public AUTHORIZATION_REQUIRED remediation details only.

def sanitize_error_details(code: str, details: Any) ‑> dict[str, typing.Any] | None
Expand source code
def sanitize_error_details(code: str, details: Any) -> dict[str, Any] | None:
    """Sanitize code-specific error details before emitting them."""
    if code == "AUTHORIZATION_REQUIRED":
        return sanitize_authorization_required_details(details)
    dumped = _dump_public(details)
    return dumped if isinstance(dumped, dict) else None

Sanitize code-specific error details before emitting them.