Example #1
0
 def gen_edge(cls, src_id, dst_id, type, edge_name, ranking, props):
     edge = Edge()
     edge.src = src_id
     edge.dst = dst_id
     edge.type = type
     edge.name = edge_name
     edge.ranking = ranking
     edge.props = props
     return edge
Example #2
0
    def as_relationship(self):
        """convert the edge data to structure Relationship

        :return: Relationship
        """
        if len(self._row.values) < self.PROP_START_INDEX:
            raise RuntimeError('The row value is bad format, '
                               'as relationship failed: len is {}'
                               .format(len(self._row.values)))
        edge = Edge()
        edge.src = self._row.values[0]
        edge.type = self._row.values[1].get_iVal()
        edge.name = self._edge_name
        edge.ranking = self._row.values[2].get_iVal()
        edge.dst = self._row.values[3]
        edge.props = {}
        index = self.PROP_START_INDEX
        while index < len(self._col_names):
            edge.props[self._col_names[index]] = self._row.values[index]
            index = index + 1

        return Relationship(edge).set_decode_type(self._decode_type)
Example #3
0
def p_edge_spec(p):
    '''
        edge_spec :
                  | '[' edge_rank edge_props ']'
                  | '[' ':' LABEL edge_rank edge_props ']'
                  | '[' STRING '-' '>' STRING edge_rank edge_props ']'
                  | '[' ':' LABEL STRING '-' '>' STRING edge_rank edge_props ']'
    '''
    e = Edge()
    if len(p) == 5:
        e.ranking = p[2]
        e.props = p[3]
    elif len(p) == 7:
        e.name = p[3]
        e.ranking = p[4]
        e.props = p[5]
    elif len(p) == 9:
        e.src = p[2].get_sVal()
        e.dst = p[5].get_sVal()
        e.ranking = p[6]
        e.props = p[7]
    elif len(p) == 11:
        e.name = p[3]
        e.src = p[4].get_sVal()
        e.dst = p[7].get_sVal()
        e.ranking = p[8]
        e.props = p[9]
    p[0] = e
