python类desc()的实例源码

model.py 文件源码 项目:telemetrics-backend 作者: clearlinux 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def query_records(build, classification, severity, machine_id, limit, interval_sec=None):
        records = Record.query
        if build is not None:
            records = records.join(Record.build).filter_by(build=build)
        if classification is not None:
            records = records.join(Record.classification).filter_by(classification=classification)
        if severity is not None:
            records = records.filter(Record.severity == severity)
        if machine_id is not None:
            records = records.filter(Record.machine_id == machine_id)

        if interval_sec is not None:
            current_time = time()
            secs_in_past = current_time - interval_sec
            # Due to time skew on client systems, delayed sends due to
            # spooling, etc, tsp_server works better as the reference
            # timestamp.
            records = records.filter(Record.tsp_server > secs_in_past)

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

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

        return records.all()
model.py 文件源码 项目:telemetrics-backend 作者: clearlinux 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def query_records(build, classification, severity, machine_id, limit, interval_sec=None):
        records = Record.query
        if build is not None:
            records = records.join(Record.build).filter_by(build=build)
        if classification is not None:
            records = records.join(Record.classification).filter_by(classification=classification)
        if severity is not None:
            records = records.filter(Record.severity == severity)
        if machine_id is not None:
            records = records.filter(Record.machine_id == machine_id)

        if interval_sec is not None:
            current_time = time()
            secs_in_past = current_time - interval_sec
            # Due to time skew on client systems, delayed sends due to
            # spooling, etc, tsp_server works better as the reference
            # timestamp.
            records = records.filter(Record.tsp_server > secs_in_past)

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

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

        return records.all()
model.py 文件源码 项目:telemetrics-backend 作者: clearlinux 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def get_top_crash_guilties(classes=None):
        q = db.session.query(Guilty.function, Guilty.module, Build.build, db.func.count(Record.id).label('total'), Guilty.id, Guilty.comment)
        q = q.join(Record)
        q = q.join(Build)
        q = q.join(Classification).filter(Record.classification_id == Classification.id)
        if not classes:
            classes = ['org.clearlinux/crash/clr']
        q = q.filter(Classification.classification.in_(classes))
        q = q.filter(Build.build.op('~')('^[0-9][0-9]+$'))
        q = q.filter(Guilty.hide == False)
        q = q.group_by(Guilty.function, Guilty.module, Guilty.comment, Guilty.id, Build.build)
        q = q.order_by(desc(cast(Build.build, db.Integer)), desc('total'))
        # query for records created in the last week (~ 10 Clear builds)
        q = q.filter(Build.build.in_(sorted(tuple(set([x[2] for x in q.all()])), key=lambda x: int(x))[-8:]))
        interval_sec = 24 * 60 * 60 * 7
        current_time = time()
        sec_in_past = current_time - interval_sec
        q = q.filter(Record.tsp > sec_in_past)
        return q.all()
model.py 文件源码 项目:telemetrics-backend 作者: clearlinux 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def query_records(build, classification, severity, machine_id, limit, interval_sec=None):
        records = Record.query
        if build is not None:
            records = records.join(Record.build).filter_by(build=build)
        if classification is not None:
            records = records.join(Record.classification).filter_by(classification=classification)
        if severity is not None:
            records = records.filter(Record.severity == severity)
        if machine_id is not None:
            records = records.filter(Record.machine_id == machine_id)

        if interval_sec is not None:
            current_time = time()
            secs_in_past = current_time - interval_sec
            # Due to time skew on client systems, delayed sends due to
            # spooling, etc, tsp_server works better as the reference
            # timestamp.
            records = records.filter(Record.tsp_server > secs_in_past)

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

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

        return records.all()
model.py 文件源码 项目:telemetrics-backend 作者: clearlinux 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def get_top_crash_guilties(classes=None):
        q = db.session.query(Guilty.function, Guilty.module, Build.build, db.func.count(Record.id).label('total'), Guilty.id, Guilty.comment)
        q = q.join(Record)
        q = q.join(Build)
        q = q.join(Classification).filter(Record.classification_id == Classification.id)
        if not classes:
            classes = ['org.clearlinux/crash/clr']
        q = q.filter(Classification.classification.in_(classes))
        q = q.filter(Build.build.op('~')('^[0-9][0-9]+$'))
        q = q.filter(Guilty.hide == False)
        q = q.group_by(Guilty.function, Guilty.module, Guilty.comment, Guilty.id, Build.build)
        q = q.order_by(desc(cast(Build.build, db.Integer)), desc('total'))
        # query for records created in the last week (~ 10 Clear builds)
        q = q.filter(Build.build.in_(sorted(tuple(set([x[2] for x in q.all()])), key=lambda x: int(x))[-8:]))
        interval_sec = 24 * 60 * 60 * 7
        current_time = time()
        sec_in_past = current_time - interval_sec
        q = q.filter(Record.tsp > sec_in_past)
        return q.all()
