@@ -42,34 +42,34 @@ def default(self, obj):
4242            return  "" 
4343
4444
45- def  masked_dict (obj , sensitive_keys : list  =  DEFAULT_SENSITIVE_KEYS , message : str  =  DEFAULT_REDACTION_MESSAGE ) ->  dict :
45+ def  masked_dict (
46+     source_dict , sensitive_keys : list  =  DEFAULT_SENSITIVE_KEYS , message : str  =  DEFAULT_REDACTION_MESSAGE 
47+ ) ->  dict :
4648    """ 
4749    Mask sensitive key / value in log entries. 
4850
4951    Masks the value of specified key. 
5052    obj: a dict or a string representation of a dict, or None 
5153    """ 
52-     if  type (obj ) ==  str :
53-         obj  =  json .loads (obj )
54+     if  type (source_dict ) ==  str :
55+         source_dict  =  json .loads (source_dict )
5456
55-     if  type (obj ) !=  dict :
56-         raise  TypeError ("obj  must be a dict or a json serializable string" )
57+     if  type (source_dict ) !=  dict :
58+         raise  TypeError ("source_dict  must be a dict or a json serializable string" )
5759
58-     to_mask  =  {}
59-     for  key  in  obj :
60-         value  =  obj [key ]
60+     recursed_dict  =  {}
61+     for  key  in  source_dict :
62+         value  =  source_dict [key ]
6163        if  type (value ) ==  dict :
62-             value  =  masked_dict (obj = value , sensitive_keys = sensitive_keys , message = message )
63-         to_mask [key ] =  value 
64+             value  =  masked_dict (source_dict = value , sensitive_keys = sensitive_keys , message = message )
65+         recursed_dict [key ] =  value 
6466
65-     def  redact (key : str , obj : dict ) ->  dict :
66-         if  key  in  obj :
67-             obj [key ] =  message 
68-         return  obj 
69- 
70-     for  key  in  sensitive_keys :
71-         to_mask  =  redact (key = key , obj = to_mask )
72-     return  to_mask 
67+     for  lower_case_sensitive_key  in  [x .lower () for  x  in  sensitive_keys ]:
68+         if  lower_case_sensitive_key  in  [x .lower () for  x  in  recursed_dict .keys ()]:
69+             for  original_key  in  recursed_dict :
70+                 if  original_key .lower () ==  lower_case_sensitive_key :
71+                     recursed_dict [original_key ] =  message 
72+     return  recursed_dict 
7373
7474
7575def  masked_dict2str (
@@ -79,14 +79,7 @@ def masked_dict2str(
7979    message : str  =  DEFAULT_REDACTION_MESSAGE ,
8080) ->  str :
8181    """Return a JSON encoded string representation of a masked dict.""" 
82-     to_serialize  =  {}
83-     for  key  in  obj :
84-         value  =  obj [key ]
85-         if  type (value ) ==  dict :
86-             value  =  masked_dict (value , sensitive_keys , message = message )
87-         to_serialize [key ] =  value 
88- 
89-     return  json .dumps (masked_dict (to_serialize , sensitive_keys , message = message ), cls = _JSONEncoder , indent = indent )
82+     return  json .dumps (masked_dict (obj , sensitive_keys , message = message ), cls = _JSONEncoder , indent = indent )
9083
9184
9285def  serialized_masked_dict (
0 commit comments