示例#1
0
def create_edge_serve(line):
    assert len(line) == 4
    edge = ttypes.Edge()
    src = ttypes.Value()
    src.set_sVal(utf8b(line[0]))
    edge.src = src
    dst = ttypes.Value()
    if '@' in line[1]:
        temp = list(map(lambda i: i.strip('"'), re.split('@', line[1])))
        dst.set_sVal(utf8b(temp[0]))
        edge.dst = dst
        edge.ranking = int(temp[1])
    else:
        dst.set_sVal(utf8b(line[1]))
        edge.dst = dst
        edge.ranking = 0
    edge.type = 1
    edge.name = utf8b('serve')
    props = dict()
    start_year = ttypes.Value()
    start_year.set_iVal(int(line[2]))
    end_year = ttypes.Value()
    end_year.set_iVal(int(line[3]))
    props[utf8b('start_year')] = start_year
    props[utf8b('end_year')] = end_year
    edge.props = props
    return edge
    def test_as_map(self):
        value = ttypes.Value()
        str_val1 = ttypes.Value()
        str_val1.set_sVal(b"word")
        str_val2 = ttypes.Value()
        str_val2.set_sVal(b"car")
        value.set_mVal({b"a": str_val1, b"b": str_val2})
        value_wrapper = ValueWrapper(value)
        assert value_wrapper.is_map()

        map_val = value_wrapper.as_map()
        assert isinstance(map_val, dict)
    def test_as_list(self):
        value = ttypes.Value()
        str_val1 = ttypes.Value()
        str_val1.set_sVal(b"word")
        str_val2 = ttypes.Value()
        str_val2.set_sVal(b"car")
        value.set_lVal([str_val1, str_val2])
        value_wrapper = ValueWrapper(value)
        assert value_wrapper.is_list()

        list_val = value_wrapper.as_list()
        assert isinstance(list_val, list)
 def get_vertex_value(self, vid):
     vertex = ttypes.Vertex()
     vertex.vid = ttypes.Value(sVal=vid)
     vertex.tags = list()
     for i in range(0, 3):
         tag = ttypes.Tag()
         tag.name = ('tag{}'.format(i)).encode('utf-8')
         tag.props = dict()
         for j in range(0, 5):
             value = ttypes.Value()
             value.set_iVal(j)
             tag.props[('prop{}'.format(j)).encode('utf-8')] = value
         vertex.tags.append(tag)
     return vertex
示例#5
0
    def test_as_time(self):
        time = Time()
        time.hour = 10
        time.minute = 20
        time.sec = 10
        time.microsec = 100
        value = ttypes.Value(tVal=time)
        value_wrapper = ValueWrapper(value)
        assert value_wrapper.is_time()

        time_val = value_wrapper.as_time()
        time_val.set_timezone_offset(28800)
        assert isinstance(time_val, TimeWrapper)
        assert time_val.get_hour() == 10
        assert time_val.get_minute() == 20
        assert time_val.get_sec() == 10
        assert time_val.get_microsec() == 100
        assert 'utc time: 10:20:10.000100, timezone_offset: 28800' == str(
            time_val)
        assert '18:20:10.000100' == time_val.get_local_time_str()
        new_time = copy.deepcopy(time)
        new_time.hour = 18
        assert new_time == time_val.get_local_time()

        new_time_2 = copy.deepcopy(time)
        new_time_2.hour = 12
        assert new_time_2 == time_val.get_local_time_by_timezone_offset(7200)
示例#6
0
    def test_as_datetime(self):
        datetime = DateTime()
        datetime.year = 123
        datetime.month = 2
        datetime.day = 1
        datetime.hour = 10
        datetime.minute = 20
        datetime.sec = 10
        datetime.microsec = 100
        value = ttypes.Value(dtVal=datetime)
        value_wrapper = ValueWrapper(value)
        assert value_wrapper.is_datetime()

        datetime_val = value_wrapper.as_datetime()
        datetime_val.set_timezone_offset(28800)
        assert isinstance(datetime_val, DateTimeWrapper)
        assert datetime_val.get_hour() == 10
        assert datetime_val.get_minute() == 20
        assert datetime_val.get_sec() == 10
        assert datetime_val.get_microsec() == 100
        assert 'utc datetime: 123-02-01T10:20:10.000100, timezone_offset: 28800' == str(
            datetime_val)
        assert '123-02-01T18:20:10.000100' == datetime_val.get_local_datetime_str(
        )
        new_datetime = copy.deepcopy(datetime)
        new_datetime.hour = 18
        assert new_datetime == datetime_val.get_local_datetime()

        new_datetime_2 = copy.deepcopy(datetime)
        new_datetime_2.hour = 12
        assert new_datetime_2 == datetime_val.get_local_datetime_by_timezone_offset(
            7200)
