def _build_sort_expression( sort_field: Union[FieldProxy, SortExpression] ) -> SortExpression: return ( SortExpression({+sort_field: 1}) if not isinstance(sort_field, SortExpression) else sort_field )
def _validate_sort_argument(cls, sort: Any) -> Optional[SortExpression]: if sort is None: return None if isinstance(sort, tuple): for sorted_field in sort: if not isinstance(sorted_field, (FieldProxy, SortExpression)): raise TypeError( "sort elements have to be Model fields or asc, desc descriptors" ) sort_expression: Dict = {} for sort_field in sort: sort_expression.update(cls._build_sort_expression(sort_field)) return SortExpression(sort_expression) if not isinstance(sort, (FieldProxy, SortExpression)): raise TypeError("sort has to be a Model field or " "asc, desc descriptors or a tuple of these") return cls._build_sort_expression(sort)
def test_sort_empty_repr(): assert repr(SortExpression()) == "SortExpression()"