2323
2424def auto_construct_defaults (
2525 spoken_forms : dict [str , ListToSpokenForms ],
26- handle_new_values : Callable [[list [SpokenFormEntry ]], None ],
26+ handle_new_values : Callable [[str , list [SpokenFormEntry ]], None ],
2727 f : Callable [
2828 Concatenate [str , ListToSpokenForms , Callable [[list [SpokenFormEntry ]], None ], P ],
2929 R ,
@@ -47,7 +47,13 @@ def auto_construct_defaults(
4747
4848 def ret (filename : str , * args : P .args , ** kwargs : P .kwargs ) -> R :
4949 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+ )
5157
5258 return ret
5359
@@ -76,7 +82,7 @@ def update():
7682 spoken_forms = json .load (file )
7783
7884 initialized = False
79- custom_spoken_forms : list [SpokenFormEntry ] = []
85+ custom_spoken_forms : dict [ str , list [SpokenFormEntry ]] = {}
8086 spoken_forms_output = SpokenFormsOutput ()
8187 spoken_forms_output .init ()
8288
@@ -88,13 +94,14 @@ def update_spoken_forms_output():
8894 "id" : entry .id ,
8995 "spokenForms" : entry .spoken_forms ,
9096 }
91- for entry in custom_spoken_forms
97+ for spoken_form_list in custom_spoken_forms .values ()
98+ for entry in spoken_form_list
9299 if entry .list_name in LIST_TO_TYPE_MAP
93100 ]
94101 )
95102
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
98105 if initialized :
99106 # On first run, we just do one update at the end, so we suppress
100107 # writing until we get there
0 commit comments