def _filter(q: QueryBuilder, filter: Filter) -> QueryBuilder: if len(filter.filters) > 0: where = _connective_filter(filter) # print(where) return q.where(where) else: return q
def apply_dates(query: QueryBuilder, target: Table, start: Optional[date] = None, stop: Optional[date] = None) -> QueryBuilder: if start and stop: if start == stop: return query.where(target.date == Entry.as_value(start)) else: return query.where( target.date[Entry.as_value(start):Entry.as_value(stop)]) elif start: return query.where(target.date >= Entry.as_value(start)) elif stop: return query.where(target.date <= Entry.as_value(stop)) return query