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 __future__ import annotations
from collections.abc import Iterable, Mapping from collections.abc import Iterable, Mapping
from copy import deepcopy
from typing import Any, TypeVar from typing import Any, TypeVar
from homeassistant.core import callback 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)): if not isinstance(data, (Mapping, list)):
return data return data
redacted = deepcopy(data) if isinstance(data, list):
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):
return [async_redact_data(val, to_redact) for val in data] 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 return redacted