src/ols_client/client.py
def _iter_terms_helper(url, size=None, sleep=None):
        """Iterates over all terms, lazily with paging

        :param str url: The url to query
        :param int size: The size of each page. Defaults to 500, which is the maximum allowed by the EBI.
        :param int sleep: The amount of time to sleep between pages. Defaults to none.
        :rtype: iter[dict]
        """
        if size is None:
            size = 500
        elif size > 500:
            raise ValueError('Maximum size is 500. Given: {}'.format(size))

        t = time.time()
        response = requests.get(url, params={'size': size}).json()
        links = response['_links']

        for response_term in _iterate_response_terms(response):
            yield response_term

        t = time.time() - t

        log.info(
            'Page %s/%s done in %.2f seconds',
            response['page']['number'] + 1,
            response['page']['totalPages'],
            t
        )

        log.info('Estimated time until done: %.2f minutes', t * response['page']['totalPages'] / 60)

        while 'next' in links:
            if sleep:
                time.sleep(sleep)

            t = time.time()
            response = requests.get(links['next']['href'], params={'size': size}).json()
            links = response['_links']

            for response_term in _iterate_response_terms(response):
                yield response_term

            log.info(
                'Page %s/%s done in %.2f seconds',
                response['page']['number'],
                response['page']['totalPages'],
                time.time() - t
            )
def _iter_terms_helper(url, size=None, sleep=None):
        """Iterates over all terms, lazily with paging

        :param str url: The url to query
        :param int size: The size of each page. Defaults to 500, which is the maximum allowed by the EBI.
        :param int sleep: The amount of time to sleep between pages. Defaults to none.
        :rtype: iter[dict]
        """
        if size is None:
            size = 500
        elif size > 500:
            raise ValueError('Maximum size is 500. Given: {}'.format(size))

        t = time.time()
        response = requests.get(url, params={'size': size}).json()
        links = response['_links']

        for response_term in _iterate_response_terms(response):
            yield response_term

        t = time.time() - t

        log.info(
            'Page %s/%s done in %.2f seconds',
            response['page']['number'] + 1,
            response['page']['totalPages'],
            t
        )

        log.info('Estimated time until done: %.2f minutes', t * response['page']['totalPages'] / 60)

        while 'next' in links:
            if sleep:
                time.sleep(sleep)

            t = time.time()
            response = requests.get(links['next']['href'], params={'size': size}).json()
            links = response['_links']

            for response_term in _iterate_response_terms(response):
                yield response_term

            log.info(
                'Page %s/%s done in %.2f seconds',
                response['page']['number'],
                response['page']['totalPages'],
                time.time() - t
            )
def _iter_terms_helper ( url , size = None , sleep = None ) : if size is None : size = 500 elif size > 500 : raise ValueError ( 'Maximum size is 500. Given: {}' . format ( size ) ) t = time . time ( ) response = requests . get ( url , params = { 'size' : size } ) . json ( ) links = response [ '_links' ] for response_term in _iterate_response_terms ( response ) : yield response_term t = time . time ( ) - t log . info ( 'Page %s/%s done in %.2f seconds' , response [ 'page' ] [ 'number' ] + 1 , response [ 'page' ] [ 'totalPages' ] , t ) log . info ( 'Estimated time until done: %.2f minutes' , t * response [ 'page' ] [ 'totalPages' ] / 60 ) while 'next' in links : if sleep : time . sleep ( sleep ) t = time . time ( ) response = requests . get ( links [ 'next' ] [ 'href' ] , params = { 'size' : size } ) . json ( ) links = response [ '_links' ] for response_term in _iterate_response_terms ( response ) : yield response_term log . info ( 'Page %s/%s done in %.2f seconds' , response [ 'page' ] [ 'number' ] , response [ 'page' ] [ 'totalPages' ] , time . time ( ) - t )
Iterates over all terms, lazily with paging

        :param str url: The url to query
        :param int size: The size of each page. Defaults to 500, which is the maximum allowed by the EBI.
        :param int sleep: The amount of time to sleep between pages. Defaults to none.
        :rtype: iter[dict]
Iterates over all terms lazily with paging