@_lambda_eval
def filter(self, *expressions, **expression_dict):
    self._model_class._check_attrs(expression_dict)
    expression_dict = self._model_class._wash_attrs(expression_dict)
    expressions = (list(expressions) + list(_dict_to_expressions(self._model_class, expression_dict)))
    expression = self._expression
    if expressions:
        _expression = reduce(operator.and_, expressions)
        if (expression is not None):
            expression &= _expression
        else:
            expression = _expression
    (expression, having_expression) = _split_where_expression_and_having_expression(expression)
    q = self
    if (expression is not None):
        q = q._update(_expression=expression)
    if (having_expression is not None):
        q = q.having(having_expression)
    return q
@_lambda_eval
def filter(self, *expressions, **expression_dict):
    self._model_class._check_attrs(expression_dict)
    expression_dict = self._model_class._wash_attrs(expression_dict)
    expressions = (list(expressions) + list(_dict_to_expressions(self._model_class, expression_dict)))
    expression = self._expression
    if expressions:
        _expression = reduce(operator.and_, expressions)
        if (expression is not None):
            expression &= _expression
        else:
            expression = _expression
    (expression, having_expression) = _split_where_expression_and_having_expression(expression)
    q = self
    if (expression is not None):
        q = q._update(_expression=expression)
    if (having_expression is not None):
        q = q.having(having_expression)
    return q