From 43869a5d73de99d9f7a5b893d908e60da8b703e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eray=20=C3=96zkural?= Date: Tue, 2 May 2006 16:51:13 +0000 Subject: [PATCH] * fix: add requested API for searching package names * fix: by default, search functions search also in package names in addition to summary and descriptions (thanks gokmen for reminding) --- pisi/api.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/pisi/api.py b/pisi/api.py index 4d545d6c..a417bb9c 100644 --- a/pisi/api.py +++ b/pisi/api.py @@ -288,20 +288,33 @@ def info_name(package_name, installed=False): else: raise Error(_('Package %s not found') % package_name) -def search_package_terms(terms, lang = None): +def search_package_names(query): + r = set() + packages = ctx.packagedb.list_packages() + for pkgname in packages: + if query in pkgname: + r.add(pkgname) + return r + +def search_package_terms(terms, lang = None, search_names = True): if not lang: lang = pisi.pxml.autoxml.LocalText.get_lang() r1 = pisi.search.query_terms('summary', lang, terms) r2 = pisi.search.query_terms('description', lang, terms) r = r1.union(r2) + if search_names: + for term in terms: + r |= search_package_names(term) return r -def search_package(query, lang = None): +def search_package(query, lang = None, search_names = True): if not lang: lang = pisi.pxml.autoxml.LocalText.get_lang() r1 = pisi.search.query('summary', lang, query) r2 = pisi.search.query('description', lang, query) r = r1.union(r2) + if search_names: + r |= search_package_names(query) return r def check(package):