Exemple #1
0
 def wrapper(query: SaQuery, criterion: Optional[criteria.BaseCriterion],
             negated: bool) -> SaQuery:
     assert criterion
     expr = apply_num_criterion_to_column(column, criterion, transformer)
     if negated:
         expr = ~expr
     return query.filter(expr)
Exemple #2
0
 def tumbleweed_filter(self, query: SaQuery,
                       _criterion: Optional[criteria.BaseCriterion],
                       negated: bool) -> SaQuery:
     expr = ((model.Post.comment_count == 0)
             & (model.Post.favorite_count == 0)
             & (model.Post.score == 0))
     if negated:
         expr = ~expr
     return query.filter(expr)
Exemple #3
0
 def wrapper(
         query: SaQuery,
         criterion: Optional[criteria.BaseCriterion],
         negated: bool) -> SaQuery:
     assert criterion
     expr = apply_num_criterion_to_column(column, criterion, transformer)
     if negated:
         expr = ~expr
     return query.filter(expr)
Exemple #4
0
 def tumbleweed_filter(
         self,
         query: SaQuery,
         _criterion: Optional[criteria.BaseCriterion],
         negated: bool) -> SaQuery:
     expr = (
         (model.Post.comment_count == 0)
         & (model.Post.favorite_count == 0)
         & (model.Post.score == 0))
     if negated:
         expr = ~expr
     return query.filter(expr)
Exemple #5
0
def _user_filter(query: SaQuery, criterion: Optional[criteria.BaseCriterion],
                 negated: bool) -> SaQuery:
    assert criterion
    if isinstance(criterion, criteria.PlainCriterion) \
            and not criterion.value:
        # pylint: disable=singleton-comparison
        expr = model.Post.user_id == None
        if negated:
            expr = ~expr
        return query.filter(expr)
    return search_util.create_subquery_filter(
        model.Post.user_id, model.User.user_id, model.User.name,
        search_util.create_str_filter)(query, criterion, negated)
Exemple #6
0
 def wrapper(query: SaQuery, criterion: Optional[criteria.BaseCriterion],
             negated: bool) -> SaQuery:
     assert criterion
     subquery = db.session.query(right_id_column.label('foreign_id'))
     if subquery_decorator:
         subquery = subquery_decorator(subquery)
     subquery = subquery.options(sa.orm.lazyload('*'))
     subquery = filter_func(subquery, criterion, False)
     subquery = subquery.subquery('t')
     expression = left_id_column.in_(subquery)
     if negated:
         expression = ~expression
     return query.filter(expression)
def _user_filter(query: SaQuery, criterion: Optional[criteria.BaseCriterion],
                 negated: bool) -> SaQuery:
    assert criterion
    if isinstance(criterion, criteria.PlainCriterion) and not criterion.value:
        expr = model.Post.user_id == None  # noqa: E711
        if negated:
            expr = ~expr
        return query.filter(expr)
    return search_util.create_subquery_filter(
        model.Post.user_id,
        model.User.user_id,
        model.User.name,
        search_util.create_str_filter,
    )(query, criterion, negated)
Exemple #8
0
 def wrapper(
         query: SaQuery,
         criterion: Optional[criteria.BaseCriterion],
         negated: bool) -> SaQuery:
     assert criterion
     subquery = db.session.query(right_id_column.label('foreign_id'))
     if subquery_decorator:
         subquery = subquery_decorator(subquery)
     subquery = subquery.options(sa.orm.lazyload('*'))
     subquery = filter_func(subquery, criterion, False)
     subquery = subquery.subquery('t')
     expression = left_id_column.in_(subquery)
     if negated:
         expression = ~expression
     return query.filter(expression)
Exemple #9
0
def _user_filter(
        query: SaQuery,
        criterion: Optional[criteria.BaseCriterion],
        negated: bool) -> SaQuery:
    assert criterion
    if isinstance(criterion, criteria.PlainCriterion) \
            and not criterion.value:
        # pylint: disable=singleton-comparison
        expr = model.Post.user_id == None
        if negated:
            expr = ~expr
        return query.filter(expr)
    return search_util.create_subquery_filter(
        model.Post.user_id,
        model.User.user_id,
        model.User.name,
        search_util.create_str_filter)(query, criterion, negated)