query.py 文件源码 项目:marvin 作者: sdss 项目源码 文件源码 阅读 27 收藏 0 点赞 0 评论 0
def _sortQuery(self):
        ''' Sort the query by a given parameter '''

        if not isinstance(self.sort, type(None)):
            # set the sort variable ModelClass parameter
            sortparam = self.marvinform._param_form_lookup.mapToColumn(self.sort)

            # If order is specified, then do the sort
            if self.order:
                assert self.order in ['asc', 'desc'], 'Sort order parameter must be either "asc" or "desc"'

                # Check if order by already applied
                if 'ORDER' in str(self.query.statement):
                    self.query = self.query.order_by(None)
                # Do the sorting
                if 'desc' in self.order:
                    self.query = self.query.order_by(desc(sortparam))
                else:
                    self.query = self.query.order_by(sortparam)
api.py 文件源码 项目:mogan 作者: openstack 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def server_fault_get_by_server_uuids(self, context, server_uuids):
        """Get all server faults for the provided server_uuids."""
        if not server_uuids:
            return {}

        rows = model_query(context, models.ServerFault).\
            filter(models.ServerFault.server_uuid.in_(server_uuids)).\
            order_by(desc("created_at"), desc("id")).all()

        output = {}
        for server_uuid in server_uuids:
            output[server_uuid] = []

        for row in rows:
            data = dict(row)
            output[row['server_uuid']].append(data)

        return output
api.py 文件源码 项目:Trusted-Platform-Module-nova 作者: BU-NU-CLOUD-SP16 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def instance_fault_get_by_instance_uuids(context, instance_uuids):
    """Get all instance faults for the provided instance_uuids."""
    if not instance_uuids:
        return {}

    rows = model_query(context, models.InstanceFault, read_deleted='no').\
                       filter(models.InstanceFault.instance_uuid.in_(
                           instance_uuids)).\
                       order_by(desc("created_at"), desc("id")).\
                       all()

    output = {}
    for instance_uuid in instance_uuids:
        output[instance_uuid] = []

    for row in rows:
        data = dict(row)
        output[row['instance_uuid']].append(data)

    return output


##################
web_hook.py 文件源码 项目:Albireo 作者: lordfriend 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def list_web_hook(self):
        session = SessionManager.Session()
        try:
            web_hook_list = session.query(WebHook).\
                options(joinedload(WebHook.created_by)).\
                order_by(desc(getattr(WebHook, 'register_time'))).\
                all()
            web_hook_dict_list = []

            for web_hook in web_hook_list:
                web_hook_dict = row2dict(web_hook)
                web_hook_dict.pop('shared_secret', None)
                self.__process_user_obj_in_web_hook(web_hook, web_hook_dict)
                web_hook_dict_list.append(web_hook_dict)

            return json_resp({
                'data': web_hook_dict_list,
                'total': len(web_hook_list)
            })
        finally:
            SessionManager.Session.remove()
data_access.py 文件源码 项目:dota2-messenger-platform 作者: nico-arianto 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def get_top_player(self):
        return Database.session.query(MatchSummary).join(MatchSummary.player). \
            order_by(desc(MatchSummary.matches)). \
            order_by(desc(MatchSummary.player_win)). \
            limit(LIMIT_DATA).all()
data_access.py 文件源码 项目:dota2-messenger-platform 作者: nico-arianto 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def get_match_hero_summary(self, account_id):
        return Database.session.query(MatchHeroSummary).join(MatchHeroSummary.hero). \
            filter(MatchHeroSummary.account_id == account_id). \
            order_by(desc(MatchHeroSummary.matches)). \
            order_by(desc(MatchHeroSummary.player_win)). \
            limit(LIMIT_DATA).all()