示例#7
0
 def to_value(self, col):
     value = CommonTtypes.Value()
     if isinstance(col, bool):
         value.set_bVal(col)
     elif isinstance(col, int):
         value.set_iVal(col)
     elif isinstance(col, float):
         value.set_fVal(col)
     elif isinstance(col, str):
         value.set_sVal(col.encode('utf-8'))
     elif isinstance(col, dict):
         map_val = CommonTtypes.Map()
         map_val.kvs = dict()
         for key in col:
             ok, temp = self.to_value(col[key])
             if not ok:
                 return ok, temp
             map_val.kvs[key.encode('utf-8')] = temp
         value.set_mVal(map_val)
     elif isinstance(col, list):
         list_val = CommonTtypes.List()
         list_val.values = col
         value.set_lVal(list_val)
     else:
         return False, 'Wrong val type'
     return True, value
    def test_as_set(self):
        value = ttypes.Value()
        str_val1 = ttypes.Value()
        str_val1.set_sVal(b"word")
        str_val2 = ttypes.Value()
        str_val2.set_uVal(b"car")
        set_val = Set()
        set_val.values = set()
        set_val.values.add(str_val1)
        set_val.values.add(str_val2)
        value.set_uVal(set_val)
        value_wrapper = ValueWrapper(value)
        assert value_wrapper.is_set()

        set_val = value_wrapper.as_set()
        assert isinstance(set_val, set)
示例#9
0
    def test_as_relationship(self):
        value = ttypes.Value(eVal=self.get_edge_value(b'Tom', b'Lily'))
        value_wrapper = ValueWrapper(value)
        assert value_wrapper.is_edge()

        relationship = value_wrapper.as_relationship()
        assert isinstance(relationship, Relationship)

        # test with reversely
        reversely_value = ttypes.Value(
            eVal=self.get_edge_value(b'Lily', b'Tom', True))
        reversely_value_wrapper = ValueWrapper(reversely_value)
        reversely_relationship = reversely_value_wrapper.as_relationship()
        assert isinstance(reversely_relationship, Relationship)
        assert reversely_relationship == relationship

        # test with reversely no equal
        reversely_value = ttypes.Value(
            eVal=self.get_edge_value(b'Tom', b'Lily', True))
        reversely_value_wrapper = ValueWrapper(reversely_value)
        reversely_relationship = reversely_value_wrapper.as_relationship()
        assert isinstance(reversely_relationship, Relationship)
        assert reversely_relationship != relationship

        relationship.ranking() == 100
        relationship.edge_name() == 'classmate'
        relationship.start_vertex_id().as_string() == 'Lily'
        relationship.start_vertex_id().as_string() == 'Tom'
        assert relationship.keys() == [
            'prop0', 'prop1', 'prop2', 'prop3', 'prop4'
        ]
        expect_values = [(v.as_int()) for v in relationship.values()]
        assert expect_values == [0, 1, 2, 3, 4]
        assert list(relationship.properties().keys()).sort() == [
            'prop0', 'prop1', 'prop2', 'prop3', 'prop4'
        ].sort()
        expect_values = [(v.as_int())
                         for v in relationship.properties().values()]
        assert expect_values == [0, 1, 2, 3, 4]

        # test empty props
        value = ttypes.Value(
            eVal=self.get_edge_value(b'Tom', b'Lily', empty_props=True))
        relationship = ValueWrapper(value).as_relationship()
        assert relationship.keys() == []
        assert relationship.values() == []
        assert len(relationship.properties()) == 0
示例#10
0
def create_edge_teammate(line):
    assert len(line) == 4
    edge = ttypes.Edge()
    edge.src = utf8b(line[0])
    edge.dst = utf8b(line[1])
    edge.type = 1
    edge.ranking = 0
    edge.name = utf8b('teammate')
    props = dict()
    start_year = ttypes.Value()
    start_year.set_iVal(int(line[2]))
    end_year = ttypes.Value()
    end_year.set_iVal(int(line[3]))
    props[utf8b('start_year')] = start_year
    props[utf8b('end_year')] = end_year
    edge.props = props
    return edge
