aboutsummaryrefslogtreecommitdiff
path: root/src/Exports.py
diff options
context:
space:
mode:
authorGravatar jesopo2018-09-24 15:13:27 +0100
committerGravatar jesopo2018-09-24 15:13:27 +0100
commitecb9d7cb3f4435457560e03201bbed57a469d548 (patch)
tree5a010f97c209558cdd2d40327d41e6806aedde94 /src/Exports.py
parentRemove 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.py44
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]