def test_id(self, client: HiroClient): from arago.hiro.backend.six.graph import Hiro6GraphModel graph = Hiro6GraphModel(client) vertex_id = VertexId(OgitEntity.OGIT_COMMENT.value.name.uri) res = graph.vertex.get(vertex_id) assert isinstance(res, Vertex) pass
def test_resolve_vertex_id(self): # def resolve_vertex_id( # vertex: Union[None, Vertex, Mapping[Union[OgitAttribute, Attribute, str], Any]], # vertex_id: Union[None, str, VertexId] # ) -> Optional[VertexId]: assert None is resolve_vertex_id(None, None) id_1 = VertexId('None') assert isinstance(id_1, VertexId) id_2 = resolve_vertex_id(None, 'None') assert id(id_1) == id(id_2) id_3 = resolve_vertex_id(None, id_1) assert id(id_1) == id(id_3) id_4 = resolve_vertex_id({ 'ogit/_id': 'None' }, None) assert id(id_1) == id(id_4) id_5 = resolve_vertex_id({ OgitAttribute.OGIT__ID: 'None' }, None) assert id(id_1) == id(id_5) id_6 = resolve_vertex_id({ OgitAttribute.OGIT__ID.value: 'None' }, None) assert id(id_1) == id(id_6) id_7 = resolve_vertex_id({ OgitAttribute.OGIT__ID.value: id_1 }, None) assert id(id_1) == id(id_7) id_7 = resolve_vertex_id({ OgitAttribute.OGIT__ID.value: id_1 }, None) assert id(id_1) == id(id_7)
def test_graph_model_2(self, client: HiroClient): from arago.hiro.backend.six.search import Hiro6SearchModel search = Hiro6SearchModel(client) res = search.graph(VertexId('ogit/Node'), 'outE()', result_type=Edge) assert isinstance(res, Generator) i = next(res) assert isinstance(i, Edge) pass
def transform(src_item: Dict[str, Any]) -> HistoryEntry: data_id = VertexId(src_item['identity']) action = HistoryAction[src_item['action']] data = to_vertex(src_item['data'], self.__base_client) meta = HistoryMeta(**src_item['meta']) return HistoryEntry(data_id, action, data, meta)
def __init__( self, data: Optional[Mapping[Union[str, OntologyAttribute, OgitAttribute], Any]], client: Optional['HiroClient'] = None, draft: bool = True ) -> None: super().__init__() self.client = client self._draft = draft m = GraphDict(data) k = VirtualAttribute.OGIT__GRAPH_TYPE if k in m: graph_type = GraphType(m[k]) if graph_type is not GraphType.EDGE: raise RuntimeError() else: graph_type = None k = OgitAttribute.OGIT__ID if k in m: self.id = EdgeId(m[k]) del m[k] k = OgitAttribute.OGIT__TYPE if k in m: verb: OgitVerb = OgitVerb[m[k]] self.type = verb.value del m[k] k = VirtualAttribute.OGIT__OUT_TYPE if k in m: entity: OgitEntity = OgitEntity[m[k]] self.out_type = entity.value del m[k] k = VirtualAttribute.OGIT__OUT_ID if k in m: self.out_id = VertexId(m[k]) del m[k] k = OgitAttribute.OGIT__EDGE_ID if k in m: self.edge_id = EdgeId(m[k]) del m[k] k = VirtualAttribute.OGIT__IN_TYPE if k in m: entity: OgitEntity = OgitEntity[m[k]] self.in_type = entity.value del m[k] k = VirtualAttribute.OGIT__IN_ID if k in m: self.in_id = VertexId(m[k]) del m[k] k = OgitAttribute.OGIT__CREATOR_APP if k in m: self.created_by_app = VertexId(m[k]) del m[k] k = OgitAttribute.OGIT__CREATOR if k in m: self.created_by = m[k] del m[k] k = OgitAttribute.OGIT__CREATED_ON if k in m: self.created_on = timestamp_ms_to_datetime(m[k]) del m[k] k = OgitAttribute.OGIT__DELETED_BY_APP if k in m: self.deleted_by_app = VertexId(m[k]) del m[k] k = OgitAttribute.OGIT__DELETED_BY if k in m: self.deleted_by = m[k] del m[k] k = OgitAttribute.OGIT__DELETED_ON if k in m: self.deleted_on = timestamp_ms_to_datetime(m[k]) del m[k] k = OgitAttribute.OGIT__IS_DELETED if k in m: self.is_deleted = to_bool(m[k]) del m[k] if graph_type: k = VirtualAttribute.OGIT__GRAPH_TYPE del m[k] for k in m: if isinstance(k, (OgitAttribute, OntologyAttribute)): raise KeyError(f'Unexpected {k!r} found') if not isinstance(k, str): raise TypeError(f'Unexpected type of key found: {type(k)}') if k.startswith('ogit/_'): raise KeyError(f'Unexpected system attribute found: {k!r}') elif k.startswith('ogit/'): raise KeyError(f'Unexpected OGIT attribute found: {k!r}') elif k.startswith('/'): raise KeyError(f'Unexpected free attribute found: {k!r}') else: raise KeyError(f'Unexpected key found: {k!r}')
def in_id(self) -> VertexId: value = self.__tokens[2] return VertexId(value)
def out_id(self) -> VertexId: value = self.__tokens[0] return VertexId(value)
def test_graph_model_2(self, client: HiroClient): search = client.model.search res = search.graph(VertexId('ogit/Node'), 'outE()', result_type=Edge) assert isinstance(res, Generator) i = next(res) assert isinstance(i, Edge)
def test_graph_model(self, client: HiroClient): search = client.model.search res = search.graph(VertexId('ogit/Node'), 'out()') assert isinstance(res, Generator) i = next(res) assert isinstance(i, Vertex)