示例#1
0
def tenders_feed(client=Client(''), sleep_time=10):
    while True:
        tender_list = True
        while tender_list:
            logger.info("Get next batch")
            tender_list = client.get_tenders()
            for tender in tender_list:
                logger.debug("Return tender {}".format(str(tender)))
                yield tender
        logger.info("Wait to get next batch")
        sleep(sleep_time)
def get_tender_id_by_uaid(ua_id,
                          client=Client(''),
                          descending=True,
                          id_field='tenderID'):
    params = {'offset': '', 'opt_fields': id_field, 'descending': descending}
    tender_list = True
    client._update_params(params)
    while tender_list:
        tender_list = client.get_tenders()
        for tender in tender_list:
            if tender[id_field] == ua_id:
                return tender.id
    raise IdNotFound
示例#3
0
def main():
    FORMAT = '%(asctime)-15s %(levelname)s [%(name)s] %(funcName)s %(message)s'
    logging.basicConfig(format=FORMAT, level=logging.INFO)

    client = Client(**client_config)
    socket.setdefaulttimeout(client_config['timeout'])

    try:
        offset = open('next_tender').read()
        client.params['offset'] = offset
    except:
        pass

    plist = dict()

    while True:
        tender_list = client.get_tenders()
        if not tender_list:
            break

        for t in tender_list:
            logger.info("Get tener %s %s", t.id, t.dateModified)
            try:
                tender = client.get_tender(t.id)['data']

                if 'documents' not in tender:
                    continue

                for d in tender.documents:
                    logger.info("++ Got document %s", d.title)
                    process_document(plist, t, d)

            except Exception as e:
                logger.error("Exception {}: {}".format(type(e), e))

        with open('next_tender', 'w') as f:
            f.write(client.params['offset'])
def prepare_api_wrapper(key='',
                        host_url="https://api-sandbox.openprocurement.org",
                        api_version='0.8'):
    return Client(key, host_url, api_version)
示例#5
0
def prepare_api_wrapper(key, host_url, api_version):
    return Client(key, host_url, api_version)
示例#6
0
def prepare_api(key=''):
    return Client(key)
def get_tender_by_uaid(ua_id, client=Client('')):
    tender_id = get_tender_id_by_uaid(ua_id, client)
    return client.get_tender(tender_id)