Moved implementations to extensions

This commit is contained in:
2021-11-02 17:28:36 +01:00
parent d7881774a8
commit c5b1a95661
6 changed files with 9 additions and 27 deletions

View File

@@ -0,0 +1,20 @@
from collections import Callable
from .iterable import Iterable
from .._query.order_by import then_by_query, then_by_descending_query
from cpl_query.extension.ordered_iterable_abc import OrderedIterableABC
class OrderedIterable(Iterable, OrderedIterableABC):
def __init__(self):
Iterable.__init__(self)
OrderedIterableABC.__init__(self)
def then_by(self, _func: Callable) -> OrderedIterableABC:
self._funcs.append(_func)
return then_by_query(self, lambda *args: [f(*args) for f in self._funcs])
def then_by_descending(self, _func: Callable) -> OrderedIterableABC:
self._funcs.append(_func)
return then_by_descending_query(self, lambda *args: [f(*args) for f in self._funcs])