summaryrefslogtreecommitdiff
path: root/portato/backend/portage/sets.py
diff options
context:
space:
mode:
Diffstat (limited to 'portato/backend/portage/sets.py')
-rw-r--r--portato/backend/portage/sets.py168
1 files changed, 84 insertions, 84 deletions
diff --git a/portato/backend/portage/sets.py b/portato/backend/portage/sets.py
index 24ceaca..8d8ef28 100644
--- a/portato/backend/portage/sets.py
+++ b/portato/backend/portage/sets.py
@@ -17,130 +17,130 @@ import itertools as itt
import portage
try:
- import portage.dep as portage_dep
+ import portage.dep as portage_dep
except ImportError:
- import portage_dep
+ import portage_dep
from .. import system
from ...helper import debug
class Set(object):
- def get_pkgs(self, key, is_regexp, masked, with_version, only_cpv):
- raise NotImplementedError
+ def get_pkgs(self, key, is_regexp, masked, with_version, only_cpv):
+ raise NotImplementedError
- def find (self, key, masked = False, with_version = True, only_cpv = False):
- if key is None: key = ""
-
- is_regexp = key == "" or ("*" in key and key[0] not in ("*","=","<",">","~","!"))
+ def find (self, key, masked = False, with_version = True, only_cpv = False):
+ if key is None: key = ""
+
+ is_regexp = key == "" or ("*" in key and key[0] not in ("*","=","<",">","~","!"))
- try:
- t = self.get_pkgs(key, is_regexp, masked, with_version, only_cpv)
- # catch the "ambigous package" Exception
- except ValueError, e:
- if isinstance(e[0], list):
- t = set()
- for cp in e[0]:
- t.update(self.get_pkgs(cp, is_regexp, masked, with_version, only_cpv))
- else:
- raise
+ try:
+ t = self.get_pkgs(key, is_regexp, masked, with_version, only_cpv)
+ # catch the "ambigous package" Exception
+ except ValueError, e:
+ if isinstance(e[0], list):
+ t = set()
+ for cp in e[0]:
+ t.update(self.get_pkgs(cp, is_regexp, masked, with_version, only_cpv))
+ else:
+ raise
- return t
+ return t
class FilterSet (Set):
- def get_list(self):
- raise NotImplementedError
-
- def get_pkgs (self, key, is_regexp, masked, with_version, only_cpv):
- t = set()
- for pkg in self.get_list():
- if is_regexp:
- if not re.match(key, pkg, re.I): continue
+ def get_list(self):
+ raise NotImplementedError
+
+ def get_pkgs (self, key, is_regexp, masked, with_version, only_cpv):
+ t = set()
+ for pkg in self.get_list():
+ if is_regexp:
+ if not re.match(key, pkg, re.I): continue
- if not with_version:
- t.add(portage_dep.dep_getkey(pkg))
-
- t.add(system.find_best_match(pkg, only_cpv = True))
+ if not with_version:
+ t.add(portage_dep.dep_getkey(pkg))
+
+ t.add(system.find_best_match(pkg, only_cpv = True))
- return t
+ return t
class PortageSet (FilterSet):
- def __init__ (self, name):
- FilterSet.__init__(self)
- debug("Loading portage set '%s'", name)
- self.portageSet = system.settings.setsconfig.getSets()[name]
+ def __init__ (self, name):
+ FilterSet.__init__(self)
+ debug("Loading portage set '%s'", name)
+ self.portageSet = system.settings.setsconfig.getSets()[name]
- def get_list(self):
- return itt.imap(str, self.portageSet.getAtoms())
+ def get_list(self):
+ return itt.imap(str, self.portageSet.getAtoms())
class SystemSet (FilterSet):
- def get_list(self):
- for cp in system.settings.settings.packages:
- if cp[0] == "*": yield cp[1:]
+ def get_list(self):
+ for cp in system.settings.settings.packages:
+ if cp[0] == "*": yield cp[1:]
class WorldSet (FilterSet):
- def get_list(self):
- with open(portage.WORLD_FILE) as f:
- for cp in f:
- cp = cp.strip()
- if cp and cp[0] != "#":
- yield cp
+ def get_list(self):
+ with open(portage.WORLD_FILE) as f:
+ for cp in f:
+ cp = cp.strip()
+ if cp and cp[0] != "#":
+ yield cp
class InstalledSet (Set):
- def get_pkgs (self, key, is_regexp, masked, with_version, only_cpv):
- if is_regexp:
- if with_version:
- t = system.settings.vartree.dbapi.cpv_all()
- else:
- t = system.settings.vartree.dbapi.cp_all()
+ def get_pkgs (self, key, is_regexp, masked, with_version, only_cpv):
+ if is_regexp:
+ if with_version:
+ t = system.settings.vartree.dbapi.cpv_all()
+ else:
+ t = system.settings.vartree.dbapi.cp_all()
- if key:
- t = filter(lambda x: re.match(key, x, re.I), t)
+ if key:
+ t = filter(lambda x: re.match(key, x, re.I), t)
- return set(t)
- else:
- return set(system.settings.vartree.dbapi.match(key))
+ return set(t)
+ else:
+ return set(system.settings.vartree.dbapi.match(key))
class TreeSet (Set):
- def get_pkgs (self, key, is_regexp, masked, with_version, only_cpv):
- if is_regexp:
- if with_version:
- t = system.settings.porttree.dbapi.cpv_all()
- else:
- t = system.settings.porttree.dbapi.cp_all()
+ def get_pkgs (self, key, is_regexp, masked, with_version, only_cpv):
+ if is_regexp:
+ if with_version:
+ t = system.settings.porttree.dbapi.cpv_all()
+ else:
+ t = system.settings.porttree.dbapi.cp_all()
- if key:
- t = filter(lambda x: re.match(key, x, re.I), t)
+ if key:
+ t = filter(lambda x: re.match(key, x, re.I), t)
- elif masked:
- t = system.settings.porttree.dbapi.xmatch("match-all", key)
- else:
- t = system.settings.porttree.dbapi.match(key)
+ elif masked:
+ t = system.settings.porttree.dbapi.xmatch("match-all", key)
+ else:
+ t = system.settings.porttree.dbapi.match(key)
- return set(t)
+ return set(t)
class AllSet (Set):
-
- def __init__ (self):
- Set.__init__(self)
- self.tree = TreeSet()
- self.installed = InstalledSet()
+
+ def __init__ (self):
+ Set.__init__(self)
+ self.tree = TreeSet()
+ self.installed = InstalledSet()
- def find (self, *args, **kwargs):
- return self.tree.find(*args, **kwargs) | self.installed.find(*args, **kwargs)
+ def find (self, *args, **kwargs):
+ return self.tree.find(*args, **kwargs) | self.installed.find(*args, **kwargs)
class UninstalledSet (Set):
- def __init__ (self):
- Set.__init__(self)
- self.all = AllSet()
- self.installed = InstalledSet()
+ def __init__ (self):
+ Set.__init__(self)
+ self.all = AllSet()
+ self.installed = InstalledSet()
- def find (self, *args, **kwargs):
- return self.all.find(*args, **kwargs) - self.installed.find(*args, **kwargs)
+ def find (self, *args, **kwargs):
+ return self.all.find(*args, **kwargs) - self.installed.find(*args, **kwargs)