1 """Diagnostic utilities."""
3 from __future__
import annotations
5 from collections.abc
import Iterable, Mapping
6 from typing
import Any, cast, overload
10 from .const
import REDACTED
23 """Redact sensitive data in a dict."""
24 if not isinstance(data, (Mapping, list)):
27 if isinstance(data, list):
32 for key, value
in redacted.items():
35 if isinstance(value, str)
and not value:
38 redacted[key] = REDACTED
39 elif isinstance(value, Mapping):
41 elif isinstance(value, list):
44 return cast(_T, redacted)
dict async_redact_data(Mapping data, Iterable[Any] to_redact)