def test():

    deque = collections.deque(range(10))
    assert tuple(iterate_pop(deque)) == tuple(range(9, -1, -1))
    assert not deque

    deque = collections.deque(range(10))
    assert tuple(iterate_popleft(deque)) == tuple(range(10))
    assert not deque

    dict_ = {1: 2, 3: 4, 5: 6}
    assert dict(iterate_popitem(dict_)) == {1: 2, 3: 4, 5: 6}
    assert not dict_

    lazy_tuple = iterate_pop(list(range(5)), lazy_tuple=True)
    assert isinstance(lazy_tuple, nifty_collections.LazyTuple)
Beispiel #2
0
def pop_until(sequence, condition=bool):
    '''
    Look for item in `sequence` that passes `condition`, popping away others.
    
    When sequence is empty, propagates the `IndexError`.
    '''
    from python_toolbox import cute_iter_tools
    for item in cute_iter_tools.iterate_pop(sequence):
        if condition(item):
            return item
Beispiel #3
0
def pop_until(sequence, condition=bool):
    '''
    Look for item in `sequence` that passes `condition`, popping away others.
    
    When sequence is empty, propagates the `IndexError`.
    '''
    from python_toolbox import cute_iter_tools
    for item in cute_iter_tools.iterate_pop(sequence):
        if condition(item):
            return item
def test():

    deque = collections.deque(range(10))
    assert tuple(iterate_pop(deque)) == tuple(range(9, -1, -1))
    assert not deque

    deque = collections.deque(range(10))
    assert tuple(iterate_popleft(deque)) == tuple(range(10))
    assert not deque

    dict_ = {
        1: 2,
        3: 4,
        5: 6,
    }
    assert dict(iterate_popitem(dict_)) == {
        1: 2,
        3: 4,
        5: 6,
    }
    assert not dict_

    lazy_tuple = iterate_pop(list(range(5)), lazy_tuple=True)
    assert isinstance(lazy_tuple, nifty_collections.LazyTuple)