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)
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
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))
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
def test_find_latest_image(self): images = find_latest_image('bedtools', '2.27.0', False, False, False, 'Docker', 'quay.io') assert type(images) == dict