summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLV-426 <lv-426@taproot.org.il>2015-01-06 15:04:17 +0200
committerLV-426 <lv-426@taproot.org.il>2015-01-06 17:30:14 +0200
commitb4d9dadcdc5351d188e06c59eab038576b59a5ef (patch)
tree895dd10038b0543b02545c0f3b2aa1f5f3737ab2
parent039ae996f85edb9727e46db949240efe3c16ddfc (diff)
meta_attr_list_to_meta_attr_map(): harded assertions regarding link meta-attr '__type'
-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