summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--TODO4
-rw-r--r--pym/gentoolkit/dependencies.py10
-rw-r--r--pym/gentoolkit/equery/hasuse.py2
-rw-r--r--pym/gentoolkit/equery/meta.py6
-rw-r--r--pym/gentoolkit/equery/uses.py2
-rw-r--r--pym/gentoolkit/package.py58
6 files changed, 49 insertions, 33 deletions
diff --git a/TODO b/TODO
index 04cfbf3..3ffa6d2 100644
--- a/TODO
+++ b/TODO
@@ -35,7 +35,7 @@ equery:
+depgraph
For Next Release:
- - allow passing VERSION='123' in front of setup.py sdist and do version
- mangling at dist creation time.
- find all commits to main gentoolkit svn after rc7 push and merge where
appropriate
+ - write a docstring for Package which details especially the change in have
+ cpv as an object, not a string.
diff --git a/pym/gentoolkit/dependencies.py b/pym/gentoolkit/dependencies.py
index 4321e66..ccc241e 100644
--- a/pym/gentoolkit/dependencies.py
+++ b/pym/gentoolkit/dependencies.py
@@ -68,7 +68,7 @@ class Dependencies(CPV):
def __repr__(self):
return "<%s %r>" % (self.__class__.__name__, self.atom)
- def get_env_vars(self, envvars):
+ def environment(self, envvars):
"""Returns predefined env vars DEPEND, SRC_URI, etc."""
# Try to use the Portage tree first, since emerge only uses the tree
@@ -83,7 +83,7 @@ class Dependencies(CPV):
"""Get the contents of DEPEND and parse it with self.parser."""
try:
- return self.parser(self.get_env_vars(('DEPEND',))[0])
+ return self.parser(self.environment(('DEPEND',))[0])
except portage.exception.InvalidPackageName, err:
raise errors.GentoolkitInvalidCPV(err)
@@ -91,7 +91,7 @@ class Dependencies(CPV):
"""Get the contents of PDEPEND and parse it with self.parser."""
try:
- return self.parser(self.get_env_vars(('PDEPEND',))[0])
+ return self.parser(self.environment(('PDEPEND',))[0])
except portage.exception.InvalidPackageName, err:
raise errors.GentoolkitInvalidCPV(err)
@@ -99,7 +99,7 @@ class Dependencies(CPV):
"""Get the contents of RDEPEND and parse it with self.parser."""
try:
- return self.parser(self.get_env_vars(('RDEPEND',))[0])
+ return self.parser(self.environment(('RDEPEND',))[0])
except portage.exception.InvalidPackageName, err:
raise errors.GentoolkitInvalidCPV(err)
@@ -108,7 +108,7 @@ class Dependencies(CPV):
env_vars = ('DEPEND', 'PDEPEND', 'RDEPEND')
try:
- return self.parser(' '.join(self.get_env_vars(env_vars)))
+ return self.parser(' '.join(self.environment(env_vars)))
except portage.exception.InvalidPackageName, err:
raise errors.GentoolkitInvalidCPV(err)
diff --git a/pym/gentoolkit/equery/hasuse.py b/pym/gentoolkit/equery/hasuse.py
index 82b2e29..bc4bb63 100644
--- a/pym/gentoolkit/equery/hasuse.py
+++ b/pym/gentoolkit/equery/hasuse.py
@@ -65,7 +65,7 @@ def display_useflags(query, pkg):
"""Display USE flag information for a given package."""
try:
- useflags = [x.lstrip("+-") for x in pkg.get_env_var("IUSE").split()]
+ useflags = [x.lstrip("+-") for x in pkg.environment("IUSE").split()]
except errors.GentoolkitFatalError:
# aux_get KeyError or other unexpected result
return
diff --git a/pym/gentoolkit/equery/meta.py b/pym/gentoolkit/equery/meta.py
index 480441c..1a8114b 100644
--- a/pym/gentoolkit/equery/meta.py
+++ b/pym/gentoolkit/equery/meta.py
@@ -94,7 +94,7 @@ def filter_keywords(matches):
# Start from the newest
rev_matches = reversed(matches)
for pkg in rev_matches:
- keywords_str, slot = pkg.get_env_vars(('KEYWORDS', 'SLOT'))
+ keywords_str, slot = pkg.environment(('KEYWORDS', 'SLOT'))
keywords = keywords_str.split()
result[pkg] = [x for x in keywords if x not in slot_map.get(slot, [])]
try:
@@ -214,7 +214,7 @@ def format_keywords(keywords):
def format_keywords_line(pkg, fmtd_keywords):
"""Format the entire keywords line for display."""
- slot = pkg.get_env_var('SLOT')
+ slot = pkg.environment('SLOT')
ver = pkg.cpv.fullversion
verstr_len = len(ver) + 1 + len(slot) # +1 for ':'
@@ -288,7 +288,7 @@ def call_format_functions(matches):
print keywords_line
else:
# FIXME: duplicate code
- slot = match.get_env_var('SLOT')
+ slot = match.environment('SLOT')
verstr_len = len(match.cpv.fullversion) + len(slot)
indent = " " * (16 + verstr_len)
print format_line(keywords_line, "Keywords: ", indent)
diff --git a/pym/gentoolkit/equery/uses.py b/pym/gentoolkit/equery/uses.py
index 88a7a87..0529f39 100644
--- a/pym/gentoolkit/equery/uses.py
+++ b/pym/gentoolkit/equery/uses.py
@@ -185,7 +185,7 @@ def get_output_descriptions(pkg, global_usedesc):
"""Prepare descriptions and usage information for each USE flag."""
local_usedesc = pkg.metadata.get_useflags()
- iuse = pkg.get_env_var("IUSE")
+ iuse = pkg.environment("IUSE")
if iuse:
usevar = uniqify([x.lstrip('+-') for x in iuse.split()])
diff --git a/pym/gentoolkit/package.py b/pym/gentoolkit/package.py
index 59d50bf..ecde59a 100644
--- a/pym/gentoolkit/package.py
+++ b/pym/gentoolkit/package.py
@@ -129,6 +129,42 @@ class Package(CPV):
return self._deps
+ def environment(self, envvars, tree=None):
+ """Returns one or more of the predefined environment variables.
+
+ Example usage:
+ >>> pkg = Package('sys-apps/portage-2.1.6.13')
+ >>> pkg.environment('USE')
+ 'elibc_glibc kernel_linux userland_GNU x86'
+ >>> pkg.environment(('USE', 'IUSE'))
+ ['elibc_glibc kernel_linux userland_GNU x86',
+ 'build doc epydoc selinux linguas_pl']
+
+ @type envvars: str or array
+ @param envvars: one or more of (DEPEND, SRC_URI, etc.)
+ @rtype: str or list
+ @return: str if envvars is str, list if envvars is array
+ """
+
+ if tree is None:
+ tree = self._get_trees()[0]
+ got_string = False
+ if isinstance(envvars, basestring):
+ got_string = True
+ envvars = (envvars,)
+ try:
+ result = tree.aux_get(str(self.cpv), envvars)
+ except (KeyError, errors.GentoolkitFatalError):
+ err = "aux_get returned unexpected results"
+ raise errors.GentoolkitFatalError(err)
+
+ if got_string:
+ return result[0]
+ return result
+
+ # Namespace compatibility 2009, djanderson
+ get_env_var = environment
+
def exists(self):
"""Return True if package exists in the Portage tree, else False"""
@@ -226,26 +262,6 @@ class Package(CPV):
return self.get_package_path().split(os.sep)[-3]
- def get_env_vars(self, envvars, tree=None):
- """Returns one or more of the predefined environment variables.
-
- @type envvars: array
- @param envvars: one or more of (DEPEND, SRC_URI, etc.)"""
-
- if tree is None:
- tree = self._get_trees()[0]
- try:
- result = tree.aux_get(str(self.cpv), envvars)
- except (KeyError, errors.GentoolkitFatalError):
- err = "aux_get returned unexpected results"
- raise errors.GentoolkitFatalError(err)
- return result
-
- def get_env_var(self, *args, **kwargs):
- """Returns one of the predefined environment variables."""
-
- return self.get_env_vars(args, **kwargs)[0]
-
def get_use_flags(self):
"""Returns the USE flags active at time of installation."""
@@ -342,7 +358,7 @@ class PackageFormatter(object):
'location': self.location,
'mask': pp.maskflag(maskmodes[self.format_mask_status()[0]]),
'package': pp.cpv(str(self.pkg.cpv)),
- 'slot': self.pkg.get_env_var("SLOT")
+ 'slot': self.pkg.environment("SLOT")
}
else:
return str(self.pkg.cpv)