data_access.py 文件源码 项目:dota2-messenger-platform 作者: nico-arianto 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def get_match_item_summary(self, account_id):
        return Database.session.query(MatchItemSummary).join(MatchItemSummary.item). \
            filter(MatchItemSummary.account_id == account_id). \
            order_by(desc(MatchItemSummary.matches)). \
            order_by(desc(MatchItemSummary.player_win)). \
            limit(LIMIT_DATA).all()
data_access.py 文件源码 项目:dota2-messenger-platform 作者: nico-arianto 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def get_last_history(self):
        return Database.session.query(History).order_by(desc(History.id)).first()
sqlalchemy.py 文件源码 项目:falcon-api 作者: Opentopic 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def _build_order_expressions(self, criteria, relationships):
        """
        :param criteria: criteria dictionary
        :type criteria: dict

        :param relationships:  a dict with all joins to apply, describes current state in recurrent calls
        :type relationships: dict

        :return: expressions list
        :rtype: list
        """
        expressions = []

        if isinstance(criteria, dict):
            criteria = list(criteria.items())
        for arg in criteria:
            if isinstance(arg, tuple):
                arg, value = arg
            else:
                value = None
            is_ascending = True
            if len(arg) and arg[0] == '+' or arg[0] == '-':
                is_ascending = arg[:1] == '+'
                arg = arg[1:]
            expression = self._parse_tokens(self.objects_class, arg.split('__'), value, relationships,
                                            lambda c, n, v: n)
            if expression is not None:
                expressions.append(expression if is_ascending else desc(expression))
        return expressions
api.py 文件源码 项目:zun 作者: openstack 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def actions_get(self, context, container_uuid):
        """Get all container actions for the provided uuid."""
        query = model_query(models.ContainerAction).\
            filter_by(container_uuid=container_uuid)
        actions = _paginate_query(models.ContainerAction, sort_dir='desc',
                                  sort_key='created_at', query=query)

        return actions
api.py 文件源码 项目:zun 作者: openstack 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def _action_get_last_created_by_container_uuid(self, context,
                                                   container_uuid):
        result = model_query(models.ContainerAction).\
            filter_by(container_uuid=container_uuid).\
            order_by(desc("created_at"), desc("id")).\
            first()
        return result
api.py 文件源码 项目:zun 作者: openstack 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def action_events_get(self, context, action_id):
        query = model_query(models.ContainerActionEvent).\
            filter_by(action_id=action_id)
        events = _paginate_query(models.ContainerActionEvent, sort_dir='desc',
                                 sort_key='created_at', query=query)
        return events
model.py 文件源码 项目:telemetrics-backend 作者: clearlinux 项目源码 文件源码 阅读 27 收藏 0 点赞 0 评论 0
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
model.py 文件源码 项目:telemetrics-backend 作者: clearlinux 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def get_recordcnts_by_classification():
        q = db.session.query(Classification.classification, db.func.count(Record.id).label('total'))
        q = q.join(Record.classification)
        q = q.group_by(Classification.classification)
        q = q.order_by(desc('total'))
        return q.all()
model.py 文件源码 项目:telemetrics-backend 作者: clearlinux 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def get_recordcnts_by_machine_type():
        q = db.session.query(Record.machine, db.func.count(Record.id).label('total'))
        q = q.group_by(Record.machine)
        q = q.order_by(desc('total'))
        return q.all()
model.py 文件源码 项目:telemetrics-backend 作者: clearlinux 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def get_crashcnts_by_build(classes=None):
        q = db.session.query(Build.build, db.func.count(Record.id)).join(Record).join(Classification)
        if not classes:
            classes = ['org.clearlinux/crash/clr']
        q = q.filter(Classification.classification.in_(classes))
        q = q.filter(Build.build.op('~')('^[0-9]+$'))
        q = q.group_by(Build.build)
        q = q.order_by(desc(cast(Build.build, db.Integer)))
        q = q.limit(10)
        return q.all()
model.py 文件源码 项目:telemetrics-backend 作者: clearlinux 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def get_machine_ids_for_guilty(id, most_recent=None):
        q = db.session.query(Build.build, Record.machine_id, db.func.count(Record.id).label('total'), Record.guilty_id)
        q = q.join(Record)
        q = q.filter(Record.guilty_id == id)
        q = q.filter(Record.os_name == 'clear-linux-os')
        q = q.filter(Build.build.op('~')('^[0-9][0-9]+$'))
        q = q.group_by(Build.build, Record.machine_id, Record.guilty_id)
        q = q.order_by(desc(cast(Build.build, db.Integer)), desc('total'))
        if most_recent:
            interval_sec = 24 * 60 * 60 * int(most_recent)
            current_time = time()
            sec_in_past = current_time - interval_sec
            q = q.filter(Record.tsp > sec_in_past)
        return q.all()
