Code review

This commit is contained in:
Aaron Bach
2022-01-28 22:30:54 -07:00
parent 8f98f239ce
commit fd4943c528

View File

@@ -2,7 +2,6 @@
from __future__ import annotations
from collections.abc import Iterable, Mapping
from copy import deepcopy
from typing import Any, TypeVar
from homeassistant.core import callback
@@ -18,17 +17,17 @@ def async_redact_data(data: T, to_redact: Iterable[Any]) -> T:
if not isinstance(data, (Mapping, list)):
return data
redacted = deepcopy(data)
if isinstance(redacted, dict):
for key, value in redacted.items():
if key in to_redact:
redacted[key] = REDACTED
elif isinstance(value, dict):
redacted[key] = async_redact_data(value, to_redact)
elif isinstance(value, list):
redacted[key] = [async_redact_data(item, to_redact) for item in value]
elif isinstance(redacted, list):
if isinstance(data, list):
return [async_redact_data(val, to_redact) for val in data]
redacted = {**data}
for key, value in redacted.items():
if key in to_redact:
redacted[key] = REDACTED
elif isinstance(value, dict):
redacted[key] = async_redact_data(value, to_redact)
elif isinstance(value, list):
redacted[key] = [async_redact_data(item, to_redact) for item in value]
return redacted