catalog.py 文件源码

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

项目:galaxycat 作者: igbmc 项目源码 文件源码
def search(cls, search):
        if search is None or len(search) == 0:
            return []

        query = Tool.query.outerjoin(EDAMOperation, Tool.edam_operations).join(ToolVersion).join(Instance, ToolVersion.instances)
        nodes = parse_search_query(search)
        for node in nodes:
            if type(node) == ComparisonNode:
                key = node[0]
                value = u" ".join(node[2]).lower()
                if key == u"topic":
                    query = query.filter(func.lower(EDAMOperation.label) == value)
                elif key == u"instance":
                    query = query.filter(func.lower(Instance.brand) == value)
                else:
                    # unknown key
                    return []
            else:
                term = "%{0}%".format(" ".join(node).lower())
                query = query.filter(Tool.name.ilike(term) | Tool.description.ilike(term) | Tool.display_name.ilike(term))

        return query.all()
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号