summaryrefslogtreecommitdiffstats
path: root/pym/portage_dep.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2006-07-21 05:38:50 +0000
committerZac Medico <zmedico@gentoo.org>2006-07-21 05:38:50 +0000
commit12895e10d7c33c63769902835cd7fe6e7114a5d9 (patch)
tree4e1a11a0fd889fe2f7a218d67bbaf59763729949 /pym/portage_dep.py
parent895da9302ba17779f44170132c485e0fb565e320 (diff)
downloadportage-12895e10d7c33c63769902835cd7fe6e7114a5d9.tar.gz
portage-12895e10d7c33c63769902835cd7fe6e7114a5d9.tar.bz2
portage-12895e10d7c33c63769902835cd7fe6e7114a5d9.zip
Move isjustname, isspecific, dep_getkey, and dep_transform from the core portage module to portage_dep.
svn path=/main/trunk/; revision=3976
Diffstat (limited to 'pym/portage_dep.py')
-rw-r--r--pym/portage_dep.py65
1 files changed, 64 insertions, 1 deletions
diff --git a/pym/portage_dep.py b/pym/portage_dep.py
index 32aacc666..72c6c4257 100644
--- a/pym/portage_dep.py
+++ b/pym/portage_dep.py
@@ -20,7 +20,7 @@
import os,string,types,sys,copy
import portage_exception
-from portage_versions import catpkgsplit
+from portage_versions import catpkgsplit, ververify
def strip_empty(myarr):
for x in range(len(myarr)-1, -1, -1):
@@ -218,3 +218,66 @@ def isvalidatom(atom):
return 1
else:
return 0
+
+def isjustname(mypkg):
+ myparts = mypkg.split('-')
+ for x in myparts:
+ if ververify(x):
+ return 0
+ return 1
+
+iscache = {}
+
+def isspecific(mypkg):
+ "now supports packages with no category"
+ try:
+ return iscache[mypkg]
+ except KeyError:
+ pass
+ mysplit = mypkg.split("/")
+ if not isjustname(mysplit[-1]):
+ iscache[mypkg] = 1
+ return 1
+ iscache[mypkg] = 0
+ return 0
+
+def dep_getkey(mydep):
+ if mydep and mydep[0] == "*":
+ mydep = mydep[1:]
+ if mydep and mydep[-1] == "*":
+ mydep = mydep[:-1]
+ if mydep and mydep[0] == "!":
+ mydep = mydep[1:]
+ if mydep[:2] in [">=", "<="]:
+ mydep = mydep[2:]
+ elif mydep[:1] in "=<>~":
+ mydep = mydep[1:]
+ if mydep and isspecific(mydep):
+ mysplit = catpkgsplit(mydep)
+ if not mysplit:
+ return mydep
+ return mysplit[0] + "/" + mysplit[1]
+ else:
+ return mydep
+
+def dep_transform(mydep, oldkey, newkey):
+ origdep = mydep
+ if not len(mydep):
+ return mydep
+ if mydep[0] == "*":
+ mydep = mydep[1:]
+ prefix = ""
+ postfix = ""
+ if mydep[-1] == "*":
+ mydep = mydep[:-1]
+ postfix = "*"
+ if mydep[:2] in [">=", "<="]:
+ prefix = mydep[:2]
+ mydep = mydep[2:]
+ elif mydep[:1] in "=<>~!":
+ prefix = mydep[:1]
+ mydep = mydep[1:]
+ if mydep == oldkey:
+ return prefix + newkey + postfix
+ else:
+ return origdep