Added order by functions
This commit is contained in:
28
src/cpl_query/_query/order_by.py
Normal file
28
src/cpl_query/_query/order_by.py
Normal file
@@ -0,0 +1,28 @@
|
||||
from collections import Callable
|
||||
|
||||
from cpl_query.extension.iterable_abc import IterableABC
|
||||
from cpl_query.extension.ordered_iterable_abc import OrderedIterableABC
|
||||
|
||||
|
||||
def order_by_query(_list: IterableABC, _func: Callable) -> OrderedIterableABC:
|
||||
result = OrderedIterableABC(_func)
|
||||
_list.sort(key=_func)
|
||||
result.extend(_list)
|
||||
return result
|
||||
|
||||
|
||||
def order_by_descending_query(_list: IterableABC, _func: Callable) -> OrderedIterableABC:
|
||||
result = OrderedIterableABC(_func)
|
||||
_list.sort(key=_func, reverse=True)
|
||||
result.extend(_list)
|
||||
return result
|
||||
|
||||
|
||||
def then_by_query(_list: OrderedIterableABC, _func: Callable) -> OrderedIterableABC:
|
||||
_list.sort(key=_func)
|
||||
return _list
|
||||
|
||||
|
||||
def then_by_descending_query(_list: OrderedIterableABC, _func: Callable) -> OrderedIterableABC:
|
||||
_list.sort(key=_func, reverse=True)
|
||||
return _list
|
Reference in New Issue
Block a user