sort_by - Return a copy of this collection, sorted by the given fieldName.

              The fieldName is accessed the same way as other filtering, so it supports custom properties, etc.

              @param fieldName <str> - The name of the field on which to sort by

              @param reverse <bool> Default False - If True, list will be in reverse order.

              @return <QueryableList> - A QueryableList of the same type with the elements sorted based on arguments.

def sort_by(self, fieldName, reverse=False):
        '''
            sort_by - Return a copy of this collection, sorted by the given fieldName.

              The fieldName is accessed the same way as other filtering, so it supports custom properties, etc.

              @param fieldName <str> - The name of the field on which to sort by

              @param reverse <bool> Default False - If True, list will be in reverse order.

              @return <QueryableList> - A QueryableList of the same type with the elements sorted based on arguments.
        '''
        return self.__class__(
            sorted(self, key = lambda item : self._get_item_value(item, fieldName), reverse=reverse)
        )