27
27
from weaviate .util import _datetime_to_string , _get_vector_v4
28
28
29
29
30
+ def _pack_vector (vector : Any ) -> bytes :
31
+ return struct .pack ("{}f" .format (len (vector )), * vector )
32
+
33
+
30
34
def _pack_named_vectors (vectors : Dict [str , List [float ]]) -> List [base_pb2 .Vectors ]:
31
35
return [
32
36
base_pb2 .Vectors (
33
37
name = name ,
34
- vector_bytes = struct . pack ( "{}f" . format ( len ( vector )), * vector ),
38
+ vector_bytes = _pack_vector ( vector ),
35
39
)
36
40
for name , vector in vectors .items ()
37
41
]
@@ -48,17 +52,9 @@ def __init__(self, connection: ConnectionV4, consistency_level: Optional[Consist
48
52
super ().__init__ (connection , consistency_level )
49
53
50
54
def __grpc_objects (self , objects : List [_BatchObject ]) -> List [batch_pb2 .BatchObject ]:
51
- def pack_vector (vector : Any ) -> bytes :
52
- return struct .pack ("{}f" .format (len (vector )), * vector )
53
-
54
55
return [
55
56
batch_pb2 .BatchObject (
56
57
collection = obj .collection ,
57
- vector_bytes = (
58
- pack_vector (obj .vector )
59
- if obj .vector is not None and isinstance (obj .vector , list )
60
- else None
61
- ),
62
58
uuid = str (obj .uuid ) if obj .uuid is not None else str (uuid_package .uuid4 ()),
63
59
properties = (
64
60
self .__translate_properties_from_python_to_grpc (
@@ -69,6 +65,11 @@ def pack_vector(vector: Any) -> bytes:
69
65
else None
70
66
),
71
67
tenant = obj .tenant ,
68
+ vector_bytes = (
69
+ _pack_vector (obj .vector )
70
+ if obj .vector is not None and isinstance (obj .vector , list )
71
+ else None
72
+ ),
72
73
vectors = (
73
74
_pack_named_vectors (obj .vector )
74
75
if obj .vector is not None and isinstance (obj .vector , dict )
0 commit comments