init_code

This commit is contained in:
sky
2025-07-03 17:03:00 +08:00
parent a710c87a2b
commit 89766fe3d1
220 changed files with 479903 additions and 77 deletions

635
lmm_utils/validation.py Normal file
View File

@@ -0,0 +1,635 @@
_ALL_TEXT =[
"meta__upper__FittedShirt",
"meta__upper__Shirt",
"meta__upper__None",
"meta__wb__StraightWB",
"meta__wb__FittedWB",
"meta__wb__None",
"meta__bottom__SkirtCircle",
"meta__bottom__AsymmSkirtCircle",
"meta__bottom__GodetSkirt",
"meta__bottom__Pants",
"meta__bottom__Skirt2",
"meta__bottom__SkirtManyPanels",
"meta__bottom__PencilSkirt",
"meta__bottom__SkirtLevels",
"meta__bottom__None",
"meta__connected__True",
"meta__connected__False",
"waistband__waist__fitted",
"waistband__waist__slightly-loose",
"waistband__waist__loose",
"waistband__width__narrow",
"waistband__width__medium",
"waistband__width__wide",
"fitted_shirt__strapless__True",
"fitted_shirt__strapless__False",
"shirt__length__super-cropped",
"shirt__length__regular",
"shirt__length__long",
"shirt__width__normal",
"shirt__width__relaxed",
"shirt__flare__tight",
"shirt__flare__straight",
"shirt__flare__flared",
"shirt__flare__very-flared",
"collar__f_collar__CircleNeckHalf",
"collar__f_collar__CurvyNeckHalf",
"collar__f_collar__VNeckHalf",
"collar__f_collar__SquareNeckHalf",
"collar__f_collar__TrapezoidNeckHalf",
"collar__f_collar__CircleArcNeckHalf",
"collar__f_collar__Bezier2NeckHalf",
"collar__b_collar__CircleNeckHalf",
"collar__b_collar__CurvyNeckHalf",
"collar__b_collar__VNeckHalf",
"collar__b_collar__SquareNeckHalf",
"collar__b_collar__TrapezoidNeckHalf",
"collar__b_collar__CircleArcNeckHalf",
"collar__b_collar__Bezier2NeckHalf",
"collar__width__very-narrow",
"collar__width__medium",
"collar__width__wide",
"collar__fc_depth__shallow",
"collar__fc_depth__medium",
"collar__fc_depth__deep",
"collar__bc_depth__shallow",
"collar__bc_depth__medium",
"collar__bc_depth__deep",
"collar__fc_angle__acute",
"collar__fc_angle__standard",
"collar__fc_angle__obtuse",
"collar__bc_angle__acute",
"collar__bc_angle__standard",
"collar__bc_angle__obtuse",
"collar__f_bezier_x__left",
"collar__f_bezier_x__center",
"collar__f_bezier_x__right",
"collar__f_bezier_y__top",
"collar__f_bezier_y__center",
"collar__f_bezier_y__bottom",
"collar__b_bezier_x__left",
"collar__b_bezier_x__center",
"collar__b_bezier_x__right",
"collar__b_bezier_y__top",
"collar__b_bezier_y__center",
"collar__b_bezier_y__bottom",
"collar__f_flip_curve__True",
"collar__f_flip_curve__False",
"collar__b_flip_curve__True",
"collar__b_flip_curve__False",
"collar__component__style__Turtle",
"collar__component__style__SimpleLapel",
"collar__component__style__Hood2Panels",
"collar__component__style__None",
"collar__component__depth__shallow",
"collar__component__depth__medium",
"collar__component__depth__deep",
"collar__component__lapel_standing__True",
"collar__component__lapel_standing__False",
"collar__component__hood_depth__shallow",
"collar__component__hood_depth__medium",
"collar__component__hood_depth__deep",
"collar__component__hood_length__short",
"collar__component__hood_length__medium",
"collar__component__hood_length__long",
"sleeve__sleeveless__True",
"sleeve__sleeveless__False",
"sleeve__armhole_shape__ArmholeSquare",
"sleeve__armhole_shape__ArmholeAngle",
"sleeve__armhole_shape__ArmholeCurve",
"sleeve__length__short",
"sleeve__length__half",
"sleeve__length__three-quarter",
"sleeve__length__long",
"sleeve__length__full",
"sleeve__connecting_width__narrow",
"sleeve__connecting_width__medium",
"sleeve__connecting_width__loose",
"sleeve__connecting_width__very-loose",
"sleeve__end_width__closing",
"sleeve__end_width__straight",
"sleeve__end_width__opening",
"sleeve__sleeve_angle__small",
"sleeve__sleeve_angle__medium",
"sleeve__sleeve_angle__large",
"sleeve__opening_dir_mix__negative-twist",
"sleeve__opening_dir_mix__standard",
"sleeve__opening_dir_mix__positive-twist",
"sleeve__standing_shoulder__True",
"sleeve__standing_shoulder__False",
"sleeve__standing_shoulder_len__short",
"sleeve__standing_shoulder_len__medium",
"sleeve__standing_shoulder_len__long",
"sleeve__connect_ruffle__none",
"sleeve__connect_ruffle__some",
"sleeve__connect_ruffle__obvious",
"sleeve__smoothing_coeff__very-smooth",
"sleeve__smoothing_coeff__moderate",
"sleeve__smoothing_coeff__less-smooth",
"sleeve__cuff__type__CuffBand",
"sleeve__cuff__type__CuffSkirt",
"sleeve__cuff__type__CuffBandSkirt",
"sleeve__cuff__type__None",
"sleeve__cuff__top_ruffle__straight",
"sleeve__cuff__top_ruffle__tapered",
"sleeve__cuff__top_ruffle__very_tapered",
"sleeve__cuff__cuff_len__short",
"sleeve__cuff__cuff_len__medium",
"sleeve__cuff__cuff_len__long",
"sleeve__cuff__skirt_fraction__small",
"sleeve__cuff__skirt_fraction__medium",
"sleeve__cuff__skirt_fraction__large",
"sleeve__cuff__skirt_flare__slight",
"sleeve__cuff__skirt_flare__moderate",
"sleeve__cuff__skirt_flare__significant",
"sleeve__cuff__skirt_ruffle__none",
"sleeve__cuff__skirt_ruffle__some",
"left__enable_asym__True",
"left__enable_asym__False",
"left__fitted_shirt__strapless__True",
"left__fitted_shirt__strapless__False",
"left__shirt__width__normal",
"left__shirt__width__relaxed",
"left__shirt__flare__tight",
"left__shirt__flare__straight",
"left__shirt__flare__flared",
"left__shirt__flare__very-flared",
"left__collar__f_collar__CircleNeckHalf",
"left__collar__f_collar__CurvyNeckHalf",
"left__collar__f_collar__VNeckHalf",
"left__collar__f_collar__SquareNeckHalf",
"left__collar__f_collar__TrapezoidNeckHalf",
"left__collar__f_collar__CircleArcNeckHalf",
"left__collar__f_collar__Bezier2NeckHalf",
"left__collar__b_collar__CircleNeckHalf",
"left__collar__b_collar__CurvyNeckHalf",
"left__collar__b_collar__VNeckHalf",
"left__collar__b_collar__SquareNeckHalf",
"left__collar__b_collar__TrapezoidNeckHalf",
"left__collar__b_collar__CircleArcNeckHalf",
"left__collar__b_collar__Bezier2NeckHalf",
"left__collar__width__narrow",
"left__collar__width__medium",
"left__collar__width__wide",
"left__collar__fc_angle__acute",
"left__collar__fc_angle__standard",
"left__collar__fc_angle__obtuse",
"left__collar__bc_angle__acute",
"left__collar__bc_angle__standard",
"left__collar__bc_angle__obtuse",
"left__collar__f_bezier_x__left",
"left__collar__f_bezier_x__center",
"left__collar__f_bezier_x__right",
"left__collar__f_bezier_y__top",
"left__collar__f_bezier_y__center",
"left__collar__f_bezier_y__bottom",
"left__collar__b_bezier_x__left",
"left__collar__b_bezier_x__center",
"left__collar__b_bezier_x__right",
"left__collar__b_bezier_y__top",
"left__collar__b_bezier_y__center",
"left__collar__b_bezier_y__bottom",
"left__collar__f_flip_curve__True",
"left__collar__f_flip_curve__False",
"left__collar__b_flip_curve__True",
"left__collar__b_flip_curve__False",
"left__sleeve__sleeveless__True",
"left__sleeve__sleeveless__False",
"left__sleeve__armhole_shape__ArmholeSquare",
"left__sleeve__armhole_shape__ArmholeAngle",
"left__sleeve__armhole_shape__ArmholeCurve",
"left__sleeve__length__short",
"left__sleeve__length__half",
"left__sleeve__length__three-quarter",
"left__sleeve__length__long",
"left__sleeve__length__full",
"left__sleeve__connecting_width__narrow",
"left__sleeve__connecting_width__medium",
"left__sleeve__connecting_width__loose",
"left__sleeve__connecting_width__very-loose",
"left__sleeve__end_width__closing",
"left__sleeve__end_width__straight",
"left__sleeve__end_width__opening",
"left__sleeve__sleeve_angle__small",
"left__sleeve__sleeve_angle__medium",
"left__sleeve__sleeve_angle__large",
"left__sleeve__opening_dir_mix__negative-twist",
"left__sleeve__opening_dir_mix__standard",
"left__sleeve__opening_dir_mix__positive-twist",
"left__sleeve__standing_shoulder__True",
"left__sleeve__standing_shoulder__False",
"left__sleeve__standing_shoulder_len__short",
"left__sleeve__standing_shoulder_len__medium",
"left__sleeve__standing_shoulder_len__long",
"left__sleeve__connect_ruffle__none",
"left__sleeve__connect_ruffle__some",
"left__sleeve__connect_ruffle__obvious",
"left__sleeve__smoothing_coeff__very-smooth",
"left__sleeve__smoothing_coeff__moderate",
"left__sleeve__smoothing_coeff__less-smooth",
"left__sleeve__cuff__type__CuffBand",
"left__sleeve__cuff__type__CuffSkirt",
"left__sleeve__cuff__type__CuffBandSkirt",
"left__sleeve__cuff__type__None",
"left__sleeve__cuff__top_ruffle__straight",
"left__sleeve__cuff__top_ruffle__tapered",
"left__sleeve__cuff__top_ruffle__very_tapered",
"left__sleeve__cuff__cuff_len__short",
"left__sleeve__cuff__cuff_len__medium",
"left__sleeve__cuff__cuff_len__long",
"left__sleeve__cuff__skirt_fraction__small",
"left__sleeve__cuff__skirt_fraction__medium",
"left__sleeve__cuff__skirt_fraction__large",
"left__sleeve__cuff__skirt_flare__slight",
"left__sleeve__cuff__skirt_flare__moderate",
"left__sleeve__cuff__skirt_flare__significant",
"left__sleeve__cuff__skirt_ruffle__none",
"left__sleeve__cuff__skirt_ruffle__some",
"skirt__length__micro",
"skirt__length__mini",
"skirt__length__above-knee",
"skirt__length__knee-length",
"skirt__length__midi",
"skirt__length__floor-length",
"skirt__rise__low",
"skirt__rise__mid",
"skirt__rise__high",
"skirt__ruffle__none",
"skirt__ruffle__moderate",
"skirt__ruffle__rich",
"skirt__bottom_cut__none",
"skirt__bottom_cut__shallow",
"skirt__bottom_cut__deep",
"skirt__flare__none",
"skirt__flare__small",
"skirt__flare__medium",
"skirt__flare__large",
"flare-skirt__length__micro",
"flare-skirt__length__mini",
"flare-skirt__length__above-knee",
"flare-skirt__length__knee-length",
"flare-skirt__length__midi",
"flare-skirt__length__floor-length",
"flare-skirt__rise__low",
"flare-skirt__rise__mid",
"flare-skirt__rise__high",
"flare-skirt__suns__slight",
"flare-skirt__suns__moderate",
"flare-skirt__suns__significant",
"flare-skirt__skirt-many-panels__n_panels__few",
"flare-skirt__skirt-many-panels__n_panels__medium",
"flare-skirt__skirt-many-panels__n_panels__many",
"flare-skirt__skirt-many-panels__panel_curve__inward",
"flare-skirt__skirt-many-panels__panel_curve__straight",
"flare-skirt__skirt-many-panels__panel_curve__outward",
"flare-skirt__asymm__front_length__highly-asymmetric",
"flare-skirt__asymm__front_length__strongly-asymmetric",
"flare-skirt__asymm__front_length__moderately-asymmetric",
"flare-skirt__asymm__front_length__slightly-asymmetric",
"flare-skirt__asymm__front_length__symmetric",
"flare-skirt__cut__add__True",
"flare-skirt__cut__add__False",
"flare-skirt__cut__depth__shallow",
"flare-skirt__cut__depth__medium",
"flare-skirt__cut__depth__deep",
"flare-skirt__cut__width__narrow",
"flare-skirt__cut__width__medium",
"flare-skirt__cut__width__wide",
"flare-skirt__cut__place__back_left",
"flare-skirt__cut__place__back_center",
"flare-skirt__cut__place__back_right",
"flare-skirt__cut__place__front_left",
"flare-skirt__cut__place__front_center",
"flare-skirt__cut__place__front_right",
"godet-skirt__base__Skirt2",
"godet-skirt__base__PencilSkirt",
"godet-skirt__insert_w__narrow",
"godet-skirt__insert_w__medium",
"godet-skirt__insert_w__wide",
"godet-skirt__insert_depth__shallow",
"godet-skirt__insert_depth__medium",
"godet-skirt__insert_depth__deep",
"godet-skirt__num_inserts__4",
"godet-skirt__num_inserts__6",
"godet-skirt__num_inserts__8",
"godet-skirt__num_inserts__10",
"godet-skirt__num_inserts__12",
"godet-skirt__cuts_distance__close",
"godet-skirt__cuts_distance__medium",
"godet-skirt__cuts_distance__far",
"pencil-skirt__length__micro",
"pencil-skirt__length__mini",
"pencil-skirt__length__above-knee",
"pencil-skirt__length__knee-length",
"pencil-skirt__length__midi",
"pencil-skirt__length__floor-length",
"pencil-skirt__rise__low",
"pencil-skirt__rise__mid",
"pencil-skirt__rise__high",
"pencil-skirt__flare__tight",
"pencil-skirt__flare__straight",
"pencil-skirt__flare__slight-flare",
"pencil-skirt__low_angle__inward",
"pencil-skirt__low_angle__straight",
"pencil-skirt__low_angle__outward",
"pencil-skirt__front_slit__none",
"pencil-skirt__front_slit__shallow",
"pencil-skirt__front_slit__deep",
"pencil-skirt__back_slit__none",
"pencil-skirt__back_slit__shallow",
"pencil-skirt__back_slit__deep",
"pencil-skirt__left_slit__none",
"pencil-skirt__left_slit__shallow",
"pencil-skirt__left_slit__deep",
"pencil-skirt__right_slit__none",
"pencil-skirt__right_slit__shallow",
"pencil-skirt__right_slit__deep",
"pencil-skirt__style_side_cut__Sun",
"pencil-skirt__style_side_cut__SIGGRAPH_logo",
"pencil-skirt__style_side_cut__None",
"levels-skirt__base__Skirt2",
"levels-skirt__base__PencilSkirt",
"levels-skirt__base__SkirtCircle",
"levels-skirt__base__AsymmSkirtCircle",
"levels-skirt__level__Skirt2",
"levels-skirt__level__SkirtCircle",
"levels-skirt__level__AsymmSkirtCircle",
"levels-skirt__num_levels__1",
"levels-skirt__num_levels__2",
"levels-skirt__num_levels__3",
"levels-skirt__num_levels__4",
"levels-skirt__num_levels__5",
"levels-skirt__level_ruffle__none",
"levels-skirt__level_ruffle__moderate",
"levels-skirt__level_ruffle__rich",
"levels-skirt__length__micro",
"levels-skirt__length__mini",
"levels-skirt__length__above-knee",
"levels-skirt__length__knee-length",
"levels-skirt__length__midi",
"levels-skirt__length__floor-length",
"levels-skirt__rise__low",
"levels-skirt__rise__mid",
"levels-skirt__rise__high",
"levels-skirt__base_length_frac__short",
"levels-skirt__base_length_frac__medium",
"levels-skirt__base_length_frac__long",
"pants__length__micro",
"pants__length__short",
"pants__length__knee-length",
"pants__length__capri",
"pants__length__ankle-length",
"pants__length__full-length",
"pants__width__fitted",
"pants__width__normal",
"pants__width__loose",
"pants__flare__tapering",
"pants__flare__straight",
"pants__flare__slight-flare",
"pants__rise__low",
"pants__rise__mid",
"pants__rise__high",
"pants__cuff__type__CuffBand",
"pants__cuff__type__CuffSkirt",
"pants__cuff__type__CuffBandSkirt",
"pants__cuff__type__None",
"pants__cuff__top_ruffle__straight",
"pants__cuff__top_ruffle__tapered",
"pants__cuff__top_ruffle__very_tapered",
"pants__cuff__cuff_len__short",
"pants__cuff__cuff_len__medium",
"pants__cuff__cuff_len__long",
"pants__cuff__skirt_fraction__small",
"pants__cuff__skirt_fraction__medium",
"pants__cuff__skirt_fraction__large",
"pants__cuff__skirt_flare__slight",
"pants__cuff__skirt_flare__moderate",
"pants__cuff__skirt_flare__significant",
"pants__cuff__skirt_ruffle__none",
"pants__cuff__skirt_ruffle__some"
]
fail_text_list = []
def list_in_text( my_list, start_string, connect_tag='__'):
''' Search the list for all items starting with start-string and only the first two items separated by __,
Then use the text to correspond to the startstring. The first two items are used to determine whether they are in the list of predictions
Args:_ALL_TEXT
my_list (list): The list to be searched
start_string(string): A string at the beginning
connect_tag (string): The symbol that Chinese the book is connected in the my_list
'''
global fail_text_list
temp_flag=True
meta_item_list = [
connect_tag.join(item.split(connect_tag)[:start_string.count(connect_tag) + 2]) # Split and keep the next field starting with the start_string
for item in my_list
if item.startswith(start_string) and item.count(connect_tag) >= start_string.count(connect_tag) + 1
]
meta_item_text = [
connect_tag.join(item.split(connect_tag)[:start_string.count(connect_tag) + 2]) # Split and keep the next field starting with the start_string
for item in _ALL_TEXT
if item.startswith(start_string) and item.count(connect_tag) >= start_string.count(connect_tag) + 1
]
meta_item_list_set=set(meta_item_list)
meta_item_text_set=set(meta_item_text)
start_string_fail_list=list(meta_item_text_set-meta_item_list_set)
if len(start_string_fail_list)>0:
fail_text_list.extend(start_string_fail_list)
temp_flag=False
print(f'mylist{start_string}Words that are missing from the opening word{start_string_fail_list}')
return temp_flag
def bool2condition(my_list,connect_tag='__'):
global fail_text_list
fail_text_list = []
bool_flag = True
meta_list=[item.split(connect_tag)[-1] for item in my_list if item.startswith("meta")]
# Determine whether meta_upper wb bottom is generated
if list_in_text(my_list,'meta')==False:
bool_flag = False
left_bool="False"
left_flag = [s for s in my_list if s.startswith("left__enable_asym")]
if meta_list[0]!="None":
if len(left_flag)==0:
print("left__enable_asym")
fail_text_list.append("left__enable_asym")
bool_flag = False
else:
left_bool=left_flag[0].split(connect_tag)[-1]
left_fittedshirt_strapless_bool=True
left_fittedshirt_strapless_flag=[s for s in my_list if s.startswith("left__fitted_shirt__strapless")]
if meta_list[0] =='FittedShirt' and left_bool=='True' :
if len(left_fittedshirt_strapless_flag)==0 :
print("left__fitted_shirt__strapless")
fail_text_list.append("left__fitted_shirt__strapless")
bool_flag = False
return bool_flag, sorted(list(set(fail_text_list)))
if len(left_fittedshirt_strapless_flag) > 0:
if left_fittedshirt_strapless_flag[0].split(connect_tag)[-1] == 'False':
left_fittedshirt_strapless_bool = False
for meta_item in meta_list:
if meta_item =='FittedShirt':
if list_in_text(my_list,'fitted_shirt')==False:
bool_flag = False
if meta_item =='Shirt':
if list_in_text(my_list,'shirt')==False:
bool_flag=False
if left_bool == 'True':
if list_in_text(my_list, 'left__shirt') == False:
bool_flag = False
if meta_item=="StraightWB" or meta_item=="FittedWB":
if list_in_text(my_list,'waistband')==False:
bool_flag=False
if meta_item =="SkirtCircle" or meta_item =="SkirtManyPanels" or meta_item=='AsymmSkirtCircle':
if list_in_text(my_list,"flare-skirt")==False:
bool_flag=False
if meta_item=='SkirtCircle':
if list_in_text(my_list,'flare-skirt__cut')==False:
bool_flag=False
if meta_item=='AsymmSkirtCircle':
if list_in_text(my_list,"flare-skirt__asymm__front_length")==False:
bool_flag=False
if list_in_text(my_list,'flare-skirt__cut')==False:
bool_flag=False
if meta_item=='SkirtManyPanels':
if list_in_text(my_list,"flare-skirt__skirt-many-panels")==False:
bool_flag=False
if meta_item=='GodetSkirt':
if list_in_text(my_list,"godet-skirt")==False:
bool_flag=False
godet_base_item = [item.split(connect_tag)[-1] for item in my_list if item.startswith("godet-skirt__base")]
if len(godet_base_item) == 0:
bool_flag = False
print("godet-skirt__base")
fail_text_list.append("godet-skirt__base")
return bool_flag, sorted(list(set(fail_text_list)))
else:
godet_base_item = godet_base_item[0]
if godet_base_item == "Skirt2":
if list_in_text(my_list, "skirt") == False:
bool_flag = False
if godet_base_item == "PencilSkirt":
if list_in_text(my_list, "pencil-skirt") == False:
bool_flag = False
if meta_item=='SkirtLevels':
if list_in_text(my_list,"levels-skirt")==False:
bool_flag=False
base_item = [item.split(connect_tag)[-1] for item in my_list if item.startswith("levels-skirt__base")]
if len(base_item) == 0:
bool_flag = False
print("levels-skirt__base")
fail_text_list.append("levels-skirt__base")
return bool_flag, sorted(list(set(fail_text_list)))
else:
base_item = base_item[0]
if base_item == "Skirt2":
if list_in_text(my_list, "skirt") == False:
bool_flag = False
if base_item == "PencilSkirt":
if list_in_text(my_list, "pencil-skirt") == False:
bool_flag = False
if base_item=="SkirtCircle" or base_item=="AsymmSkirtCircle":
if list_in_text(my_list, "flare-skirt") == False:
bool_flag = False
level_item = [item.split(connect_tag)[-1] for item in my_list if item.startswith("levels-skirt__level")]
if len(level_item) == 0:
bool_flag = False
print("levels-skirt__level")
fail_text_list.append("levels-skirt__level")
return bool_flag, sorted(list(set(fail_text_list)))
else:
level_item = level_item[0]
if level_item == "Skirt2":
if list_in_text(my_list, "skirt") == False:
bool_flag = False
if level_item == "SkirtCircle" or level_item == "AsymmSkirtCircle":
if list_in_text(my_list, "flare-skirt") == False:
bool_flag = False
if meta_item=='Pants':
if list_in_text(my_list,"pants")==False:
bool_flag=False
cuff_type = [item.split(connect_tag)[-1] for item in my_list if item.startswith("pants__cuff__type")]
if len(cuff_type) == 0:
bool_flag = False
print("pants__cuff__type")
fail_text_list.append("pants__cuff__type")
return bool_flag, sorted(list(set(fail_text_list)))
else:
if cuff_type[0] != "None":
if list_in_text(my_list, "pants__cuff") == False:
bool_flag = False
if meta_item=='Skirt2':
if list_in_text(my_list,"skirt")==False:
bool_flag=False
if meta_item=='PencilSkirt':
if list_in_text(my_list,"pencil-skirt")==False:
bool_flag=False
meta_upper = [item.split(connect_tag)[-1] for item in my_list if item.startswith("meta__upper")]
if len(meta_upper)==0:
print("meta__upper")
fail_text_list.append("meta__upper")
bool_flag = False
return bool_flag,list(set(fail_text_list))
meta_upper=meta_upper[0]
strapless=None
if meta_upper =='FittedShirt':
strapless=[item.split(connect_tag)[-1] for item in my_list if item.startswith("fitted_shirt__strapless")]
if len(strapless)==0:
bool_flag=False
print("fitted_shirt__strapless")
fail_text_list.append("fitted_shirt__strapless")
return bool_flag,list(set(fail_text_list))
strapless=strapless[0]
if (strapless==str(False) and meta_upper =='FittedShirt')or meta_upper=="Shirt":
if list_in_text(my_list,"collar")==False:
bool_flag=False
if left_bool == 'True' and (left_fittedshirt_strapless_bool ==False or meta_upper=="Shirt") :
if list_in_text(my_list, "left__collar") == False:
bool_flag = False
sleeveless=[item.split(connect_tag)[-1] for item in my_list if item.startswith("sleeve__sleeveless")]
if len(sleeveless)==0:
bool_flag=False
print("sleeve__sleeveless")
fail_text_list.append("sleeve__sleeveless")
return bool_flag,list(set(fail_text_list))
sleeveless=sleeveless[0]
if sleeveless==str(False):
if list_in_text(my_list,"sleeve")==False :
bool_flag=False
cuff_type = [item.split(connect_tag)[-1] for item in my_list if item.startswith("sleeve__cuff__type")]
if len(cuff_type)==0:
bool_flag = False
print("sleeve__cuff__type")
fail_text_list.append("sleeve__cuff__type")
return bool_flag, sorted(list(set(fail_text_list)))
else:
if cuff_type[0]!="None":
if list_in_text(my_list,"sleeve__cuff")==False:
bool_flag = False
if left_bool == 'True' and (left_fittedshirt_strapless_bool == False or meta_upper == "Shirt"):
if list_in_text(my_list,"left__sleeve")==False:
bool_flag=False
#For the processing of the neckline, find the type of neckline and see if it is empty
cuff_type = [item.split(connect_tag)[-1] for item in my_list if item.startswith("left__sleeve__cuff__type")]
if len(cuff_type) == 0:
bool_flag = False
print("left__sleeve__cuff__type")
fail_text_list.append("left__sleeve__cuff__type")
return bool_flag, sorted(list(set(fail_text_list)))
else:
if cuff_type[0] != "None":
if list_in_text(my_list, "left__sleeve__cuff") == False:
bool_flag = False
return bool_flag,sorted(list(set(fail_text_list)))
def bool2text_alltext(text_list):
flag = True
no_in_textspace = list(set(text_list)-set(_ALL_TEXT))
if len(no_in_textspace) > 0:
flag = False
return flag,no_in_textspace