Source code for indra.databases.taxonomy_client

"""Client to access the Entrez Taxonomy web service."""
import requests

base_url = 'https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi'


def _send_search_request(term):
    params = {
        'db': 'taxonomy',
        'term': term,
        'retmode': 'json'
        }
    res = requests.get(base_url, params=params)
    if not res.status_code == 200:
        return None
    return res.json().get('esearchresult')


[docs]def get_taxonomy_id(name): """Return the taxonomy ID corresponding to a taxonomy name. Parameters ---------- name : str The name of the taxonomy entry. Example: "Severe acute respiratory syndrome coronavirus 2" Returns ------- str or None The taxonomy ID corresponding to the given name or None if not available. """ res = _send_search_request(name) idlist = res.get('idlist') if not idlist: return None return idlist[0]