示例#11
0
 def get_edge_value(self, src_id, dst_id, is_reverse=False):
     edge = ttypes.Edge()
     if not is_reverse:
         edge.src = ttypes.Value(sVal=src_id)
         edge.dst = ttypes.Value(sVal=dst_id)
     else:
         edge.src = ttypes.Value(sVal=dst_id)
         edge.dst = ttypes.Value(sVal=src_id)
     edge.type = 1
     edge.name = b'classmate'
     edge.ranking = 100
     edge.props = dict()
     for i in range(0, 5):
         value = ttypes.Value()
         value.set_iVal(i)
         edge.props[('prop{}'.format(i)).encode('utf-8')] = value
     return edge
示例#12
0
    def test_as_list(self):
        value = ttypes.Value()
        str_val1 = ttypes.Value()
        str_val1.set_sVal(b"word")
        str_val2 = ttypes.Value()
        str_val2.set_sVal(b"car")
        val_list = NList()
        val_list.values = [str_val1, str_val2]
        value.set_lVal(val_list)
        value_wrapper = ValueWrapper(value)
        assert value_wrapper.is_list()

        list_val = value_wrapper.as_list()
        assert isinstance(list_val, list)
        expect_result = [ValueWrapper(ttypes.Value(sVal=b"word")),
                         ValueWrapper(ttypes.Value(sVal=b"car"))]
        assert list_val == expect_result
示例#13
0
    def test_convert_path(self):
        value = ttypes.Value()
        value.set_pVal(self.get_path_value('Tom'))
        node = ConvertValue.convert(value)
        assert isinstance(node, Path)

        node = ConvertValue.as_path(value)
        assert isinstance(node, Path)
示例#14
0
    def test_convert_relationship(self):
        value = ttypes.Value()
        value.set_eVal(self.get_edge_value('Tom', 'Lily'))
        node = ConvertValue.convert(value)
        assert isinstance(node, Relationship)

        node = ConvertValue.as_relationship(value)
        assert isinstance(node, Relationship)
示例#15
0
    def test_as_path(self):
        value = ttypes.Value()
        value.set_pVal(self.get_path_value(b'Tom'))
        vaue_wrapper = ValueWrapper(value)
        assert vaue_wrapper.is_path()

        node = vaue_wrapper.as_path()
        assert isinstance(node, PathWrapper)
示例#16
0
    def test_convert_node(self):
        value = ttypes.Value()
        value.set_vVal(self.get_vertex_value('Tom'))
        node = ConvertValue.convert(value)
        assert isinstance(node, Node)

        node = ConvertValue.as_node(value)
        assert isinstance(node, Node)
示例#17
0
    def test_as_string(self):
        value = ttypes.Value()
        value.set_sVal(b'Tom')
        value_wrapper = ValueWrapper(value)
        assert value_wrapper.is_string()

        str_val = value_wrapper.as_string()
        assert isinstance(str_val, str)
示例#18
0
    def test_as_int(self):
        value = ttypes.Value()
        value.set_iVal(100)
        value_wrapper = ValueWrapper(value)
        assert value_wrapper.is_int()

        node = value_wrapper.as_int()
        assert isinstance(node, int)
示例#19
0
    def test_as_double(self):
        value = ttypes.Value()
        value.set_fVal(10.10)
        value_wrapper = ValueWrapper(value)
        assert value_wrapper.is_double()

        node = value_wrapper.as_double()
        assert isinstance(node, float)
示例#20
0
    def test_as_bool(self):
        value = ttypes.Value()
        value.set_bVal(False)
        value_wrapper = ValueWrapper(value)
        assert value_wrapper.is_bool()

        node = value_wrapper.as_bool()
        assert isinstance(node, bool)
示例#21
0
    def test_as_relationship(self):
        value = ttypes.Value()
        value.set_eVal(self.get_edge_value(b'Tom', b'Lily'))
        value_wrapper = ValueWrapper(value)
        assert value_wrapper.is_edge()

        relationship = value_wrapper.as_relationship()
        assert isinstance(relationship, Relationship)
示例#22
0
    def test_as_node(self):
        value = ttypes.Value()
        value.set_vVal(self.get_vertex_value(b'Tom'))
        value_wrapper = ValueWrapper(value)
        assert value_wrapper.is_vertex()

        node = value_wrapper.as_node()
        assert isinstance(node, Node)
示例#23
0
    def test_as_geography(self):
        value = ttypes.Value()
        value.set_ggVal(self.get_geography_value(3.0, 5.2))
        vaue_wrapper = ValueWrapper(value)
        assert vaue_wrapper.is_geography()

        geog = vaue_wrapper.as_geography()
        assert isinstance(geog, GeographyWrapper)
