[equo] query: code cleanup and polishing

This commit is contained in:
Fabio Erculiani
2009-12-12 10:52:06 +01:00
parent a7471511d6
commit bfd2e4499d
+71 -68
View File
@@ -17,7 +17,7 @@ from entropy.output import darkgreen, darkred, red, blue, \
brown, purple, bold, print_info, print_error, print_generic
from entropy.client.interfaces import Client as EquoInterface
from entropy.i18n import _
import entropy.tools as entropyTools
import entropy.tools
def query(options):
@@ -129,23 +129,48 @@ def query(options):
rc_status = -10
else:
rc_status = -10
elif myopts[0] == "description":
rc_status = search_description(myopts[1:])
else:
rc_status = -10
return rc_status
def get_installed_packages(packages, dbconn = None, entropy_intf = None):
def search_installed_packages(packages, idreturn = False, dbconn = None,
Equo = None):
if entropy_intf is None:
entropy_intf = EquoInterface()
if Equo == None:
Equo = EquoInterface()
repo_db = dbconn
if not dbconn:
repo_db = entropy_intf.clientDbconn
if (not idreturn) and (not etpUi['quiet']):
pkg_data = {}
flat_results = set()
for package in packages:
pkg_data[package] = set()
slot = entropy.tools.dep_getslot(package)
tag = entropy.tools.dep_gettag(package)
package = entropy.tools.remove_slot(package)
package = entropy.tools.remove_tag(package)
idpackages = repo_db.searchPackages(package, slot = slot, tag = tag,
just_id = True)
pkg_data[package].update(idpackages)
flat_results.update(idpackages)
return pkg_data, flat_results
def search_installed_packages(packages, dbconn = None, Equo = None):
if not etpUi['quiet']:
print_info(brown(" @@ ")+darkgreen("%s..." % (_("Searching"),) ))
if Equo is None:
Equo = EquoInterface()
clientDbconn = dbconn
if not dbconn:
clientDbconn = Equo.clientDbconn
@@ -154,20 +179,10 @@ def search_installed_packages(packages, idreturn = False, dbconn = None,
packages = [x[0] for x in \
clientDbconn.listAllPackages(order_by = "atom")]
pkg_data = set() # when idreturn is True
for package in packages:
slot = Equo.entropyTools.dep_getslot(package)
tag = Equo.entropyTools.dep_gettag(package)
package = Equo.entropyTools.remove_slot(package)
package = Equo.entropyTools.remove_tag(package)
pkg_data, flat_data = get_installed_packages(packages, dbconn = dbconn,
entropy_intf = Equo)
idpackages = clientDbconn.searchPackages(package, slot = slot,
tag = tag, just_id = True)
if not idpackages:
continue
if idreturn:
pkg_data |= set(idpackages)
continue
for package, idpackages in pkg_data.items():
for idpackage in idpackages:
print_package_info(idpackage, clientDbconn, clientSearch = True,
@@ -179,24 +194,21 @@ def search_installed_packages(packages, idreturn = False, dbconn = None,
bold("\t" + str(len(idpackages))) + \
red(" %s" % (_("entries"),)))
if idreturn:
return pkg_data
return 0
def search_belongs(files, idreturn = False, dbconn = None, Equo = None):
def search_belongs(files, dbconn = None, Equo = None):
if Equo == None:
if Equo is None:
Equo = EquoInterface()
if (not idreturn) and (not etpUi['quiet']):
if not etpUi['quiet']:
print_info(darkred(" @@ ") + darkgreen("%s..." % (_("Belong Search"),)))
clientDbconn = dbconn
if not dbconn:
clientDbconn = Equo.clientDbconn
pkg_data = set() # when idreturn is True
results = {}
flatresults = {}
reverse_symlink_map = Equo.SystemSettings['system_rev_symlinks']
@@ -232,9 +244,6 @@ def search_belongs(files, idreturn = False, dbconn = None, Equo = None):
# print info
xfile = result
result = results[result]
if idreturn:
pkg_data |= result
continue
for idpackage in result:
if etpUi['quiet']:
@@ -248,14 +257,11 @@ def search_belongs(files, idreturn = False, dbconn = None, Equo = None):
print_info(blue(" %s: " % (_("Found"),) ) + \
bold("\t" + str(len(result))) + red(" entries"))
if idreturn:
return pkg_data
return 0
def search_changelog(atoms, dbconn = None, Equo = None):
if Equo == None:
if Equo is None:
Equo = EquoInterface()
if not etpUi['quiet']:
@@ -291,7 +297,7 @@ def search_changelog(atoms, dbconn = None, Equo = None):
def search_inverse_dependencies(atoms, dbconn = None, Equo = None):
if Equo == None:
if Equo is None:
Equo = EquoInterface()
if not etpUi['quiet']:
@@ -366,7 +372,7 @@ def search_inverse_dependencies(atoms, dbconn = None, Equo = None):
def search_needed_libraries(atoms, dbconn = None, Equo = None):
if Equo == None:
if Equo is None:
Equo = EquoInterface()
@@ -398,7 +404,7 @@ def search_needed_libraries(atoms, dbconn = None, Equo = None):
def search_required_libraries(libraries, dbconn = None, Equo = None):
if Equo == None:
if Equo is None:
Equo = EquoInterface()
@@ -432,7 +438,7 @@ def search_required_libraries(libraries, dbconn = None, Equo = None):
def search_eclass(eclasses, dbconn = None, Equo = None):
if Equo == None:
if Equo is None:
Equo = EquoInterface()
@@ -465,26 +471,23 @@ def search_eclass(eclasses, dbconn = None, Equo = None):
def search_files(atoms, dbconn = None, Equo = None):
if Equo == None:
if Equo is None:
Equo = EquoInterface()
if not etpUi['quiet']:
print_info(darkred(" @@ ")+darkgreen("Files Search..."))
if not dbconn:
results = search_installed_packages(atoms, idreturn = True)
clientDbconn = Equo.clientDbconn
else:
results = search_installed_packages(atoms, idreturn = True,
dbconn = dbconn, Equo = Equo)
clientDbconn = dbconn
dbconn = Equo.clientDbconn
dict_results, results = get_installed_packages(atoms, dbconn = dbconn,
entropy_intf = Equo)
for result in results:
if result == -1:
continue
files = clientDbconn.retrieveContent(result)
atom = clientDbconn.retrieveAtom(result)
files = dbconn.retrieveContent(result)
atom = dbconn.retrieveAtom(result)
files = sorted(files)
if etpUi['quiet']:
for xfile in files:
@@ -504,7 +507,7 @@ def search_files(atoms, dbconn = None, Equo = None):
def search_orphaned_files(Equo = None):
if Equo == None:
if Equo is None:
Equo = EquoInterface()
if (not etpUi['quiet']):
@@ -515,7 +518,7 @@ def search_orphaned_files(Equo = None):
# start to list all files on the system:
dirs = Equo.SystemSettings['system_dirs']
filepath = Equo.entropyTools.get_random_temp_file()
filepath = entropy.tools.get_random_temp_file()
if os.path.isfile(filepath):
os.remove(filepath)
tdbconn = Equo.open_generic_database(filepath)
@@ -525,7 +528,7 @@ def search_orphaned_files(Equo = None):
import re
reverse_symlink_map = Equo.SystemSettings['system_rev_symlinks']
system_dirs_mask = [x for x in Equo.SystemSettings['system_dirs_mask'] \
if entropyTools.is_valid_path(x)]
if entropy.tools.is_valid_path(x)]
system_dirs_mask_regexp = []
for mask in Equo.SystemSettings['system_dirs_mask']:
reg_mask = re.compile(mask)
@@ -676,7 +679,7 @@ def search_orphaned_files(Equo = None):
myfile = tdbconn.cursor.fetchone()
humansize = Equo.entropyTools.bytes_into_human(sizecount)
humansize = entropy.tools.bytes_into_human(sizecount)
if not etpUi['quiet']:
print_info(red(" @@ ") + \
blue("%s: " % (_("Total wasted space"),) ) + bold(humansize))
@@ -694,7 +697,7 @@ def search_orphaned_files(Equo = None):
def search_removal_dependencies(atoms, deep = False, Equo = None):
if Equo == None:
if Equo is None:
Equo = EquoInterface()
clientDbconn = Equo.clientDbconn
@@ -755,7 +758,7 @@ def search_removal_dependencies(atoms, deep = False, Equo = None):
def list_installed_packages(Equo = None, dbconn = None):
if Equo == None:
if Equo is None:
Equo = EquoInterface()
if not etpUi['quiet']:
@@ -774,13 +777,13 @@ def list_installed_packages(Equo = None, dbconn = None):
for atom, idpackage, branch in inst_packages:
if not etpUi['verbose']:
atom = Equo.entropyTools.dep_getkey(atom)
atom = entropy.tools.dep_getkey(atom)
branchinfo = ""
sizeinfo = ""
if etpUi['verbose']:
branchinfo = darkgreen(" [")+red(branch)+darkgreen("] ")
mysize = clientDbconn.retrieveOnDiskSize(idpackage)
mysize = Equo.entropyTools.bytes_into_human(mysize)
mysize = entropy.tools.bytes_into_human(mysize)
sizeinfo = brown(" [")+purple(mysize)+brown("]")
if not etpUi['quiet']:
print_info(red(" # ") + blue(str(idpackage)) + sizeinfo + \
@@ -793,7 +796,7 @@ def list_installed_packages(Equo = None, dbconn = None):
def search_package(packages, Equo = None):
if Equo == None:
if Equo is None:
Equo = EquoInterface()
if not etpUi['quiet']:
@@ -806,10 +809,10 @@ def search_package(packages, Equo = None):
def do_search(dbconn, from_client = False):
my_found = False
for package in packages:
slot = Equo.entropyTools.dep_getslot(package)
tag = Equo.entropyTools.dep_gettag(package)
package = Equo.entropyTools.remove_slot(package)
package = Equo.entropyTools.remove_tag(package)
slot = entropy.tools.dep_getslot(package)
tag = entropy.tools.dep_gettag(package)
package = entropy.tools.remove_slot(package)
package = entropy.tools.remove_tag(package)
try:
@@ -862,7 +865,7 @@ def search_package(packages, Equo = None):
def match_package(packages, multiMatch = False, multiRepo = False,
showRepo = False, showDesc = False, Equo = None):
if Equo == None:
if Equo is None:
Equo = EquoInterface()
if not etpUi['quiet']:
@@ -907,7 +910,7 @@ def match_package(packages, multiMatch = False, multiRepo = False,
def search_slotted_packages(slots, dbconn = None, Equo = None):
if Equo == None:
if Equo is None:
Equo = EquoInterface()
dbclose = True
@@ -951,7 +954,7 @@ def search_slotted_packages(slots, dbconn = None, Equo = None):
def search_package_sets(items, Equo = None):
if Equo == None:
if Equo is None:
Equo = EquoInterface()
found = False
@@ -987,7 +990,7 @@ def search_package_sets(items, Equo = None):
def search_tagged_packages(tags, dbconn = None, Equo = None):
if Equo == None:
if Equo is None:
Equo = EquoInterface()
dbclose = True
@@ -1030,7 +1033,7 @@ def search_tagged_packages(tags, dbconn = None, Equo = None):
def search_licenses(licenses, dbconn = None, Equo = None):
if Equo == None:
if Equo is None:
Equo = EquoInterface()
dbclose = True
@@ -1078,7 +1081,7 @@ def search_licenses(licenses, dbconn = None, Equo = None):
def search_description(descriptions, Equo = None):
if Equo == None:
if Equo is None:
Equo = EquoInterface()
found = False
@@ -1133,7 +1136,7 @@ def print_package_info(idpackage, dbconn, clientSearch = False,
strictOutput = False, extended = False, Equo = None,
showRepoOnQuiet = False, showDescOnQuiet = False):
if Equo == None:
if Equo is None:
Equo = EquoInterface()
# now fetch essential info
@@ -1166,7 +1169,7 @@ def print_package_info(idpackage, dbconn, clientSearch = False,
installedRev = _("N/A")
try:
pkginstalled = Equo.clientDbconn.atomMatch(
Equo.entropyTools.dep_getkey(pkgatom), matchSlot = pkgslot)
entropy.tools.dep_getkey(pkgatom), matchSlot = pkgslot)
if pkginstalled[1] == 0:
idx = pkginstalled[0]
# found
@@ -1223,7 +1226,7 @@ def print_package_info(idpackage, dbconn, clientSearch = False,
if extended:
pkgsize = dbconn.retrieveSize(idpackage)
pkgsize = Equo.entropyTools.bytes_into_human(pkgsize)
pkgsize = entropy.tools.bytes_into_human(pkgsize)
print_info(darkgreen(" %s:\t\t\t" % (_("Size"),) ) + \
blue(str(pkgsize)))
@@ -1304,7 +1307,7 @@ def print_package_info(idpackage, dbconn, clientSearch = False,
mydate = dbconn.retrieveCreationDate(idpackage)
pkgcreatedate = "N/A"
if mydate:
pkgcreatedate = Equo.entropyTools.convert_unix_time_to_human_time(
pkgcreatedate = entropy.tools.convert_unix_time_to_human_time(
float(mydate))
print_info(darkgreen(" %s:\t\t" % (_("Created"),) ) + \
pkgcreatedate)