model.py 文件源码

python
阅读 22 收藏 0 点赞 0 评论 0

项目:telemetrics-backend 作者: clearlinux 项目源码 文件源码
def filter_records(build, classification, severity, machine_id=None, os_name=None, limit=None, from_date=None,
                       to_date=None, payload=None, not_payload=None, data_source=None):
        records = Record.query
        if build is not None:
            records = records.join(Record.build).filter_by(build=build)
        if classification is not None:
            if isinstance(classification, list):
                records = records.join(Record.classification).filter(Classification.classification.in_(classification))
            else:
                records = records.join(Record.classification).filter(Classification.classification.like(classification))
        if severity is not None:
            records = records.filter(Record.severity == severity)
        if os_name is not None:
            records = records.filter(Record.os_name == os_name)
        if machine_id is not None:
            records = records.filter(Record.machine_id == machine_id)
        if from_date is not None:
            from_date = mktime(strptime(from_date, "%Y-%m-%d"))
            records = records.filter(Record.tsp >= from_date)
        if to_date is not None:
            to_date = mktime(strptime(to_date, "%Y-%m-%d"))
            records = records.filter(Record.tsp < to_date)
        if payload is not None:
            records = records.filter(Record.backtrace.op('~')(payload))
        if not_payload is not None:
            records = records.filter(~Record.backtrace.op('~')(not_payload))
        if data_source is not None:
            if data_source == "external":
                records = records.filter(Record.external == True)
            elif data_source == "internal":
                records = records.filter(Record.external == False)

        records = records.order_by(Record.id.desc())

        if limit is not None:
            records = records.limit(limit)

        return records
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号