@@ -77,23 +77,86 @@ def getVertexAttrs(self, vertexType: str) -> list:
77
77
- "map_type(key_type,value_type)"
78
78
and it is a string.
79
79
"""
80
- logger .info ("entry: getAttributes " )
80
+ logger .info ("entry: getVertexAttrs " )
81
81
if logger .level == logging .DEBUG :
82
82
logger .debug ("params: " + self ._locals (locals ()))
83
83
84
84
et = self .getVertexType (vertexType )
85
85
ret = []
86
86
87
87
for at in et ["Attributes" ]:
88
+ at ["AttributeType" ]["AttributeType" ] = at ["AttributeType" ].pop ("Name" )
88
89
ret .append (
89
- (at ["AttributeName" ], self ._getAttrType (at ["AttributeType" ])))
90
+ (at ["AttributeName" ], at ["AttributeType" ])
91
+ )
90
92
91
93
if logger .level == logging .DEBUG :
92
94
logger .debug ("return: " + str (ret ))
93
- logger .info ("exit: getAttributes " )
95
+ logger .info ("exit: getVertexAttrs " )
94
96
95
97
return ret
96
98
99
+ def getVertexVectors (self , vertexType : str ) -> list :
100
+ """Returns the names and types of the embedding attributes of the vertex type.
101
+
102
+ Args:
103
+ vertexType:
104
+ The name of the vertex type.
105
+
106
+ Returns:
107
+ A list of (vector_name, vector_type) tuples.
108
+ The format of vector_type is one of
109
+ - "scalar_type"
110
+ - "complex_type(scalar_type)"
111
+ - "map_type(key_type,value_type)"
112
+ and it is a string.
113
+ """
114
+ logger .info ("entry: getVertexVectors" )
115
+ if logger .level == logging .DEBUG :
116
+ logger .debug ("params: " + self ._locals (locals ()))
117
+
118
+ et = self .getVertexType (vertexType )
119
+ ret = []
120
+
121
+ for vt in et ["EmbeddingAttributes" ]:
122
+ ret .append (
123
+ (vt ["Name" ], vt )
124
+ )
125
+
126
+ if logger .level == logging .DEBUG :
127
+ logger .debug ("return: " + str (ret ))
128
+ logger .info ("exit: getVertexVectors" )
129
+
130
+ return ret
131
+
132
+ def getVectorStatus (self , vertexType : str , vectorAttr : str = "" ) -> bool :
133
+ """Check the rebuild status of the vertex type or the embedding attribute
134
+
135
+ Args:
136
+ vertexType:
137
+ The name of the vertex type.
138
+ vectorAttr:
139
+ The name of the vector attribute, optional.
140
+
141
+ Returns:
142
+ a bool indicates whether vector rebuild is done or not
143
+
144
+ Endpoint:
145
+ - `GET /vector/status/{graph_name}/{vertex_type}/[{vector_name}]`
146
+ """
147
+ logger .info ("entry: getVectorStatus" )
148
+ if logger .level == logging .DEBUG :
149
+ logger .debug ("params: " + self ._locals (locals ()))
150
+
151
+ ret = self ._req ("GET" , self .restppUrl + "/vector/status/" +
152
+ self .graphname + "/" + vertexType + "/" + vectorName )
153
+
154
+ if logger .level == logging .DEBUG :
155
+ logger .debug ("return: " + str (ret ))
156
+ logger .info ("exit: getVectorStatus" )
157
+
158
+ return len (ret ["NeedRebuildServers" ]) == 0
159
+
97
160
def getVertexType (self , vertexType : str , force : bool = False ) -> dict :
98
161
"""Returns the details of the specified vertex type.
99
162
@@ -215,7 +278,7 @@ def upsertVertex(self, vertexType: str, vertexId: str, attributes: dict = None)
215
278
```
216
279
Example:
217
280
```
218
- {"name": "Thorin", points: (10, "+"), "bestScore": (67 , "max")}
281
+ {"name": "Thorin", points: (10, "+"), "bestScore": (83 , "max"), "embedding": [0.1, -0.2, 3.1e-2] }
219
282
```
220
283
For valid values of `<operator>` see xref:tigergraph-server:API:built-in-endpoints.adoc#_operation_codes[Operation codes].
221
284
@@ -268,7 +331,8 @@ def upsertVertices(self, vertexType: str, vertices: list, atomic: bool = False)
268
331
----
269
332
[
270
333
(2, {"name": "Balin", "points": (10, "+"), "bestScore": (67, "max")}),
271
- (3, {"name": "Dwalin", "points": (7, "+"), "bestScore": (35, "max")})
334
+ (3, {"name": "Dwalin", "points": (7, "+"), "bestScore": (35, "max")}),
335
+ (4, {"name": "Thorin", points: (10, "+"), "bestScore": (83, "max"), "embedding": [0.1, -0.2, 3.1e-2]})
272
336
]
273
337
----
274
338
@@ -799,4 +863,4 @@ def vertexSetToDataFrame(self, vertexSet: dict, withId: bool = True, withType: b
799
863
logger .debug ("return: " + str (ret ))
800
864
logger .info ("exit: vertexSetToDataFrame" )
801
865
802
- return ret
866
+ return ret
0 commit comments