model.py 文件源码 项目:telemetrics-backend 作者: clearlinux 项目源码 文件源码 阅读 26 收藏 0 点赞 0 评论 0
def get_swupd_msgs(most_recent=None):
        q = db.session.query(Record.tsp, Record.machine_id, Record.backtrace).join(Classification)
        q = q.filter(Classification.classification.like('org.clearlinux/swupd-client/%'))

        if most_recent:
            interval_sec = 24 * 60 * 60 * int(most_recent)
            current_time = time()
            sec_in_past = current_time - interval_sec
            q = q.filter(Record.tsp > sec_in_past)

        q = q.order_by(desc(Record.tsp))
        return q
model.py 文件源码 项目:telemetrics-backend 作者: clearlinux 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
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
model.py 文件源码 项目:telemetrics-backend 作者: clearlinux 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def get_recordcnts_by_classification():
        q = db.session.query(Classification.classification, db.func.count(Record.id).label('total'))
        q = q.join(Record.classification)
        q = q.group_by(Classification.classification)
        q = q.order_by(desc('total'))
        return q.all()
model.py 文件源码 项目:telemetrics-backend 作者: clearlinux 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def get_crashcnts_by_build(classes=None):
        q = db.session.query(Build.build, db.func.count(Record.id)).join(Record).join(Classification)
        if not classes:
            classes = ['org.clearlinux/crash/clr']
        q = q.filter(Classification.classification.in_(classes))
        q = q.filter(Build.build.op('~')('^[0-9]+$'))
        q = q.group_by(Build.build)
        q = q.order_by(desc(cast(Build.build, db.Integer)))
        q = q.limit(10)
        return q.all()
model.py 文件源码 项目:telemetrics-backend 作者: clearlinux 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def get_machine_ids_for_guilty(id, most_recent=None):
        q = db.session.query(Build.build, Record.machine_id, db.func.count(Record.id).label('total'), Record.guilty_id)
        q = q.join(Record)
        q = q.filter(Record.guilty_id == id)
        q = q.filter(Record.os_name == 'clear-linux-os')
        q = q.filter(Build.build.op('~')('^[0-9][0-9]+$'))
        q = q.group_by(Build.build, Record.machine_id, Record.guilty_id)
        q = q.order_by(desc(cast(Build.build, db.Integer)), desc('total'))
        if most_recent:
            interval_sec = 24 * 60 * 60 * int(most_recent)
            current_time = time()
            sec_in_past = current_time - interval_sec
            q = q.filter(Record.tsp > sec_in_past)
        return q.all()
model.py 文件源码 项目:telemetrics-backend 作者: clearlinux 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def get_swupd_msgs(most_recent=None):
        q = db.session.query(Record.tsp, Record.machine_id, Record.backtrace).join(Classification)
        q = q.filter(Classification.classification.like('org.clearlinux/swupd-client/%'))

        if most_recent:
            interval_sec = 24 * 60 * 60 * int(most_recent)
            current_time = time()
            sec_in_past = current_time - interval_sec
            q = q.filter(Record.tsp > sec_in_past)

        q = q.order_by(desc(Record.tsp))
        return q
model.py 文件源码 项目:telemetrics-backend 作者: clearlinux 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def get_recordcnts_by_classification():
        q = db.session.query(Classification.classification, db.func.count(Record.id).label('total'))
        q = q.join(Record.classification)
        q = q.group_by(Classification.classification)
        q = q.order_by(desc('total'))
        return q.all()
model.py 文件源码 项目:telemetrics-backend 作者: clearlinux 项目源码 文件源码 阅读 17 收藏 0 点赞 0 评论 0
def get_recordcnts_by_machine_type():
        q = db.session.query(Record.machine, db.func.count(Record.id).label('total'))
        q = q.group_by(Record.machine)
        q = q.order_by(desc('total'))
        return q.all()


问题


面经


文章

微信
公众号

扫码关注公众号