def get_missing_prerequisite_list(smu_list): result_list = [] platform, release = get_platform_and_release(smu_list) if platform == UNKNOWN or release == UNKNOWN: return result_list # Load the SMU information smu_loader = SMUInfoLoader(platform, release) smu_info_list= [] smu_name_set = set() for line in smu_list: smu_name = get_smu_lookup_name(line) smu_info = smu_loader.get_smu_info(smu_name) if smu_info is None or smu_name in smu_name_set: continue smu_name_set.add(smu_name) smu_info_list.append(smu_info) if len(smu_info_list) > 0: # Exclude all the superseded SMUs in smu_info_list excluded_supersede_list = get_excluded_supersede_list(smu_info_list) missing_required_prerequisite_dict = \ get_missing_required_prerequisites(smu_loader, excluded_supersede_list) missing_required_prerequisite_set = get_unique_set_from_dict(missing_required_prerequisite_dict) for pre_requisite_smu in missing_required_prerequisite_set: result_list.append(pre_requisite_smu + '.' + smu_loader.file_suffix) return result_list
def get_optimize_list(smu_list, include_annotation=True): error_list = [] result_list = [] # Identify the platform and release platform, release = get_platform_and_release(smu_list) if platform == UNKNOWN or release == UNKNOWN: return result_list, error_list # Load the SMU information smu_loader = SMUInfoLoader(platform, release) file_suffix = smu_loader.file_suffix smu_info_list= [] smu_name_set = set() for line in smu_list: smu_name = get_smu_lookup_name(line) smu_info = smu_loader.get_smu_info(smu_name) if smu_info is None: error_list.append(smu_name) continue if smu_name in smu_name_set: continue smu_name_set.add(smu_name) smu_info_list.append(smu_info) if len(smu_info_list) > 0: # Exclude all the superseded SMUs in smu_info_list excluded_supersede_list = get_excluded_supersede_list(smu_info_list) missing_required_prerequisite_dict = \ get_missing_required_prerequisites(smu_loader, excluded_supersede_list) missing_required_prerequisite_set = get_unique_set_from_dict(missing_required_prerequisite_dict) for pre_requisite_smu in missing_required_prerequisite_set: if include_annotation: result_list.append(pre_requisite_smu + '.' + file_suffix + ' (A Missing Pre-requisite)') else: result_list.append(pre_requisite_smu + '.' + file_suffix) excluded_supersede_dict = get_dict_from_list(excluded_supersede_list) for smu_info in smu_info_list: if smu_info.name not in excluded_supersede_dict: if include_annotation: result_list.append(smu_info.name + '.' + file_suffix + ' (Superseded)') else: result_list.append(smu_info.name + '.' + file_suffix) return result_list, error_list
def get_optimize_list(smu_list): error_list = [] result_list = [] # Identify the platform and release platform, release = get_platform_and_release(smu_list) if platform == UNKNOWN or release == UNKNOWN: return result_list, error_list # Load the SMU information smu_loader = SMUInfoLoader(platform, release) file_suffix = smu_loader.file_suffix smu_info_list= [] smu_name_set = set() for line in smu_list: smu_name = get_smu_lookup_name(line) smu_info = smu_loader.get_smu_info(smu_name) if smu_info is None: error_list.append(smu_name) continue if smu_name in smu_name_set: continue smu_name_set.add(smu_name) smu_info_list.append(smu_info) if len(smu_info_list) > 0: # Exclude all the superseded SMUs in smu_info_list excluded_supersede_list = get_excluded_supersede_list(smu_info_list) missing_required_prerequisite_dict = \ get_missing_required_prerequisites(smu_loader, excluded_supersede_list) missing_required_prerequisite_set = get_unique_set_from_dict(missing_required_prerequisite_dict) for pre_requisite_smu in missing_required_prerequisite_set: result_list.append(pre_requisite_smu + '.' + file_suffix + ' (A Missing Pre-requisite)') excluded_supersede_dict = get_dict_from_list(excluded_supersede_list) for smu_info in smu_info_list: if smu_info.name not in excluded_supersede_dict: result_list.append(smu_info.name + '.' + file_suffix + ' (Superseded)') else: result_list.append(smu_info.name + '.' + file_suffix) return result_list, error_list
def get_validated_list(smu_list): """ Returns the validated list given the SMU/SP list. A smu_list may contain packages, SMUs, SPs, or junk texts. """ unrecognized_list = [] package_list = [] result_list = [] # Identify the platform and release platform, release = get_platform_and_release(smu_list) if platform == UNKNOWN or release == UNKNOWN: for line in smu_list: result_list.append({'smu_entry': line, 'is': 'Unrecognized', 'description': ''}) return result_list # Load the SMU information smu_loader = SMUInfoLoader(platform, release) file_suffix = smu_loader.file_suffix smu_info_list= [] smu_name_set = set() for line in smu_list: smu_name = get_smu_lookup_name(line) smu_info = smu_loader.get_smu_info(smu_name) if smu_info is None: # Check if the entry is a package type if get_platform(smu_name) == UNKNOWN: unrecognized_list.append(smu_name) else: package_list.append(smu_name) continue if smu_name in smu_name_set: continue smu_name_set.add(smu_name) smu_info_list.append(smu_info) if len(smu_info_list) > 0: # Exclude all the superseded SMUs in smu_info_list excluded_supersede_list = get_excluded_supersede_list(smu_info_list) missing_required_prerequisite_dict = \ get_missing_required_prerequisites(smu_loader, excluded_supersede_list) missing_required_prerequisite_set = get_unique_set_from_dict(missing_required_prerequisite_dict) for pre_requisite_smu in missing_required_prerequisite_set: pre_requisite_smu_info = smu_loader.get_smu_info(pre_requisite_smu) description = pre_requisite_smu_info.description if pre_requisite_smu_info is not None else '' result_list.append({'smu_entry': pre_requisite_smu + '.' + file_suffix, 'is': 'Pre-requisite', 'description':description}) excluded_supersede_dict = get_dict_from_list(excluded_supersede_list) for smu_info in smu_info_list: if smu_info.name not in excluded_supersede_dict: result_list.append({'smu_entry': smu_info.name + '.' + file_suffix, 'is': 'Superseded', 'description': smu_info.description}) else: result_list.append({'smu_entry': smu_info.name + '.' + file_suffix, 'is': 'SMU/SP', 'description': smu_info.description}) if len(package_list) > 0: for entry in package_list: result_list.append({'smu_entry': entry, 'is': 'Package', 'description': ''}) if len(unrecognized_list) > 0: for entry in unrecognized_list: result_list.append({'smu_entry': entry, 'is': 'Unrecognized', 'description': ''}) return result_list
def get_validated_list(smu_list): """ Returns the validated list given the SMU/SP list. A smu_list may contain packages, SMUs, SPs, or junk texts. """ unrecognized_list = [] package_list = [] result_list = [] # Identify the platform and release platform, release = get_platform_and_release(smu_list) if platform == UNKNOWN or release == UNKNOWN: for line in smu_list: result_list.append({'smu_entry': line, 'is': 'Unrecognized'}) return result_list # Load the SMU information smu_loader = SMUInfoLoader(platform, release) file_suffix = smu_loader.file_suffix smu_info_list = [] smu_name_set = set() for line in smu_list: smu_name = get_smu_lookup_name(line) smu_info = smu_loader.get_smu_info(smu_name) if smu_info is None: # Check if the entry is a package type if get_platform(smu_name) == UNKNOWN: unrecognized_list.append(smu_name) else: package_list.append(smu_name) continue if smu_name in smu_name_set: continue smu_name_set.add(smu_name) smu_info_list.append(smu_info) if len(smu_info_list) > 0: # Exclude all the superseded SMUs in smu_info_list excluded_supersede_list = get_excluded_supersede_list(smu_info_list) missing_required_prerequisite_dict = \ get_missing_required_prerequisites(smu_loader, excluded_supersede_list) missing_required_prerequisite_set = get_unique_set_from_dict( missing_required_prerequisite_dict) for pre_requisite_smu in missing_required_prerequisite_set: pre_requisite_smu_info = smu_loader.get_smu_info(pre_requisite_smu) description = pre_requisite_smu_info.description if pre_requisite_smu_info is not None else '' result_list.append({ 'smu_entry': pre_requisite_smu + '.' + file_suffix, 'is': 'Pre-requisite', 'description': description }) excluded_supersede_dict = get_dict_from_list(excluded_supersede_list) for smu_info in smu_info_list: if smu_info.name not in excluded_supersede_dict: result_list.append({ 'smu_entry': smu_info.name + '.' + file_suffix, 'is': 'Superseded', 'description': smu_info.description }) else: result_list.append({ 'smu_entry': smu_info.name + '.' + file_suffix, 'is': 'SMU/SP', 'description': smu_info.description }) if len(package_list) > 0: for entry in package_list: result_list.append({ 'smu_entry': entry, 'is': 'Package', 'description': '' }) if len(unrecognized_list) > 0: for entry in unrecognized_list: result_list.append({ 'smu_entry': entry, 'is': 'Unrecognized', 'description': '' }) return result_list