示例#24
0
 def create_edge_teammate(self, line):
     if len(line) != 4:
         assert False
     edge = CommonTtypes.Edge()
     edge.src = bytes(line[0], encoding='utf-8')
     edge.dst = bytes(line[1], encoding='utf-8')
     edge.type = 0
     edge.ranking = 0
     edge.name = bytes('teammate', encoding='utf-8')
     props = dict()
     start_year = CommonTtypes.Value()
     start_year.set_iVal(int(line[2]))
     end_year = CommonTtypes.Value()
     end_year.set_iVal(int(line[3]))
     props[bytes('start_year', encoding='utf-8')] = start_year
     props[bytes('end_year', encoding='utf-8')] = end_year
     edge.props = props
     return edge
示例#25
0
def create_edge_like(line):
    assert len(line) == 3
    edge = ttypes.Edge()
    src = ttypes.Value()
    src.set_sVal(utf8b(line[0]))
    dst = ttypes.Value()
    dst.set_sVal(utf8b(line[1]))
    edge.src = src
    edge.dst = dst
    edge.type = 1
    edge.ranking = 0
    edge.name = utf8b('like')
    props = dict()
    likeness = ttypes.Value()
    likeness.set_iVal(int(line[2]))
    props[utf8b('likeness')] = likeness
    edge.props = props
    return edge
示例#26
0
def create_vertex_team(line):
    assert len(line) == 2
    vertex = ttypes.Vertex()
    vid = ttypes.Value()
    vid.set_sVal(utf8b(line[0]))
    vertex.vid = vid
    tags = []
    tag = ttypes.Tag()
    tag.name = utf8b('team')

    props = dict()
    name = ttypes.Value()
    name.set_sVal(utf8b(line[1]))
    props[utf8b('name')] = name
    tag.props = props
    tags.append(tag)
    vertex.tags = tags
    return vertex
示例#27
0
    def test_as_map(self):
        value = ttypes.Value()
        str_val1 = ttypes.Value()
        str_val1.set_sVal(b"word")
        str_val2 = ttypes.Value()
        str_val2.set_sVal(b"car")
        map_val = NMap()
        map_val.kvs = {b"a": str_val1, b"b": str_val2}
        value.set_mVal(map_val)
        value_wrapper = ValueWrapper(value)
        assert value_wrapper.is_map()

        map_val = value_wrapper.as_map()
        assert isinstance(map_val, dict)
        expect_result = dict()
        expect_result["a"] = ValueWrapper(ttypes.Value(sVal=b"word"))
        expect_result["b"] = ValueWrapper(ttypes.Value(sVal=b"car"))
        assert map_val == expect_result
示例#28
0
def create_vertex_player(line):
    assert len(line) == 3
    vertex = ttypes.Vertex()
    vertex.vid = utf8b(line[0])
    tags = []
    tag = ttypes.Tag()
    tag.name = utf8b('player')

    props = dict()
    name = ttypes.Value()
    name.set_sVal(utf8b(line[1]))
    props[utf8b('name')] = name
    age = ttypes.Value()
    age.set_iVal(int(line[2]))
    props[utf8b('age')] = age
    tag.props = props
    tags.append(tag)
    vertex.tags = tags
    return vertex
示例#29
0
def create_vertex_bachelor(line):
    assert len(line) == 3
    vertex = ttypes.Vertex()
    vertex.vid = utf8b(line[0])
    tags = []
    tag = ttypes.Tag()
    tag.name = utf8b('bachelor')

    props = dict()
    name = ttypes.Value()
    name.set_sVal(utf8b(line[1]))
    props[utf8b('name')] = name
    speciality = ttypes.Value()
    speciality.set_sVal(utf8b(line[2]))
    props[utf8b('speciality')] = speciality
    tag.props = props
    tags.append(tag)
    vertex.tags = tags
    return vertex
示例#30
0
    def test_as_set(self):
        value = ttypes.Value()
        str_val1 = ttypes.Value()
        str_val1.set_sVal(b"word")
        str_val2 = ttypes.Value()
        str_val2.set_sVal(b"car")
        set_val = NSet()
        set_val.values = set()
        set_val.values.add(str_val1)
        set_val.values.add(str_val2)
        value.set_uVal(set_val)
        value_wrapper = ValueWrapper(value)
        assert value_wrapper.is_set()

        set_val = value_wrapper.as_set()
        assert isinstance(set_val, set)
        expect_result = set()
        expect_result.add(ValueWrapper(ttypes.Value(sVal=b"word")))
        expect_result.add(ValueWrapper(ttypes.Value(sVal=b"car")))
        assert set_val == expect_result