示例#1
0
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
示例#2
0
文件: smu_utils.py 项目: ommaurya/csm
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
示例#3
0
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
示例#4
0
文件: smu_utils.py 项目: ommaurya/csm
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
示例#5
0
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
示例#6
0
文件: smu_utils.py 项目: kstaniek/csm
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