Пример #1
0
def pager(p, retry):
    results = {}
    iterator = iter(p)

    while True:
        try:
            page = retry(next, iterator)
        except StopIteration:
            return results
        if isinstance(page, tuple) and len(page) == 2:
            page = page[1]
        for rexpr in p.result_keys:
            rv = rexpr.search(page)
            if rv is None:
                continue
            ev = rexpr.search(results)
            if ev is None:
                set_value_from_jmespath(results, rexpr.expression, rv)
                continue
            ev.extend(rv)
Пример #2
0
def pager(p, retry):
    results = {}
    iterator = iter(p)

    while True:
        try:
            page = retry(next, iterator)
        except StopIteration:
            return results
        if isinstance(page, tuple) and len(page) == 2:
            page = page[1]
        for rexpr in p.result_keys:
            rv = rexpr.search(page)
            if rv is None:
                continue
            ev = rexpr.search(results)
            if ev is None:
                set_value_from_jmespath(results, rexpr.expression, rv)
                continue
            ev.extend(rv)