def test_ordering(self): def f(l): return sorted(l, key=operator.itemgetter(0)) self.assertEqual( list(iter_sort( f, *[iter(xrange(x, x + 10)) for x in (30, 20, 0, 10)])), list(xrange(40)))
def test_ordering(self): def f(l): return sorted(l, key=operator.itemgetter(0)) result = list( iter_sort(f, *[iter(range(x, x + 10)) for x in (30, 20, 0, 10)])) expected = list(range(40)) assert result == expected
def itermatch(self, restrict, **kwds): sorter = kwds.get("sorter", iter) if sorter is iter: return (match for repo in self.trees for match in repo.itermatch(restrict, **kwds)) # ugly, and a bit slow, but works. def f(x, y): l = sorter([x, y]) if l[0] == y: return 1 return -1 f = post_curry(sorted_cmp, f, key=self.zero_index_grabber) return iter_sort(f, *[repo.itermatch(restrict, **kwds) for repo in self.trees])
def itermatch(self, restrict, **kwds): sorter = kwds.get("sorter", iter) if sorter is iter: return (match for repo in self.trees for match in repo.itermatch(restrict, **kwds)) # ugly, and a bit slow, but works. def f(x, y): l = sorter([x, y]) if l[0] == y: return 1 return -1 f = post_curry(sorted_cmp, f, key=self.zero_index_grabber) return iter_sort( f, *[repo.itermatch(restrict, **kwds) for repo in self.trees])
def test_ordering(self): def f(l): return sorted(l, key=operator.itemgetter(0)) result = list(iter_sort(f, *[iter(range(x, x + 10)) for x in (30, 20, 0, 10)])) expected = list(range(40)) assert result == expected
def itermatch(self, restrict): return iter_sort( self.__sorter__, *[repo.itermatch(restrict) for repo in self.__repos__])