view check_remote.py @ 5:e1b3b37aa69f draft

"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ena_upload commit da03a9fa221bac18771fb317255cca9d89620f4b"
author iuc
date Wed, 27 Oct 2021 16:38:10 +0000
parents 26ccb678abc8
children 4aab5ae907b6
line wrap: on
line source

import json

import requests

URL = "https://www.ebi.ac.uk/ena/portal/api/search"


def check_remote_entry(entry_type, query_dict, out_format='json'):
    '''
    Checks if an entry with that alias exists in the ENA repos
    entry_type = [study | sample | experiment | run]
    '''
    assert entry_type in ['study', 'sample', 'experiment', 'run']
    params_dict = {}
    query_str = ' AND '.join(['%s=%s' % (key, value) for (key, value) in query_dict.items()])
    params_dict['query'] = query_str
    params_dict['result'] = 'read_' + entry_type
    params_dict['fields'] = entry_type + '_alias'
    params_dict['format'] = out_format
    response = requests.post(URL, data=params_dict)
    if response.content != b'':
        return json.loads(response.content)
    return []