summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/neo4j_util.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/server/neo4j_util.py b/src/server/neo4j_util.py
index 0762fdef..9af9eaa0 100644
--- a/src/server/neo4j_util.py
+++ b/src/server/neo4j_util.py
@@ -275,11 +275,18 @@ def meta_attr_list_to_meta_attr_map(e_set, meta_attr='__label_set'):
in: [{'id':0, '__type': 'T'}, {'id':1, '__type': 'T'}]
out: { 'T': [{'id':0}, {'id':1}] }
+
+ [!] as of 2015-01 multiple labels for relations are not supported,
+ which is why meta_attr='__type' should be used when calling this
+ function to map links
"""
ret = {}
for v in e_set:
- assert None != v[meta_attr], 'missing type meta-attribute'
- assert 1 == len(v[meta_attr]), 'only single-type mapping currently suppoerted'
+ meta_attr_list = v.get(meta_attr)
+ assert None != meta_attr_list, 'missing type meta-attribute'
+ assert list == type(meta_attr_list), 'type meta-attribute not in list form'
+ assert len(meta_attr_list) < 2, 'only single-type mapping currently suppoerted'
+ assert 1 == len(meta_attr_list), 'missing meta attribute __label_set or __type'
v_type = v[meta_attr][0]
if None == ret.get(v_type): # init type list if necessary