@@ -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
0 commit comments