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
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)
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)
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)
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
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
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
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
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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
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
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
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
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
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
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