11
11
12
12
13
13
def run () -> int :
14
- language_summaries = []
14
+ language_summaries = {}
15
15
16
16
language_info = yaml .safe_load (LANGUAGES_FILE .read_text ())
17
17
@@ -55,10 +55,11 @@ def run() -> int:
55
55
for translation in merged_sentences ["responses" ]["errors" ].values ()
56
56
)
57
57
58
- usable = (
59
- all (intent_sentence_count [key ] for key in IMPORTANT_INTENTS )
60
- and errors_translated
61
- )
58
+ missing_intents = [
59
+ intent for intent in IMPORTANT_INTENTS if not intent_sentence_count [intent ]
60
+ ]
61
+
62
+ usable = not missing_intents and errors_translated
62
63
63
64
complete = (
64
65
all (value > 0 for value in intent_sentence_count .values ())
@@ -73,20 +74,19 @@ def run() -> int:
73
74
for intent , response_set in used_responses_per_intent .items ()
74
75
}
75
76
76
- language_summaries .append (
77
- {
78
- "language" : language ,
79
- "native_name" : language_info [language ]["nativeName" ],
80
- "leaders" : language_info [language ].get ("leaders" ),
81
- "intents" : intent_sentence_count ,
82
- "used_responses" : used_responses_count ,
83
- "responses" : response_sentence_count ,
84
- "intent_responses_translated" : intent_responses_translated ,
85
- "errors_translated" : errors_translated ,
86
- "usable" : usable ,
87
- "complete" : complete ,
88
- }
89
- )
77
+ language_summaries [language ] = {
78
+ "language" : language ,
79
+ "native_name" : language_info [language ]["nativeName" ],
80
+ "leaders" : language_info [language ].get ("leaders" ),
81
+ "intents" : intent_sentence_count ,
82
+ "used_responses" : used_responses_count ,
83
+ "responses" : response_sentence_count ,
84
+ "intent_responses_translated" : intent_responses_translated ,
85
+ "errors_translated" : errors_translated ,
86
+ "usable" : usable ,
87
+ "complete" : complete ,
88
+ "missing_intents" : missing_intents ,
89
+ }
90
90
91
91
intents = {}
92
92
for intent , info in intent_info .items ():
@@ -100,6 +100,14 @@ def run() -> int:
100
100
{
101
101
"intents" : intents ,
102
102
"languages" : language_summaries ,
103
+ "improvements" : [
104
+ info ["language" ]
105
+ for info in sorted (
106
+ language_summaries .values (),
107
+ key = lambda x : (len (x ["missing_intents" ]), x ["language" ]),
108
+ )
109
+ if info ["missing_intents" ]
110
+ ],
103
111
},
104
112
indent = 2 ,
105
113
)
0 commit comments