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,9 +17,11 @@ 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):
return [async_redact_data(val, to_redact) for val in data]
redacted = {**data}
if isinstance(redacted, dict):
for key, value in redacted.items(): for key, value in redacted.items():
if key in to_redact: if key in to_redact:
redacted[key] = REDACTED redacted[key] = REDACTED
@@ -28,7 +29,5 @@ def async_redact_data(data: T, to_redact: Iterable[Any]) -> T:
redacted[key] = async_redact_data(value, to_redact) redacted[key] = async_redact_data(value, to_redact)
elif isinstance(value, list): elif isinstance(value, list):
redacted[key] = [async_redact_data(item, to_redact) for item in value] 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 redacted return redacted