diff options
| author | 2018-09-24 15:13:27 +0100 | |
|---|---|---|
| committer | 2018-09-24 15:13:27 +0100 | |
| commit | ecb9d7cb3f4435457560e03201bbed57a469d548 (patch) | |
| tree | 5a010f97c209558cdd2d40327d41e6806aedde94 /src/Exports.py | |
| parent | Remove empty spaces in coins.py (diff) | |
| signature | ||
Move most code in root directory to src/
Diffstat (limited to 'src/Exports.py')
| -rw-r--r-- | src/Exports.py | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/Exports.py b/src/Exports.py new file mode 100644 index 00000000..8baca50d --- /dev/null +++ b/src/Exports.py @@ -0,0 +1,44 @@ + + +class ExportsContext(object): + def __init__(self, parent, context): + self._parent = parent + self.context = context + + def add(self, setting, value): + self._parent._context_add(self.context, setting, value) + def get_all(self, setting): + return self._parent.get_all(setting) + +class Exports(object): + def __init__(self): + self._exports = {} + self._context_exports = {} + + def new_context(self, context): + return ExportsContext(self, context) + + def add(self, setting, value): + self._add(None, setting, value) + def _context_add(self, context, setting, value): + self._add(context, setting, value) + def _add(self, context, setting, value): + if context == None: + if not setting in self_exports: + self._exports[setting] = [] + self._exports[setting].append(value) + else: + if not context in self._context_exports: + self._context_exports[context] = {} + if not setting in self._context_exports[context]: + self._context_exports[context][setting] = [] + self._context_exports[context][setting].append(value) + + def get_all(self, setting): + return self._exports.get(setting, []) + sum([ + exports.get(setting, []) for exports in + self._context_exports.values()], []) + + def purge_context(self, context): + if context in self._context_exports: + del self._context_exports[context] |
