Example #1
0
File: dds.py Project: mF2C/compss
        def sort_partition(iterator):
            """
            Sort a partition locally.
            :param iterator:
            :return:
            """
            chunk_size = 500
            iterator = iter(iterator)
            chunks = list()
            while True:
                chunk = list(itertools.islice(iterator, chunk_size))
                chunk.sort(key=lambda kv: key_func(kv[0]), reverse=not ascending)
                chunks.append(chunk)
                if len(chunk) < chunk_size:
                    break
            else:
                chunks.append(chunk.sort(key=lambda kv: key_func(kv[0]),
                                         reverse=not ascending))

            return heapq3.merge(chunks, key=lambda kv: key_func(kv[0]),
                                reverse=not ascending)
Example #2
0
def test_heapq_key_reversed():
    result = list(merge([['dog', 'horse'], ['cat', 'fish', 'kangaroo']],
                        key=len,
                        reverse=True))
    assert result == ['dog', 'horse', 'cat', 'fish', 'kangaroo'], GENERIC_ERROR
Example #3
0
def test_heapq_reverse():
    result = list(merge([[1, 3, 5, 7], [0, 2, 4, 8], [5, 10, 15, 20], [], [25]],
                        key=None,
                        reverse=True))
    assert result == [25, 5, 10, 15, 20, 1, 3, 5, 7, 0, 2, 4, 8], GENERIC_ERROR
Example #4
0
def test_heapq_1():
    result = list(merge([[1, 3, 5, 7], [0, 2, 4, 8], [5, 10, 15, 20], [], [25]],
                        key=None,
                        reverse=False))
    assert result == [0, 1, 2, 3, 4, 5, 5, 7, 8, 10, 15, 20, 25], GENERIC_ERROR