@@ -238,12 +238,30 @@ def evaluate_rule(self, group: List[BaseRule], d: Data) -> ResultInfo:
238238 # analyze result
239239 if tmp .error_status :
240240 result_info .error_status = True
241- bad_type_list .append (tmp .type )
242- bad_name_list .append (tmp .type + "-" + tmp .name )
241+ if isinstance (tmp .type , str ) and isinstance (tmp .name , str ):
242+ bad_type_list .append (tmp .type )
243+ bad_name_list .append (tmp .type + "-" + tmp .name )
244+ elif isinstance (tmp .type , List ) and isinstance (tmp .name , List ):
245+ if len (tmp .type ) != len (tmp .name ):
246+ raise Exception (f'ModelRes.type is not the same length to ModelRes.name.\n type: { tmp .type } \n name: { tmp .name } ' )
247+ for i in range (len (tmp .type )):
248+ bad_type_list .append (tmp .type [i ])
249+ bad_name_list .append (tmp .type [i ] + "-" + tmp .name [i ])
250+ else :
251+ raise Exception ('ModelRes.type and ModelRes.name are not str or List at the same time.' )
243252 bad_reason_list .extend (tmp .reason )
244253 else :
245- good_type_list .append (tmp .type )
246- good_name_list .append (tmp .type + "-" + tmp .name )
254+ if isinstance (tmp .type , str ) and isinstance (tmp .name , str ):
255+ good_type_list .append (tmp .type )
256+ good_name_list .append (tmp .type + "-" + tmp .name )
257+ elif isinstance (tmp .type , List ) and isinstance (tmp .name , List ):
258+ if len (tmp .type ) != len (tmp .name ):
259+ raise Exception (f'ModelRes.type is not the same length to ModelRes.name.\n type: { tmp .type } \n name: { tmp .name } ' )
260+ for i in range (len (tmp .type )):
261+ good_type_list .append (tmp .type [i ])
262+ good_name_list .append (tmp .type [i ] + "-" + tmp .name [i ])
263+ else :
264+ raise Exception ('ModelRes.type and ModelRes.name are not str or List at the same time.' )
247265 good_reason_list .extend (tmp .reason )
248266 if result_info .error_status :
249267 result_info .type_list = list (set (bad_type_list ))
@@ -271,12 +289,32 @@ def evaluate_prompt(self, group: List[BasePrompt], d: Data) -> ResultInfo:
271289 # analyze result
272290 if tmp .error_status :
273291 result_info .error_status = True
274- bad_type_list .append (tmp .type )
275- bad_name_list .append (tmp .type + "-" + tmp .name )
292+ if isinstance (tmp .type , str ) and isinstance (tmp .name , str ):
293+ bad_type_list .append (tmp .type )
294+ bad_name_list .append (tmp .type + "-" + tmp .name )
295+ elif isinstance (tmp .type , List ) and isinstance (tmp .name , List ):
296+ if len (tmp .type ) != len (tmp .name ):
297+ raise Exception (
298+ f'ModelRes.type is not the same length to ModelRes.name.\n type: { tmp .type } \n name: { tmp .name } ' )
299+ for i in range (len (tmp .type )):
300+ bad_type_list .append (tmp .type [i ])
301+ bad_name_list .append (tmp .type [i ] + "-" + tmp .name [i ])
302+ else :
303+ raise Exception ('ModelRes.type and ModelRes.name are not str or List at the same time.' )
276304 bad_reason_list .extend (tmp .reason )
277305 else :
278- good_type_list .append (tmp .type )
279- good_name_list .append (tmp .type + "-" + tmp .name )
306+ if isinstance (tmp .type , str ) and isinstance (tmp .name , str ):
307+ good_type_list .append (tmp .type )
308+ good_name_list .append (tmp .type + "-" + tmp .name )
309+ elif isinstance (tmp .type , List ) and isinstance (tmp .name , List ):
310+ if len (tmp .type ) != len (tmp .name ):
311+ raise Exception (
312+ f'ModelRes.type is not the same length to ModelRes.name.\n type: { tmp .type } \n name: { tmp .name } ' )
313+ for i in range (len (tmp .type )):
314+ good_type_list .append (tmp .type [i ])
315+ good_name_list .append (tmp .type [i ] + "-" + tmp .name [i ])
316+ else :
317+ raise Exception ('ModelRes.type and ModelRes.name are not str or List at the same time.' )
280318 good_reason_list .extend (tmp .reason )
281319 if result_info .error_status :
282320 result_info .type_list = list (set (bad_type_list ))
0 commit comments