better handling of depends query

git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@413 cd1c1023-2f26-0410-ae45-c471fc1f0318
This commit is contained in:
lxnay
2007-08-07 23:51:53 +00:00
parent 3d0daa084f
commit 0caa7e220e
2 changed files with 22 additions and 3 deletions
+2
View File
@@ -1855,6 +1855,7 @@ def searchDepends(atoms, idreturn = False, verbose = False):
print_info(yellow(" @@ ")+darkgreen("Depends Search..."))
# validate atoms
'''
_atoms = []
for atom in atoms:
try:
@@ -1864,6 +1865,7 @@ def searchDepends(atoms, idreturn = False, verbose = False):
print_warning(red(" !! ")+bold(atom)+red(" is not valid."))
pass
atoms = _atoms
'''
#packages = searchPackage(atoms,idreturn = True)
clientDbconn = openClientDatabase()
+20 -3
View File
@@ -1959,12 +1959,29 @@ class etpDatabase:
def searchDepends(self, atomkey):
dbLog.log(ETP_LOGPRI_INFO,ETP_LOGLEVEL_VERBOSE,"searchDepends: called for "+atomkey)
iddeps = []
self.cursor.execute('SELECT iddependency FROM dependenciesreference WHERE dependency LIKE "%'+atomkey+'%"')
self.cursor.execute('SELECT iddependency,dependency FROM dependenciesreference WHERE dependency LIKE "%'+atomkey+'%"') # FIXME: handle slotted packages, even if it's not a big issue atm
for row in self.cursor:
iddeps.append(row[0])
iddeps.append(row)
try:
atomkey = entropyTools.dep_getkey(atomkey)
atomcat = atomkey.split("/")[0]
atomname = atomkey.split("/")[1]
if iddeps:
_iddeps = iddeps[:]
for x in _iddeps:
if x:
mykey = entropyTools.dep_getkey(x[1])
mycat = mykey.split("/")[0]
myname = mykey.split("/")[1]
if mykey.find("|or|") == -1 and mykey.find("|and|") == -1: # maybe find a better way
if (mycat != atomcat) or (myname != atomname):
iddeps.remove(x)
except:
pass
result = []
for iddep in iddeps:
self.cursor.execute('SELECT idpackage FROM dependencies WHERE iddependency = "'+str(iddep)+'"')
#print iddep
self.cursor.execute('SELECT idpackage FROM dependencies WHERE iddependency = "'+str(iddep[0])+'"')
for row in self.cursor:
result.append(row[0])
return result