* 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:
+15
-2
@@ -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):
|
||||||
|
|||||||
Reference in New Issue
Block a user