示例#1
0
 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
示例#2
0
    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)
示例#3
0
 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
示例#4
0
 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)
示例#5
0
    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}')
示例#6
0
 def in_id(self) -> VertexId:
     value = self.__tokens[2]
     return VertexId(value)
示例#7
0
 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)