Moved implementations to extensions
This commit is contained in:
20
src/cpl_query/extension/ordered_iterable.py
Normal file
20
src/cpl_query/extension/ordered_iterable.py
Normal 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])
|
||||
Reference in New Issue
Block a user