23
23
24
24
def auto_construct_defaults (
25
25
spoken_forms : dict [str , ListToSpokenForms ],
26
- handle_new_values : Callable [[list [SpokenFormEntry ]], None ],
26
+ handle_new_values : Callable [[str , list [SpokenFormEntry ]], None ],
27
27
f : Callable [
28
28
Concatenate [str , ListToSpokenForms , Callable [[list [SpokenFormEntry ]], None ], P ],
29
29
R ,
@@ -47,7 +47,13 @@ def auto_construct_defaults(
47
47
48
48
def ret (filename : str , * args : P .args , ** kwargs : P .kwargs ) -> R :
49
49
default_values = spoken_forms [filename ]
50
- return f (filename , default_values , handle_new_values , * args , ** kwargs )
50
+ return f (
51
+ filename ,
52
+ default_values ,
53
+ lambda new_values : handle_new_values (filename , new_values ),
54
+ * args ,
55
+ ** kwargs ,
56
+ )
51
57
52
58
return ret
53
59
@@ -76,7 +82,7 @@ def update():
76
82
spoken_forms = json .load (file )
77
83
78
84
initialized = False
79
- custom_spoken_forms : list [SpokenFormEntry ] = []
85
+ custom_spoken_forms : dict [ str , list [SpokenFormEntry ]] = {}
80
86
spoken_forms_output = SpokenFormsOutput ()
81
87
spoken_forms_output .init ()
82
88
@@ -88,13 +94,14 @@ def update_spoken_forms_output():
88
94
"id" : entry .id ,
89
95
"spokenForms" : entry .spoken_forms ,
90
96
}
91
- for entry in custom_spoken_forms
97
+ for spoken_form_list in custom_spoken_forms .values ()
98
+ for entry in spoken_form_list
92
99
if entry .list_name in LIST_TO_TYPE_MAP
93
100
]
94
101
)
95
102
96
- def handle_new_values (values : list [SpokenFormEntry ]):
97
- custom_spoken_forms . extend ( values )
103
+ def handle_new_values (csv_name : str , values : list [SpokenFormEntry ]):
104
+ custom_spoken_forms [ csv_name ] = values
98
105
if initialized :
99
106
# On first run, we just do one update at the end, so we suppress
100
107
# writing until we get there
0 commit comments