summaryrefslogtreecommitdiffstats
path: root/weatbag/items/__init__.py
diff options
context:
space:
mode:
authorThomas Kluyver <takowl@gmail.com>2013-01-13 15:23:46 +0000
committerThomas Kluyver <takowl@gmail.com>2013-01-13 15:23:46 +0000
commit8ac7a65685ffe58529087bbe5a0063d1e0168f5c (patch)
treec25e5bac9f8c51627f2f9f1c9fa8380d075f7841 /weatbag/items/__init__.py
parentd327e21c9c8fec8dea82035e87bfd1a3ba2b813c (diff)
New framework to allow combining items.
Diffstat (limited to 'weatbag/items/__init__.py')
-rw-r--r--weatbag/items/__init__.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/weatbag/items/__init__.py b/weatbag/items/__init__.py
new file mode 100644
index 0000000..3d0922f
--- /dev/null
+++ b/weatbag/items/__init__.py
@@ -0,0 +1,26 @@
+from importlib import import_module
+from types import ModuleType
+
+def get_item_module(name):
+ """Returns the module for that item, or a blank module if no module exists.
+ """
+ name = name.replace(' ','_')
+ try:
+ return import_module('weatbag.items.' + name)
+ except ImportError:
+ return ModuleType(name, "Dummy Module")
+
+
+def _combine(item1, item2):
+ "Try combining items one way"
+ try:
+ return get_item_module(item1).combine(item2)
+ except AttributeError:
+ pass
+
+def combine(item1, item2):
+ "Try combining items either way round."
+ results = _combine(item1, item2)
+ if results is None:
+ results = _combine(item2, item1)
+ return results