@@ -34,12 +34,13 @@ def fetch_param_from_dict(self, item: dict, param_name: str) -> str:
34
34
if p not in sub :
35
35
return "?"
36
36
sub = sub [p ]
37
- return str (sub )
37
+ return str (sub ) if sub else "?"
38
38
39
39
def dumps (self , item_dict : dict ) -> str :
40
40
41
41
flat_mapping = dict (
42
- [(k , self .fetch_param_from_dict (item_dict , k )) for k , v in self .mapping .items ()])
42
+ [(k , self .fetch_param_from_dict (item_dict , k ))
43
+ for k , v in self .mapping .items ()])
43
44
return self .template_str .format (** flat_mapping )
44
45
45
46
def _mapping_string_to_dict (self , dict_mapping : list , value : str , sub : dict ) -> dict :
@@ -64,8 +65,9 @@ def loads(self, item_str: str) -> dict:
64
65
if key not in self .mapping :
65
66
raise Exception ("Unkown variable in template string" )
66
67
res = {}
67
- for param_name in params .keys ():
68
- self ._mapping_string_to_dict (self .mapping [param_name ].split ('.' ), params [param_name ], res )
68
+ for param_name , val in params .items ():
69
+ if val not in '?' :
70
+ self ._mapping_string_to_dict (self .mapping [param_name ].split ('.' ), params [param_name ], res )
69
71
return res
70
72
71
73
def str_matches_mapping (self , item_str : str ) -> bool :
0 commit comments