* 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)
This commit is contained in:
Eray Özkural
2006-05-02 16:51:13 +00:00
parent 1f37cec1ec
commit 43869a5d73
+15 -2
View File
@@ -288,20 +288,33 @@ def info_name(package_name, installed=False):
else: else:
raise Error(_('Package %s not found') % package_name) 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: if not lang:
lang = pisi.pxml.autoxml.LocalText.get_lang() lang = pisi.pxml.autoxml.LocalText.get_lang()
r1 = pisi.search.query_terms('summary', lang, terms) r1 = pisi.search.query_terms('summary', lang, terms)
r2 = pisi.search.query_terms('description', lang, terms) r2 = pisi.search.query_terms('description', lang, terms)
r = r1.union(r2) r = r1.union(r2)
if search_names:
for term in terms:
r |= search_package_names(term)
return r return r
def search_package(query, lang = None): def search_package(query, lang = None, search_names = True):
if not lang: if not lang:
lang = pisi.pxml.autoxml.LocalText.get_lang() lang = pisi.pxml.autoxml.LocalText.get_lang()
r1 = pisi.search.query('summary', lang, query) r1 = pisi.search.query('summary', lang, query)
r2 = pisi.search.query('description', lang, query) r2 = pisi.search.query('description', lang, query)
r = r1.union(r2) r = r1.union(r2)
if search_names:
r |= search_package_names(query)
return r return r
def check(package): def check(package):