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
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)
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
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(
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)
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={},
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)
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)
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(),