def from_graph(graph, node, node_map): # type: (Graph, Node) -> iter if node in node_map: return node_map[node] try: e_node = list(graph.objects(node, MAP.mapsResourcesFrom)).pop() except IndexError: pass endpoint = Endpoint.from_graph(graph, e_node, node_map=node_map) am = AccessMapping(endpoint) try: for m in graph.objects(node, MAP.hasMapping): am.mappings.add(Mapping.from_graph(graph, m, node_map=node_map)) am.__find_vars() except IndexError: pass try: am.order = list(graph.objects(node, MAP.order)).pop().toPython() except IndexError: pass node_map[node] = am return am
def from_graph(graph, node, node_map, **kwargs): # type: (Graph, Node, dict, dict) -> AccessMapping if node in node_map: return node_map[node] try: e_node = list(graph.objects(node, MAP.mapsResourcesFrom)).pop() except IndexError: endpoint = None else: endpoint = Endpoint.from_graph(graph, e_node, node_map=node_map) am = AccessMapping(endpoint) try: for m in graph.objects(node, MAP.hasMapping): am.mappings.add( Mapping.from_graph(graph, m, node_map=node_map, **kwargs)) am.__find_vars() except IndexError: pass try: am.order = list(graph.objects(node, MAP.order)).pop().toPython() except IndexError: pass try: am.id = list(graph.objects(node, CORE.identifier)).pop() except IndexError: pass node_map[node] = am return am
def from_graph(graph, node, node_map): # type: (Graph, Node) -> iter endpoint = Endpoint.from_graph(graph, node, node_map=node_map) rsource = RDFSource(endpoint) return rsource