2727from weaviate .util import _datetime_to_string , _get_vector_v4
2828
2929
30+ def _pack_vector (vector : Any ) -> bytes :
31+ return struct .pack ("{}f" .format (len (vector )), * vector )
32+
33+
3034def _pack_named_vectors (vectors : Dict [str , List [float ]]) -> List [base_pb2 .Vectors ]:
3135 return [
3236 base_pb2 .Vectors (
3337 name = name ,
34- vector_bytes = struct . pack ( "{}f" . format ( len ( vector )), * vector ),
38+ vector_bytes = _pack_vector ( vector ),
3539 )
3640 for name , vector in vectors .items ()
3741 ]
@@ -48,17 +52,9 @@ def __init__(self, connection: ConnectionV4, consistency_level: Optional[Consist
4852 super ().__init__ (connection , consistency_level )
4953
5054 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-
5455 return [
5556 batch_pb2 .BatchObject (
5657 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- ),
6258 uuid = str (obj .uuid ) if obj .uuid is not None else str (uuid_package .uuid4 ()),
6359 properties = (
6460 self .__translate_properties_from_python_to_grpc (
@@ -69,6 +65,11 @@ def pack_vector(vector: Any) -> bytes:
6965 else None
7066 ),
7167 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+ ),
7273 vectors = (
7374 _pack_named_vectors (obj .vector )
7475 if obj .vector is not None and isinstance (obj .vector , dict )
0 commit comments