diff options
Diffstat (limited to 'pym/portage/sets/files.py')
-rw-r--r-- | pym/portage/sets/files.py | 28 |
1 files changed, 11 insertions, 17 deletions
diff --git a/pym/portage/sets/files.py b/pym/portage/sets/files.py index 05a44e7bd..b3f85d553 100644 --- a/pym/portage/sets/files.py +++ b/pym/portage/sets/files.py @@ -9,23 +9,20 @@ from portage.util import grabfile, write_atomic, ensure_dirs from portage.const import PRIVATE_PATH from portage.locks import lockfile, unlockfile from portage import portage_gid -from portage.sets.dbapi import PackageSet, EditablePackageSet -from portage.env.config import ConfigLoaderKlass, GenericFile +from portage.sets import PackageSet, EditablePackageSet from portage.env.loaders import ItemFileLoader, KeyListFileLoader -from portage.env.validators import PackagesFileValidator, ValidAtomValidator +from portage.env.validators import ValidAtomValidator class StaticFileSet(EditablePackageSet): _operations = ["merge", "unmerge"] - def __init__(self, name, filename, data = None): + def __init__(self, name, filename): super(StaticFileSet, self).__init__(name) self._filename = filename self._mtime = None self.description = "Package set loaded from file %s" % self._filename - self.data = data - if data is None: - self.data = ConfigLoaderKlass(ItemFileLoader(filename=self._filename, - validator=PackagesFileValidator)) + self.loader = ItemFileLoader(self._filename, ValidAtomValidator) + metadata = grabfile(self._filename + ".metadata") key = None value = [] @@ -55,27 +52,24 @@ class StaticFileSet(EditablePackageSet): mtime = None if (not self._loaded or self._mtime != mtime): try: - self.data.load() + data, errors = self.loader.load() except EnvironmentError, e: if e.errno != errno.ENOENT: raise del e - self._setAtoms(self.data.keys()) + self._setAtoms(data.keys()) self._mtime = mtime class ConfigFileSet(PackageSet): - def __init__(self, name, filename, loader=None, validator=None): + def __init__(self, name, filename): super(ConfigFileSet, self).__init__(name) self._filename = filename self.description = "Package set generated from %s" % self._filename - if loader is None: - self.loader = GenericFile(filename=self._filename) - else: - self.loader = loader(filename, validator) + self.loader = KeyListFileLoader(self._filename, ValidAtomValidator) def load(self): - self.loader.load() - self._setAtoms(self.loader.keys()) + data, errors = self.loader.load() + self._setAtoms(data.keys()) class WorldSet(StaticFileSet): description = "Set of packages that were directly installed by the user" |