Skip to content

Commit aa1e62c

Browse files
committed
Default simple function to filter params by key
1 parent fdaa65a commit aa1e62c

2 files changed

Lines changed: 28 additions & 2 deletions

File tree

python/humbug/blacklist.py

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,30 @@ def generate_filter_parameters_by_key_fn(
1818

1919
def filter_parameters_by_key(
2020
parameters: Dict[str, Any],
21+
) -> Dict[str, Any]:
22+
return {
23+
k: str(v)
24+
for k, v in parameters.items()
25+
if k.lower() not in lowercase_blacklist_keys
26+
}
27+
28+
return filter_parameters_by_key
29+
30+
31+
def generate_filter_parameters_by_key_inner_fn(
32+
blacklist_keys: List[str],
33+
) -> Callable[[Dict[str, Any]], Dict[str, Any]]:
34+
"""
35+
Generates a parameter filter function which filters out the parameters whose names are in the given
36+
list of blacklist_keys for 1st and 2nd layer of dictionary. Expands pydantic model to dictionary.
37+
38+
The comparison to blacklist_keys is case insensitive.
39+
"""
40+
41+
lowercase_blacklist_keys = [key.lower() for key in blacklist_keys]
42+
43+
def filter_parameters_by_key_inner(
44+
parameters: Dict[str, Any],
2145
) -> Dict[str, Any]:
2246
"""
2347
Applies blacklist filter to provided parameters and to 2nd layer of
@@ -54,4 +78,4 @@ def filter_parameters_by_key(
5478

5579
return whitelisted_parameters
5680

57-
return filter_parameters_by_key
81+
return filter_parameters_by_key_inner

python/humbug/test_report.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@ def setUp(self):
1111
name="TestReporter",
1212
consent=self.consent,
1313
tags=["humbug-unit-test"],
14-
blacklist_fn=blacklist.generate_filter_parameters_by_key_fn(["private"]),
14+
blacklist_fn=blacklist.generate_filter_parameters_by_key_inner_fn(
15+
["private"]
16+
),
1517
)
1618
self.reporter.publish = MagicMock()
1719

0 commit comments

Comments
 (0)