
    <i                         S SK Jr  S SKJrJr  S SKJrJrJr  S SK	r
S SKJr  S SKJr  S SKJr  S SKJr  S	\\-  S
\S\4S jr " S S\\5      rg)    )ABC)countislice)Any	GeneratorIterableN)common_types)Record)ExtendedPointId)Workeriterablesizereturnc              #      #    [        U 5      nU(       a2  [        [        X!5      5      n[        U5      S:X  a  gUv   U(       a  M1  gg7f)z:
>>> list(iter_batch([1,2,3,4,5], 3))
[[1, 2, 3], [4, 5]]
r   N)iterlistr   len)r   r   source_iterbs       Y/home/james-whalen/.local/lib/python3.13/site-packages/qdrant_client/uploader/uploader.py
iter_batchr      s<     
 x.K
*+q6Q;	 +s   AAAc                   z   \ rS rSr\S\\\R                  -     S\	S\4S j5       r
\S\\\R                  4   \R                  -  \\R                     -  S\\   S-  S	\\   S-  S\	S\4
S
 j5       r\S\R                  S\	S\\   4S j5       r\S\\\R                  4   S\	S\\\\\   4      4S j5       rSrg)BaseUploader   records
batch_sizer   c              #      #    [        X5      nU Hh  n/ / / pvnU HT  nUR                  UR                  5        UR                  UR                  5        UR                  UR                  5        MV     XVU4v   Mj     g 7fN)r   appendidvectorpayload)	clsr   r   record_batchesrecord_batch	ids_batchvectors_batchpayload_batchrecords	            r   iterate_records_batches$BaseUploader.iterate_records_batches   ss      $G8*L68"bmI&  +$$V]]3$$V^^4 '
 M99 +s   A;A=vectorsr"   Nidsc              #     #    Uc  S [        5        5       nO[        X45      nUc  S [        5        5       nO[        X$5      n[        U[        R                  5      (       a  U R                  X5      nOW[        U[        5      (       a7  [        S UR                  5        5       5      (       a  U R                  X5      nO[        X5      n[        XWU5       S h  vN   g  N7f)Nc              3   &   #    U  H  nS v   M	     g 7fr    .0_s     r   	<genexpr>/BaseUploader.iterate_batches.<locals>.<genexpr>5   s     $;7aT7   c              3   &   #    U  H  nS v   M	     g 7fr   r0   r1   s     r   r4   r5   :   s     (?w!wr6   c              3   V   #    U  H  n[        U[        R                  5      v   M!     g 7fr   )
isinstancenpndarray)r2   values     r   r4   r5   @   s"      /
7GeJubjj))7Gs   '))r   r   r9   r:   r;   _vector_batches_from_numpydictanyvalues(_vector_batches_from_numpy_named_vectorszip)r#   r,   r"   r-   r   ids_batchespayload_batchesvector_batchess           r   iterate_batchesBaseUploader.iterate_batches,   s      ;$;57$;K$S5K?(?uw(?O(=Ogrzz**,/,J,J7,_N&&3 /
7>~~7G/
 ,
 ,
 !II'^N'<N{ODDDs   CC"C C"c              #   z   #    [        SU R                  S   U5       H  nXX!-    R                  5       v   M     g 7f)Nr   )rangeshapetolist)r,   r   is      r   r=   'BaseUploader._vector_batches_from_numpyI   s7     q'--*J7Aan-4466 8s   9;c           	   #   ^  ^ #    [        [        T R                  5        Vs/ s H  o"R                  S   PM     sn5      5      S:X  d   S5       e[	        [        T R                  5       5      5      R                  S   nU 4S j[        U5       5       n[        XA5       S h  vN   g s  snf  N
7f)Nr      z8Each named vector should have the same number of vectorsc              3      >#    U  H:  nTR                  5        Vs0 s H  o"TU   U   R                  5       _M     snv   M<     g s  snf 7fr   )keysrK   )r2   rL   namer,   s      r   r4   HBaseUploader._vector_batches_from_numpy_named_vectors.<locals>.<genexpr>X   sI      
' :AH74=#**,,H' Is   A
 AA
)r   setr@   rJ   nextr   rI   r   )r,   r   arrnum_vectorsrE   s   `    r   rA   5BaseUploader._vector_batches_from_numpy_named_vectorsN   s     
 W^^-=>-=cYYq\-=>?@AE	FE	FE 4 01288;
;'
 n999 ? 	:s   B-B&A(B- B+!B-r0   )__name__
__module____qualname____firstlineno__classmethodr   r
   typesPointStructintr*   r>   str
NumpyArrayVectorStructr   rF   staticmethodfloatr=   r   rA   __static_attributes__r0       r   r   r      sN   :&5#4#445: : 
	: :  Ec5+++,u/?/??(5K]K]B^^E $$&E o&-	E
 E 
E E8 7E,<,< 7# 7RZ[`Ra 7 7 :c5+++,::=:	$sDK'(	): :rg   r   )abcr   	itertoolsr   r   typingr   r   r   numpyr:   qdrant_client.conversionsr	   r^   &qdrant_client.conversions.common_typesr
   qdrant_client.http.modelsr    qdrant_client.parallel_processorr   r`   r   r   r0   rg   r   <module>rp      sO     # + +  ; 9 5 3
I- 
S 
X 
B:63 B:rg   