Example #4
0
 expected['{k1:1,"k2":true}'] = Value(mVal=Map({
     'k1': Value(iVal=1),
     'k2': Value(bVal=True)
 }))
 expected['()'] = Value(vVal=Vertex())
 expected['("vid")'] = Value(vVal=Vertex(vid='vid'))
 expected['("vid":t)'] = Value(vVal=Vertex(vid='vid', tags=[Tag(name='t')]))
 expected['("vid":t:t)'] = Value(
     vVal=Vertex(vid='vid', tags=[Tag(
         name='t'), Tag(name='t')]))
 expected['("vid":t{p1:0,p2:" "})'] = Value(vVal=Vertex(vid='vid',\
             tags=[Tag(name='t',props={'p1':Value(iVal=0),'p2':Value(sVal=' ')})]))
 expected['("vid":t1{p1:0,p2:" "}:t2{})'] = Value(vVal=Vertex(vid='vid',\
             tags=[Tag(name='t1',props={'p1':Value(iVal=0),'p2':Value(sVal=' ')}),\
                     Tag(name='t2',props={})]))
 expected['-->'] = Value(eVal=Edge(type=1))
 expected['<--'] = Value(eVal=Edge(type=-1))
 expected['-[]->'] = Value(eVal=Edge(type=1))
 expected['<-[]-'] = Value(eVal=Edge(type=-1))
 expected['-[:e]->'] = Value(eVal=Edge(name='e', type=1))
 expected['<-[:e]-'] = Value(eVal=Edge(name='e', type=-1))
 expected['-[@1]->'] = Value(eVal=Edge(type=1, ranking=1))
 expected['-[@-1]->'] = Value(eVal=Edge(type=1, ranking=-1))
 expected['<-[@-1]-'] = Value(eVal=Edge(type=-1, ranking=-1))
 expected['-["1"->"2"]->'] = Value(eVal=Edge(src='1', dst='2', type=1))
 expected['<-["1"->"2"]-'] = Value(eVal=Edge(src='1', dst='2', type=-1))
 expected['-[{}]->'] = Value(eVal=Edge(type=1, props={}))
 expected['<-[{}]-'] = Value(eVal=Edge(type=-1, props={}))
 expected['-[:e{}]->'] = Value(eVal=Edge(name='e', type=1, props={}))
 expected['<-[:e{}]-'] = Value(eVal=Edge(name='e', type=-1, props={}))
 expected['-[:e@123{}]->'] = Value(
Example #5
0
def p_edge_spec(p):
    '''
        edge : '[' edge_rank edge_props ']'
             | '[' ':' LABEL edge_props ']'
             | '[' ':' LABEL edge_rank edge_props ']'
             | '[' vid '-' '>' vid edge_props ']'
             | '[' vid '-' '>' vid edge_rank edge_props ']'
             | '[' ':' LABEL vid '-' '>' vid edge_props ']'
             | '[' ':' LABEL vid '-' '>' vid edge_rank edge_props ']'
             | '[' vid '<' '-' vid edge_props ']'
             | '[' vid '<' '-' vid edge_rank edge_props ']'
             | '[' ':' LABEL vid '<' '-' vid edge_props ']'
             | '[' ':' LABEL vid '<' '-' vid edge_rank edge_props ']'
    '''
    e = Edge()
    name = None
    rank = None
    src = None
    dst = None
    props = None
    etype = None

    if len(p) == 5:
        rank = p[2]
        props = p[3]
    elif len(p) == 6:
        name = p[3]
        props = p[4]
    elif len(p) == 7:
        name = p[3]
        rank = p[4]
        props = p[5]
    elif len(p) == 8:
        src = p[2]
        dst = p[5]
        if p[3] == '<' and p[4] == '-':
            etype = -1
        props = p[6]
    elif len(p) == 9:
        src = p[2]
        dst = p[5]
        if p[3] == '<' and p[4] == '-':
            etype = -1
        rank = p[6]
        props = p[7]
    elif len(p) == 10:
        name = p[3]
        src = p[4]
        dst = p[7]
        if p[5] == '<' and p[6] == '-':
            etype = -1
        props = p[8]
    elif len(p) == 11:
        name = p[3]
        src = p[4]
        dst = p[7]
        if p[5] == '<' and p[6] == '-':
            etype = -1
        rank = p[8]
        props = p[9]

    e.name = name
    e.ranking = rank
    e.src = src
    e.dst = dst
    e.props = props
    # default value of e.type is 1 if etype is None
    e.type = etype

    p[0] = Value(eVal=e)
Example #6
0
     tags=[
         Tag(name='t', props={
             'p1': Value(iVal=0),
             'p2': Value(sVal=' ')
         })
     ]))
 expected['("vid":t1{p1:0,p2:" "}:t2{})'] = Value(vVal=Vertex(
     vid='vid',
     tags=[
         Tag(name='t1', props={
             'p1': Value(iVal=0),
             'p2': Value(sVal=' ')
         }),
         Tag(name='t2', props={})
     ]))
 expected['[:e]'] = Value(eVal=Edge(name='e'))
 expected['[@1]'] = Value(eVal=Edge(ranking=1))
 expected['[@-1]'] = Value(eVal=Edge(ranking=-1))
 expected['["1"->"2"]'] = Value(eVal=Edge(src='1', dst='2'))
 expected['[1->2]'] = Value(eVal=Edge(src=1, dst=2))
 expected['[-1->-2]'] = Value(eVal=Edge(src=-1, dst=-2))
 expected['[hash("1")->hash("2")]'] = Value(
     eVal=Edge(src=murmurhash2('1'), dst=murmurhash2('2')))
 expected['[:e{}]'] = Value(eVal=Edge(name='e', props={}))
 expected['[:e@123{}]'] = Value(eVal=Edge(name='e', ranking=123, props={}))
 expected['[:e"1"->"2"@123{}]'] = Value(eVal=Edge(
     name='e',
     ranking=123,
     src='1',
     dst='2',
     props={},
Example #7
0
    for cell in row:
        v = nbv.parse(cell)
        if v is None:
            raise Exception('Unable to parse %s' % cell)
        list.append(v)
    return Row(list)


if __name__ == '__main__':
    headings = ['m', 'r', 'n']
    rows = [
        ['1', '2', '3'],
        ['()', '-->', '()'],
        ['("vid")', '<-[:e "1" -> "2" @-1 {p1: 0, p2: [1, 2, 3]}]-', '()'],
        ['<()-->()<--()>', '()', '"prop"'],
        ['EMPTY', 'NULL', 'BAD_TYPE'],
    ]
    expected = DataSet(column_names = headings,\
            rows = [
                Row([Value(iVal=1), Value(iVal=2), Value(iVal=3)]),
                Row([Value(vVal=Vertex()), Value(eVal=Edge(type=1)), Value(vVal=Vertex())]),
                Row([Value(vVal=Vertex('vid')), Value(eVal=Edge(name='e',type=-1,src='1',dst='2',ranking=-1,props={'p1': Value(iVal=0), 'p2': Value(lVal=List([Value(iVal=1),Value(iVal=2),Value(iVal=3)]))})), Value(vVal=Vertex())]),
                Row([Value(pVal=Path(src=Vertex(),steps=[Step(type=1,dst=Vertex()),Step(type=-1,dst=Vertex())])), Value(vVal=Vertex()), Value(sVal='prop')]),
                Row([Value(), Value(nVal=NullType.__NULL__), Value(nVal=NullType.BAD_TYPE)])
            ])

    table = bh.Table(headings=headings, rows=rows)
    dataset = parse(table)
    assert dataset == expected,\
                    "Parsed DataSet doesn't match, \nexpected: %s, \nactual: %s" % (expected, dataset)
Example #8
0
def p_edge_spec(p):
    '''
        edge : '[' edge_rank edge_props ']'
             | '[' ':' LABEL edge_props ']'
             | '[' ':' LABEL edge_rank edge_props ']'
             | '[' STRING '-' '>' STRING edge_props ']'
             | '[' STRING '-' '>' STRING edge_rank edge_props ']'
             | '[' ':' LABEL STRING '-' '>' STRING edge_props ']'
             | '[' ':' LABEL STRING '-' '>' STRING edge_rank edge_props ']'
             | '[' STRING '<' '-' STRING edge_props ']'
             | '[' STRING '<' '-' STRING edge_rank edge_props ']'
             | '[' ':' LABEL STRING '<' '-' STRING edge_props ']'
             | '[' ':' LABEL STRING '<' '-' STRING edge_rank edge_props ']'
    '''
    e = Edge()
    name = None
    rank = 0
    src = None
    dst = None
    props = None
    type = 1

    if len(p) == 5:
        rank = p[2]
        props = p[3]
    elif len(p) == 6:
        name = p[3]
        props = p[4]
    elif len(p) == 7:
        name = p[3]
        rank = p[4]
        props = p[5]
    elif len(p) == 8:
        src = p[2].get_sVal()
        dst = p[5].get_sVal()
        if p[3] == '<' and p[4] == '-':
            type = -1
        props = p[6]
    elif len(p) == 9:
        src = p[2].get_sVal()
        dst = p[5].get_sVal()
        if p[3] == '<' and p[4] == '-':
            type = -1
        rank = p[6]
        props = p[7]
    elif len(p) == 10:
        name = p[3]
        src = p[4].get_sVal()
        dst = p[7].get_sVal()
        if p[5] == '<' and p[6] == '-':
            type = -1
        props = p[8]
    elif len(p) == 11:
        name = p[3]
        src = p[4].get_sVal()
        dst = p[7].get_sVal()
        if p[5] == '<' and p[6] == '-':
            type = -1
        rank = p[8]
        props = p[9]

    e.name = None if name is None else bytes(name, 'utf-8')
    e.ranking = rank
    e.src = src
    e.dst = dst
    e.props = props
    e.type = type

    p[0] = Value(eVal=e)
Example #9
0
     tags=[
         Tag(name='t', props={
             'p1': Value(iVal=0),
             'p2': Value(sVal=' ')
         })
     ]))
 expected['("vid":t1{p1:0,p2:" "}:t2{})'] = Value(vVal=Vertex(
     vid='vid',
     tags=[
         Tag(name='t1', props={
             'p1': Value(iVal=0),
             'p2': Value(sVal=' ')
         }),
         Tag(name='t2', props={})
     ]))
 expected['[:e]'] = Value(eVal=Edge(name='e'))
 expected['[@1]'] = Value(eVal=Edge(ranking=1))
 expected['[@-1]'] = Value(eVal=Edge(ranking=-1))
 expected['["1"->"2"]'] = Value(eVal=Edge(src='1', dst='2'))
 expected['[:e{}]'] = Value(eVal=Edge(name='e', props={}))
 expected['[:e@123{}]'] = Value(eVal=Edge(name='e', ranking=123, props={}))
 expected['[:e"1"->"2"@123{}]'] = Value(
     eVal=Edge(name='e', ranking=123, src='1', dst='2', props={}))
 expected['<()>'] = Value(pVal=Path(src=Vertex()))
 expected['<("vid")>'] = Value(pVal=Path(src=Vertex(vid='vid')))
 expected['<()-->()>'] = Value(
     pVal=Path(src=Vertex(), steps=[Step(type=1, dst=Vertex())]))
 expected['<()<--()>'] = Value(
     pVal=Path(src=Vertex(), steps=[Step(type=-1, dst=Vertex())]))
 expected['<()-->()-->()>'] = Value(pVal=Path(
     src=Vertex(),