diff options
Diffstat (limited to 'pym/portage/env/loaders.py')
-rw-r--r-- | pym/portage/env/loaders.py | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/pym/portage/env/loaders.py b/pym/portage/env/loaders.py index ae9579a86..e7f5289a7 100644 --- a/pym/portage/env/loaders.py +++ b/pym/portage/env/loaders.py @@ -67,6 +67,40 @@ class DataLoader(object): """ raise NotImplementedError("Please override in a subclass") +class EnvLoader(DataLoader): + """ Class to access data in the environment """ + def __init__(self, validator): + DataLoader.__init__(self, validator) + + def load(self): + return os.environ + +class TestTextLoader(DataLoader): + """ You give it some data, it 'loads' it for you, no filesystem access + """ + def __init__(self, validator): + DataLoader.__init__(self, validator) + self.data = {} + self.errors = {} + + def setData(self, text): + """Explicitly set the data field + Args: + text - a dict of data typical of Loaders + Returns: + None + """ + if isinstance(text, dict): + self.data = text + else: + raise ValueError("setData requires a dict argument") + + def setErrors(self, errors): + self.errors = errors + + def load(self): + return (self.data, self.errors) + class FileLoader(DataLoader): """ Class to access data in files """ @@ -234,4 +268,3 @@ class KeyValuePairFileLoader(FileLoader): data[key].append(value) else: data[key] = value - |