in src/graph_notebook/network/gremlin/GremlinNetwork.py [0:0]
def add_path_edge(self, edge, from_id='', to_id='', data=None):
if data is None:
data = {}
if type(edge) is Edge:
from_id = from_id if from_id != '' else edge.outV.id
if isinstance(from_id, uuid.UUID):
from_id = str(from_id)
to_id = to_id if to_id != '' else edge.inV.id
if isinstance(to_id, uuid.UUID):
to_id = str(to_id)
edge_id = str(edge.id) if isinstance(edge.id, uuid.UUID) else edge.id
edge_label_full = ''
using_custom_tooltip = False
tooltip_display_is_set = True
edge_title = edge.label
if self.edge_tooltip_property and self.edge_tooltip_property != self.edge_display_property:
using_custom_tooltip = True
tooltip_display_is_set = False
data['properties'] = {'id': edge_id, 'label': edge.label, 'outV': str(edge.outV), 'inV': str(edge.inV)}
edge_label = edge_title if len(edge_title) <= self.edge_label_max_length \
else edge_title[:self.edge_label_max_length - 3] + '...'
if self.edge_display_property:
label_property_raw_value = self.get_explicit_edge_property_value(data, edge, self.edge_display_property)
if label_property_raw_value:
edge_label_full, edge_label = self.strip_and_truncate_label_and_title(label_property_raw_value,
self.edge_label_max_length)
if not using_custom_tooltip:
edge_title = edge_label_full
if using_custom_tooltip:
tooltip_property_raw_value = self.get_explicit_edge_property_value(data, edge,
self.edge_tooltip_property)
if tooltip_property_raw_value:
edge_title, label_plc = self.strip_and_truncate_label_and_title(tooltip_property_raw_value,
self.edge_label_max_length)
tooltip_display_is_set = True
if not tooltip_display_is_set and edge_label_full:
edge_title = edge_label_full
self.get_explicit_edge_property_value(data, edge, self.edge_tooltip_property)
data['title'] = edge_title
self.add_edge(from_id=from_id, to_id=to_id, edge_id=edge_id, label=edge_label, title=edge_title,
data=data)
elif type(edge) is dict:
properties = {}
edge_id = ''
edge_label = ''
edge_label_full = ''
edge_title = ''
display_is_set = False
tooltip_display_is_set = True
using_custom_tooltip = False
if self.edge_tooltip_property and self.edge_tooltip_property != self.edge_display_property:
using_custom_tooltip = True
tooltip_display_is_set = False
if T.label in edge.keys() or 'label' in edge.keys():
label_key = T.label if T.label in edge.keys() else 'label'
edge_label_raw = edge[label_key]
edge_title_plc = str(edge_label_raw)
edge_title, edge_label = self.strip_and_truncate_label_and_title(edge_title_plc,
self.edge_label_max_length)
else:
edge_label_raw = ''
for k in edge:
if str(k) in [T_ID, 'id', '~id']:
edge_id = str(edge[k])
if isinstance(edge[k], dict): # Handle Direction properties, where the value is a map
properties[k] = get_id(edge[k])
elif isinstance(edge[k], Decimal):
properties[k] = float(edge[k])
elif isinstance(edge[k], uuid.UUID):
properties[k] = str(edge[k])
else:
properties[k] = edge[k]
if not display_is_set:
label_property_raw_value = self.get_dict_element_property_value(edge, k, edge_label_raw,
self.edge_display_property)
if label_property_raw_value:
edge_label_full, edge_label = self.strip_and_truncate_label_and_title(
label_property_raw_value, self.edge_label_max_length)
if not using_custom_tooltip:
edge_title = edge_label_full
display_is_set = True
if not tooltip_display_is_set:
tooltip_property_raw_value = self.get_dict_element_property_value(edge, k, edge_label_raw,
self.edge_tooltip_property)
if tooltip_property_raw_value:
edge_title, label_plc = self.strip_and_truncate_label_and_title(tooltip_property_raw_value,
self.edge_label_max_length)
tooltip_display_is_set = True
if not tooltip_display_is_set and edge_label_full:
edge_title = edge_label_full
data['properties'] = properties
data['title'] = edge_title
self.add_edge(from_id=from_id, to_id=to_id, edge_id=edge_id, label=edge_label, title=edge_title, data=data)
else:
edge_title, edge_label = self.strip_and_truncate_label_and_title(edge, self.edge_label_max_length)
data['title'] = edge_title
self.add_edge(from_id=from_id, to_id=to_id, edge_id=edge, label=edge_label, title=edge_title, data=data)