From e2c500cd6e2bac43c50704b31048b1bfb8d2a753 Mon Sep 17 00:00:00 2001 From: Jamie Rasmussen Date: Tue, 14 Jan 2025 03:37:25 -0600 Subject: [PATCH] fix(weave): don't check non-string dict keys for sensitive key redaction --- weave/trace/serialize.py | 4 ++-- weave/trace/weave_client.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/weave/trace/serialize.py b/weave/trace/serialize.py index ae8afa0e12e8..77d58bd03a25 100644 --- a/weave/trace/serialize.py +++ b/weave/trace/serialize.py @@ -148,7 +148,7 @@ def dictify( elif isinstance(obj, dict): dict_result = {} for k, v in obj.items(): - if should_redact(k): + if isinstance(k, str) and should_redact(k): dict_result[k] = REDACTED_VALUE else: dict_result[k] = dictify(v, maxdepth, depth + 1, seen) @@ -160,7 +160,7 @@ def dictify( if isinstance(as_dict, dict): to_dict_result = {} for k, v in as_dict.items(): - if should_redact(k): + if isinstance(k, str) and should_redact(k): to_dict_result[k] = REDACTED_VALUE elif maxdepth == 0 or depth < maxdepth: to_dict_result[k] = dictify(v, maxdepth, depth + 1) diff --git a/weave/trace/weave_client.py b/weave/trace/weave_client.py index b3f441664fbf..101f9076a677 100644 --- a/weave/trace/weave_client.py +++ b/weave/trace/weave_client.py @@ -1711,7 +1711,7 @@ def redact_sensitive_keys(obj: Any) -> Any: if isinstance(obj, dict): dict_res = {} for k, v in obj.items(): - if should_redact(k): + if isinstance(k, str) and should_redact(k): dict_res[k] = REDACTED_VALUE else: dict_res[k] = redact_sensitive_keys(v)