def find_latest_image_main(package_name, package_version, json, all, sort_by_size,
                           sort_by_download, container_type, registry_host):
    images = find_latest_image(package_name, package_version, all, sort_by_size,
                               sort_by_download, container_type, registry_host)
    if type(images) == list:
        if json:
            print(json.dumps(images, indent=4))
        elif all:
            print('image\tupdated\tsize\tdownloads\tcontainer_type')
            for i in images:
                image_name = '' if 'image_name' not in i else i['image_name']
                image_type = '' if 'image_type' not in i else i['image_type']
                updated = '' if 'updated' not in i else i['updated']
                size = '' if 'size' not in i else i['size']
                downloads = '' if 'downloads' not in i else i['downloads']
                print('{}\t{}\t{}\t{}\t{}'.format(
                    image_name, updated,
                    size, downloads,
                    image_type))
    elif type(images) == dict:
        print(images['image_name'])
    else:
        if container_type:
            print('No version {} available for package {} with container type {}'.format(
                package_version, package_name, container_type))
        else:
            print('No version {} available for package {}'.format(package_version, package_name))
        print('Searching available versions for package {}'.format(package_name))
        find_tool(package_name, False)
示例#2
0
 def test_find_latest_image_sort_by_downloads(self):
     images = find_latest_image('bedtools', '2.27.0', True, False, True,
                                'Docker', 'quay.io')
     flag = False
     for i in images:
         if i['updated'] == '2019-10-26T00:00:00Z':
             flag = True
             assert i[
                 'image_name'] == 'quay.io/biocontainers/bedtools:2.27.0--he513fc3_4'
     assert flag
示例#3
0
def update_cwl_docker_from_biocontainers(package_name, package_version,
                                         cwl_path):
    biocontainer_image = find_latest_image(package_name, package_version,
                                           False, False, False, 'Docker', None)
    if isinstance(biocontainer_image, dict):
        for root, dirs, files in os.walk(cwl_path):
            for f in files:
                f = os.path.join(root, f)
                if f.endswith('.cwl'):
                    __replace_in_cwl(f, package_name, package_version,
                                     biocontainer_image['image_name'])
                elif f.endswith('.yml') or f.endswith('.yaml'):
                    __replace_in_yml(f, package_name, package_version,
                                     biocontainer_image['image_name'])
    else:
        print('There is not biocontainer image for {} version {}'.format(
            package_name, package_version))
示例#4
0
 def test_find_latest_image_status_code(self):
     images = find_latest_image('bedtoolss', '2.27.0', True, False, True,
                                'Docker', 'quay.io')
     assert images == 204
示例#5
0
 def test_find_latest_image(self):
     images = find_latest_image('bedtools', '2.27.0', False, False, False,
                                'Docker', 'quay.io')
     assert type(images) == dict