Ë
    lQêj}K  ã                   ó
  — d dl mZ d dlZd dlmZmZ d dlmZmZm	Z	 d dl
mZ d dlmZmZmZmZmZ d dlmZmZmZmZmZ d dlmZ d d	lmZmZmZ d d
lmZ d dl m!Z! d dl"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z( d dl)m*Z* d dl+m,Z,m-Z- d dl)Z)d dl.Z.d dl/m0Z0  e.jb                  e2«      Z3ejh                  d ejj                  dejl                  dejn                  diZ8e8js                  «       D � �ci c]  \  } }|| “Œ
 c}} Z:dZ; G d„ deee«      Z<yc c}} w )é    )Úcached_propertyN)ÚConfigurationParameterÚ$EmbeddingsQueueConfigurationInternal)ÚSqlDBÚParameterValueÚget_sql)ÚBatchSizeExceededError)ÚProducerÚConsumerÚConsumerCallbackFnÚdecode_vectorÚencode_vector)ÚOperationRecordÚ	LogRecordÚScalarEncodingÚSeqIdÚ	Operation)ÚSystem)ÚOpenTelemetryClientÚOpenTelemetryGranularityÚtrace_method)Úoverride)Údefaultdict)ÚSequenceÚOptionalÚDictÚSetÚTupleÚcast)ÚUUID)ÚTableÚ	functions)Úcreate_topic_nameé   é   é   Fc                   óþ  ‡ — e Zd ZU dZ G d„ d«      Zeeee   f   ed<   e	e
   ed<   eed<   eed<   dZd	efˆ fd
„Z edej                   «      ed:ˆ fd„«       «       Z edej                   «      ededdfd„«       «       Z edej                   «      ededdfd„«       «       Z edej                   «      edededefd„«       «       Z edej                   «      ededee   dee   fd„«       «       Z edej                   «      e	 	 	 d;dedede	e   de	e   de	e   defd„«       «       Z ed ej                   «      ed!eddfd"„«       «       Zedefd#„«       Zedefd$„«       Ze  ed%ej                   «      ede
fd&„«       «       «       Z! ed'ej                   «      dede"e	e#   e	e   e	e   f   fd(„«       Z$ ed)ej                   «      d*eddfd+„«       Z% ed,ej                   «      de	e   de	e   de"e
e
f   fd-„«       Z& ed.ej                   «      de
fd/„«       Z' ed0ej                   «      d1edee(   ddfd2„«       Z) ed3ej                   «      d4edee(   ddfd5„«       Z*e+de,fd6„«       Z-d7e,ddfd8„Z.de
fd9„Z/ˆ xZ0S )<ÚSqlEmbeddingsQueueaæ  A SQL database that stores embeddings, allowing a traditional RDBMS to be used as
    the primary ingest queue and satisfying the top level Producer/Consumer interfaces.

    Note that this class is only suitable for use cases where the producer and consumer
    are in the same process.

    This is because notification of new embeddings happens solely in-process: this
    implementation does not actively listen to the the database for new records added by
    other processes.
    c            
       ó\   — e Zd ZU eed<   eed<   eed<   eed<   eed<   dededededef
d„Zy)úSqlEmbeddingsQueue.SubscriptionÚidÚ
topic_nameÚstartÚendÚcallbackc                 óJ   — || _         || _        || _        || _        || _        y ©N)r+   r,   r-   r.   r/   )Úselfr+   r,   r-   r.   r/   s         úh/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/chromadb/db/mixins/embeddings_queue.pyÚ__init__z(SqlEmbeddingsQueue.Subscription.__init__I   s'   € ð ˆDŒGØ(ˆDŒOØˆDŒJØˆDŒHØ$ˆD�Mó    N)	Ú__name__Ú
__module__Ú__qualname__r    Ú__annotations__ÚstrÚintr   r4   © r5   r3   ÚSubscriptionr*   B   sQ   … Ø‹Ø‹Ø‹
Ø‹Ø$Ó$ð	%àð	%ð ð	%ð ð		%ð
 ð	%ð )ô	%r5   r=   Ú_subscriptionsÚ_max_batch_sizeÚ_tenantÚ_topic_namespaceé   Úsystemc                 ó  •— t        t        «      | _        d | _        |j	                  t
        «      | _        |j                  j	                  d«      | _        |j                  j	                  d«      | _	        t        ‰| �-  |«       y )NÚ	tenant_idÚtopic_namespace)r   Úsetr>   r?   Úrequirer   Ú_opentelemetry_clientÚsettingsr@   rA   Úsuperr4   )r2   rC   Ú	__class__s     €r3   r4   zSqlEmbeddingsQueue.__init__^   se   ø€ Ü)¬#Ó.ˆÔØ#ˆÔØ%+§^¡^Ô4GÓ%HˆÔ"Ø—‘×.Ñ.¨{Ó;ˆŒØ &§¡× 7Ñ 7Ð8IÓ JˆÔÜ‰Ñ˜Õ r5   zSqlEmbeddingsQueue.reset_stateÚreturnNc                 ón   •— t         ‰| �  «        t        t        «      | _        	 | `y # t        $ r Y y w xY wr1   )rK   Úreset_stater   rG   r>   ÚconfigÚAttributeError)r2   rL   s    €r3   rO   zSqlEmbeddingsQueue.reset_statef   s9   ø€ ô 	‰ÑÔÜ)¬#Ó.ˆÔð	Ø‘øÜò 	áð	ús   ¥( ¨	4³4zSqlEmbeddingsQueue.delete_topicÚcollection_idc                 ó¨  — t        | j                  | j                  |«      }t        d«      }| j	                  «       j                  |«      j                  |j                  t        |«      k(  «      j                  «       }| j                  «       5 }t        || j                  «       «      \  }}|j                  ||«       d d d «       y # 1 sw Y   y xY w)NÚembeddings_queue)r#   r@   rA   r!   ÚquerybuilderÚfrom_ÚwhereÚtopicr   ÚdeleteÚtxr   Úparameter_formatÚexecute)r2   rR   r,   ÚtÚqÚcurÚsqlÚparamss           r3   Ú
delete_logzSqlEmbeddingsQueue.delete_logs   s®   € ô 'Ø�L‰L˜$×/Ñ/°ó
ˆ
ô Ð$Ó%ˆà×ÑÓß‰U�1‹Xß‰U�1—7‘7œn¨ZÓ8Ñ8Ó9ß‰V‹Xð	 	
ð �W‰W‹Yð 	%˜#Ü! ! T×%:Ñ%:Ó%<Ó=‰KˆC�Ø�K‰K˜˜VÔ$÷	%÷ 	%ñ 	%ús   Â0CÃCzSqlEmbeddingsQueue.purge_logc                 ód  — t        d«      }| j                  «       j                  |«      j                  t	        j
                  t        d«      j                  d«      «      j                  |j                  t        | j                  |«      «      k(  «      j                  t        d«      «      j                  |j                  t        d«      j                  k(  «      }t        | j                   | j"                  |«      }| j%                  «       5 }t'        || j)                  «       «      \  }}|j+                  ||«       |j-                  «       }|rt/        d„ |D «       «      }	n
	 d d d «       y t        d«      }
| j                  «       j                  |
«      j                  |
j                  t        |	«      k  «      j                  |
j0                  t        |«      k(  «      j3                  «       }t'        || j)                  «       «      \  }}|j+                  ||«       d d d «       y # 1 sw Y   y xY w)NÚsegmentsÚ
max_seq_idéÿÿÿÿc              3   ó&   K  — | ]	  }|d    –— Œ y­w)r   Nr<   )Ú.0Úrows     r3   ú	<genexpr>z/SqlEmbeddingsQueue.purge_log.<locals>.<genexpr>¡   s   è ø€ Ò ;¨C  Q¥Ñ ;ùs   ‚rT   )r!   rU   rV   Úselectr"   ÚCoalesceÚseq_idrW   Ú
collectionr   Ú
uuid_to_dbÚ	left_joinÚonr+   Ú
segment_idr#   r@   rA   rZ   r   r[   r\   ÚfetchallÚminrX   rY   )r2   rR   Ú
segments_tÚsegment_ids_qr,   r_   r`   ra   ÚresultsÚ
min_seq_idr]   r^   s               r3   Ú	purge_logzSqlEmbeddingsQueue.purge_log„   sº  € ô
 ˜:Ó&ˆ
à×ÑÓß‰U�:Ó÷
 ‰V”I×&Ñ&¤u¨\Ó':×'AÑ'AÀ2ÓFÓGß‰UØ×%Ñ%¬¸¿¹ÈÓ8VÓ)WÑWó÷ ‰Y”u˜\Ó*Ó+ß‰R�
—‘¤ |Ó!4×!?Ñ!?Ñ?Ó@ð 	ô 'Ø�L‰L˜$×/Ñ/°ó
ˆ
ð �W‰W‹Yð 	%˜#Ü! -°×1FÑ1FÓ1HÓI‰KˆC�Ø�K‰K˜˜VÔ$Ø—l‘l“nˆGÙÜ Ñ ;°7Ô ;Ó;‘
à÷	%ð 	%ô Ð(Ó)ˆAà×!Ñ!Ó#ß‘�q“ß‘�q—x‘x¤.°Ó"<Ñ<Ó=ß‘�q—w‘w¤.°Ó"<Ñ<Ó=ß‘“ð ô " ! T×%:Ñ%:Ó%<Ó=‰KˆC�Ø�K‰K˜˜VÔ$÷'	%÷ 	%ñ 	%ús   ÄAH&Å,B1H&È&H/z#SqlEmbeddingsQueue.submit_embeddingÚ	embeddingc                 ó\   — | j                   st        d«      ‚| j                  ||g«      d   S )NúComponent not runningr   )Ú_runningÚRuntimeErrorÚsubmit_embeddings)r2   rR   rz   s      r3   Úsubmit_embeddingz#SqlEmbeddingsQueue.submit_embedding±   s1   € ð
 �}Š}ÜÐ6Ó7Ð7à×%Ñ% m°i°[ÓAÀ!ÑDÐDr5   z$SqlEmbeddingsQueue.submit_embeddingsÚ
embeddingsc                 ót  — | j                   st        d«      ‚t        |«      dk(  rg S t        |«      | j                  kD  r(t	        d| j                  d›d| j                  d›d�«      ‚| j
                  }t        | j                  | j                  |«      }t        d«      }| j                  «       j                  |«      j                  |j                  |j                  |j                  |j                   |j"                  |j$                  «      }i }|D ]�  }| j'                  |«      \  }	}
}|j)                  t+        t,        |d      «      t+        |«      t+        |d	   «      t+        |	«      t+        |
«      t+        |«      «      }t        |«      ||d	   <   Œƒ | j/                  «       5 }t1        || j3                  «       «      \  }}|› d
�}|j5                  ||«      j7                  «       }t9        t:        d «      gt        |«      z  }g }|D ]M  \  }}||||   <   |||      }t=        |t?        ||d   |d   |d   |d   ¬«      ¬«      }|jA                  |«       ŒO | jC                  ||«       | j
                  jE                  d«      jF                  r| jI                  |«       |cd d d «       S # 1 sw Y   y xY w)Nr|   r   z)
                Cannot submit more than ú,zf embeddings at once.
                Please submit your embeddings in batches of size
                z or less.
                rT   Ú	operationr+   z RETURNING seq_id, idrz   ÚencodingÚmetadata)r+   rz   r…   r†   r„   ©Ú
log_offsetÚrecordÚautomatically_purge)%r}   r~   ÚlenÚmax_batch_sizer	   rP   r#   r@   rA   r!   rU   ÚintoÚcolumnsr„   rX   r+   Úvectorr…   r†   Ú!_prepare_vector_encoding_metadataÚinsertr   Ú_operation_codesrZ   r   r[   r\   rs   r   r   r   r   ÚappendÚ_notify_allÚget_parameterÚvaluery   )r2   rR   r�   Ú_r,   r]   r‘   Ú	id_to_idxrz   Úembedding_bytesr…   r†   r_   r`   ra   rw   Úseq_idsÚembedding_recordsrm   r+   Úsubmit_embedding_recordÚembedding_records                         r3   r   z$SqlEmbeddingsQueue.submit_embeddings»   sÇ  € ð
 �}Š}ÜÐ6Ó7Ð7äˆz‹?˜aÒØˆIäˆz‹?˜T×0Ñ0Ò0Ü(ð)Ø)-×)<Ñ)<¸QÐ(?ð @à×$Ñ$ QÐ'ð (ðóð ð �K‰Kˆä&Ø�L‰L˜$×/Ñ/°ó
ˆ
ô Ð$Ó%ˆà×ÑÓß‰T�!‹Wß‰W�Q—[‘[ !§'¡'¨1¯4©4°·±¸1¿:¹:ÀqÇzÁzÓRð 	ð
 %'ˆ	Ø#ò 	8ˆIð
 ×6Ñ6°yÓAñ	ØØØà—]‘]ÜÔ/°	¸+Ñ0FÑGÓHÜ˜zÓ*Ü˜y¨™Ó/Ü˜Ó/Ü˜xÓ(Ü˜xÓ(óˆFô *-¨Y«ˆI�i ‘oÒ&ð	8ð �W‰W‹Yð  	˜#Ü! &¨$×*?Ñ*?Ó*AÓB‰KˆC�ð �EÐ.Ð/ˆCØ—k‘k # vÓ.×7Ñ7Ó9ˆGäœE 4Ó(Ð)¬CØó-ñ ˆGð !#ÐØ%ò ;‘
�˜Ø)/�˜	 "™Ñ&Ø*4°Y¸r±]Ñ*CÐ'ô $-Ø%Ü*ØØ"9¸+Ñ"FØ!8¸Ñ!DØ!8¸Ñ!DØ"9¸+Ñ"Fôô	$Ð ð "×(Ñ(Ð)9Õ:ð;ð  ×Ñ˜ZÐ):Ô;à�{‰{×(Ñ(Ð)>Ó?×EÒEØ—‘˜}Ô-à÷A 	÷  	ò  	ús   Æ'C=J.Ê.J7zSqlEmbeddingsQueue.subscribeÚ
consume_fnr-   r.   r+   c                 óX  — | j                   st        d«      ‚t        | j                  | j                  |«      }|xs t        j                  «       }| j                  ||«      \  }}| j                  |||||«      }| j                  |«       | j                  |   j                  |«       |S )Nr|   )r}   r~   r#   r@   rA   ÚuuidÚuuid4Ú_validate_ranger=   Ú	_backfillr>   Úadd)	r2   rR   rž   r-   r.   r+   r,   Úsubscription_idÚsubscriptions	            r3   Ú	subscribezSqlEmbeddingsQueue.subscribe  s¢   € ð �}Š}ÜÐ6Ó7Ð7ä&Ø�L‰L˜$×/Ñ/°ó
ˆ
ð Ò,¤§
¡
£ˆØ×)Ñ)¨%°Ó5‰
ˆˆsà×(Ñ(Ø˜Z¨°°Zó
ˆð
 	�‰�|Ô$Ø×Ñ˜JÑ'×+Ñ+¨LÔ9àÐr5   zSqlEmbeddingsQueue.unsubscriber¥   c                 óÒ   — | j                   j                  «       D ]J  \  }}|D ]@  }|j                  |k(  sŒ|j                  |«       t	        |«      dk(  r| j                   |=   y  ŒL y )Nr   )r>   Úitemsr+   Úremover‹   )r2   r¥   r,   Úsubscriptionsr¦   s        r3   ÚunsubscribezSqlEmbeddingsQueue.unsubscribe.  sn   € ð *.×)<Ñ)<×)BÑ)BÓ)Dò 	Ñ%ˆJ˜Ø -ò �Ø—?‘? oÓ5Ø!×(Ñ(¨Ô6Ü˜=Ó)¨QÒ.Ø ×/Ñ/°
Ð;Úññ	r5   c                  ó   — y)Nrf   r<   ©r2   s    r3   Ú	min_seqidzSqlEmbeddingsQueue.min_seqid9  s   € àr5   c                  ó   — y)Nl   ÿÿÿÿ r<   r®   s    r3   Ú	max_seqidzSqlEmbeddingsQueue.max_seqid=  s   € àr5   z!SqlEmbeddingsQueue.max_batch_sizec                 ó®  — | j                   €§| j                  «       5 }|j                  d«       |j                  «       }|D ]<  }d|d   v sŒt	        |d   j                  d«      d   «      | j                  z  | _         Œ> | j                   €d| j                  z  | _         d d d «       | j                   S | j                   S # 1 sw Y   | j                   S xY w)NzPRAGMA compile_options;ÚMAX_VARIABLE_NUMBERr   ú=r$   iç  )r?   rZ   r\   rs   r;   ÚsplitÚVARIABLES_PER_RECORD)r2   r_   Úcompile_optionsÚoptions       r3   rŒ   z!SqlEmbeddingsQueue.max_batch_sizeA  sØ   € ð ×ÑÐ'Ø—‘“ð L˜cØ—‘Ð5Ô6Ø"%§,¡,£.�à-ò �FØ,°°q±	Ò9ä/2°6¸!±9·?±?À3Ó3GÈÑ3JÓ/KØ ×5Ñ5ñ0˜Õ,ðð ×'Ñ'Ð/ð ,/°$×2KÑ2KÑ+K�DÔ(÷Lð  ×#Ñ#Ð#ˆt×#Ñ#Ð#÷!Lð  ×#Ñ#Ð#ús   �.C ÁAC Ã Cz4SqlEmbeddingsQueue._prepare_vector_encoding_metadatac                 óº   — |d   �/t        t        |d   «      }|j                  }t        |d   |«      }nd }d }|d   rt	        j
                  |d   «      nd }|||fS )Nrz   r…   r†   )r   r   r–   r   ÚjsonÚdumps)r2   rz   Úencoding_typer…   r™   r†   s         r3   r�   z4SqlEmbeddingsQueue._prepare_vector_encoding_metadataX  sp   € ð �[Ñ!Ð-Ü ¤°¸:Ñ1FÓGˆMØ$×*Ñ*ˆHÜ+¨I°kÑ,BÀMÓR‰Oà"ˆOØˆHØ8AÀ*Ò8M”4—:‘:˜i¨
Ñ3Ô4ÐSWˆØ ¨(Ð2Ð2r5   zSqlEmbeddingsQueue._backfillr¦   c                 ó  — t        d«      }| j                  «       j                  |«      j                  |j                  t        |j                  «      k(  «      j                  |j                  t        |j                  «      kD  «      j                  |j                  t        |j                  «      k  «      j                  |j                  |j                  |j                  |j                  |j                  |j                  «      j!                  |j                  «      }| j#                  «       5 }t%        || j'                  «       «      \  }}|j)                  ||«       |j+                  «       }|D ]‚  }|d   rt-        |d   «      }	t/        |d   |	«      }
nd}	d}
| j1                  |t3        |d   t5        t6        |d      |d   |
|	|d   rt9        j:                  |d   «      nd¬	«      ¬
«      g«       Œ„ 	 ddd«       y# 1 sw Y   yxY w)zUBackfill the given subscription with any currently matching records in the
        DBrT   r&   é   Nr   r$   r%   é   )r„   r+   rz   r…   r†   r‡   )r!   rU   rV   rW   rX   r   r,   rm   r-   r.   rk   r„   r+   r�   r…   r†   ÚorderbyrZ   r   r[   r\   rs   r   r   Ú_notify_oner   r   Ú_operation_codes_invrº   Úloads)r2   r¦   r]   r^   r_   r`   ra   Úrowsri   r…   r�   s              r3   r£   zSqlEmbeddingsQueue._backfilli  s­  € ô Ð$Ó%ˆà×ÑÓß‰U�1‹Xß‰U�1—7‘7œn¨\×-DÑ-DÓEÑEÓFß‰U�1—8‘8œn¨\×-?Ñ-?Ó@Ñ@ÓAß‰U�1—8‘8œ~¨l×.>Ñ.>Ó?Ñ?Ó@ß‰V�A—H‘H˜aŸk™k¨1¯4©4°·±¸1¿:¹:ÀqÇzÁzÓRß‰W�Q—X‘XÓð 	
ð �W‰W‹Yð 	˜#Ü! ! T×%:Ñ%:Ó%<Ó=‰KˆC�Ø�K‰K˜˜VÔ$Ø—<‘<“>ˆDØò �Ø�q’6Ü-¨c°!©fÓ5�HÜ*¨3¨q©6°8Ó<‘Fà#�HØ!�FØ× Ñ Ø ä!Ø'*¨1¡vÜ#2Ü*>¸sÀ1¹vÑ*FØ#& q¡6Ø*0Ø)1Ø?BÀ1ºv¬¯©°C¸±FÔ);È4ô$ô	ðõñ÷		÷ 	ñ 	ús   Ä1CHÈHz"SqlEmbeddingsQueue._validate_rangec                 óÜ   — |xs | j                  «       }|xs | j                  «       }t        |t        «      rt        |t        «      st	        d«      ‚||k\  rt        d|› d|› �«      ‚||fS )z[Validate and normalize the start and end SeqIDs for a subscription using this
        impl.z2SeqIDs must be integers for sql-based EmbeddingsDBzInvalid SeqID range: z to )Ú_next_seq_idr±   Ú
isinstancer;   Ú	TypeErrorÚ
ValueError)r2   r-   r.   s      r3   r¢   z"SqlEmbeddingsQueue._validate_range’  sq   € ð Ò,˜×*Ñ*Ó,ˆØÒ%�T—^‘^Ó%ˆÜ˜%¤Ô%¬Z¸¼SÔ-AÜÐPÓQÐQØ�CŠ<ÜÐ4°U°G¸4À¸uÐEÓFÐFØ�cˆzÐr5   zSqlEmbeddingsQueue._next_seq_idc                 óv  — t        d«      }| j                  «       j                  |«      j                  t	        j
                  |j                  «      «      }| j                  «       5 }|j                  |j                  «       «       t        |j                  «       d   «      dz   cddd«       S # 1 sw Y   yxY w)z%Get the next SeqID for this database.rT   r   r$   N)r!   rU   rV   rk   r"   ÚMaxrm   rZ   r\   r   r;   Úfetchone©r2   r]   r^   r_   s       r3   rÆ   zSqlEmbeddingsQueue._next_seq_id   sŠ   € ô Ð$Ó%ˆØ×ÑÓ×%Ñ% aÓ(×/Ñ/´	·±¸a¿h¹hÓ0GÓHˆØ�W‰W‹Yð 	.˜#Ø�K‰K˜Ÿ	™	›Ô$Ü�s—|‘|“~ aÑ(Ó)¨AÑ-÷	.÷ 	.ò 	.ús   Á'>B/Â/B8zSqlEmbeddingsQueue._notify_allrX   c                 ój   — | j                   r'| j                  |   D ]  }| j                  ||«       Œ yy)z:Send a notification to each subscriber of the given topic.N)r}   r>   rÁ   )r2   rX   r�   Úsubs       r3   r”   zSqlEmbeddingsQueue._notify_all©  s:   € ð �=Š=Ø×*Ñ*¨5Ñ1ò 2�Ø× Ñ   jÕ1ñ2ð r5   zSqlEmbeddingsQueue._notify_onerÏ   c                 óÔ  — d}g }|D ]<  }|d   |j                   k  rŒ|d   |j                  kD  rd} n|j                  |«       Œ> 	 t        |«      dkD  r|j	                  |«       |r| j                  |j                  «       yy# t        $ rY}t        j                  d|j                  j                  › �d|j                  › d�z   t        |«      «       t        r|‚Y d}~yd}~ww xY w)	z+Send a notification to a single subscriber.Frˆ   Tr   z6Exception occurred invoking consumer for subscription z	to topic z %sN)r-   r.   r“   r‹   r/   r¬   r+   ÚBaseExceptionÚloggerÚerrorÚhexr,   r:   Ú_called_from_test)r2   rÏ   r�   Úshould_unsubscribeÚfiltered_embeddingsrz   Úes          r3   rÁ   zSqlEmbeddingsQueue._notify_one°  sï   € ð #ÐØ ÐØ#ò 	2ˆIØ˜Ñ&¨#¯)©)Ò3ØØ˜Ñ&¨¯©Ò0Ø%)Ð"ÙØ×&Ñ& yÕ1ð	2ð	ÜÐ&Ó'¨!Ò+Ø—‘Ð0Ô1Ù!Ø× Ñ  §¡Õ(ð "øäò 	Ü�L‰LØHÈÏÉÏÉÈÐUØ˜cŸn™nÐ-¨SÐ1ñ2ä�A“ôõ
 !Ø�ô !ûð	ús   Á<B Â	C'ÂAC"Ã"C'c                 óú  — t        d«      }| j                  «       j                  |«      j                  |j                  «      j                  d«      }| j                  «       5 }|j                  |j                  «       «       |j                  «       }d d d «       €<| j                  «       dk(  }t        t        d|«      g«      }| j                  |«       |S t        j                  |d   «      S # 1 sw Y   Œ_xY w)NÚembeddings_queue_configr$   r   rŠ   )r!   rU   rV   rk   Úconfig_json_strÚlimitrZ   r\   r   rÌ   Ú_get_wal_sizer   r   Ú
set_configÚfrom_json_str)r2   r]   r^   r_   ÚresultÚis_fresh_systemrP   s          r3   rP   zSqlEmbeddingsQueue.configÎ  sÙ   € äÐ+Ó,ˆØ×ÑÓ×%Ñ% aÓ(×/Ñ/°×0AÑ0AÓB×HÑHÈÓKˆà�W‰W‹Yð 	$˜#Ø�K‰K˜Ÿ	™	›Ô$Ø—\‘\“^ˆF÷	$ð ˆ>Ø"×0Ñ0Ó2°aÑ7ˆOÜ9Ü'Ð(=¸ÓOÐPóˆFð �O‰O˜FÔ#ØˆMä3×AÑAÀ&ÈÁ)ÓLÐL÷	$ð 	$ús   Á#0C1Ã1C:rP   c                 ó¶   — | j                  «       5 }|j                  dd|j                  «       f«       d d d «       	 | `y # 1 sw Y   ŒxY w# t        $ r Y y w xY w)Nz€
                INSERT OR REPLACE INTO embeddings_queue_config (id, config_json_str)
                VALUES (?, ?)
            r$   )rZ   r\   Úto_json_strrP   rQ   )r2   rP   r_   s      r3   rÞ   zSqlEmbeddingsQueue.set_configá  sf   € Ø�W‰W‹Yð 
	˜#Ø�K‰Kðð
 Ø×&Ñ&Ó(ðô	÷
	ð	Ø‘÷
	ð 
	ûô ò 	áð	ús   ‘#A ½A Á A	Á	AÁAc                 ó\  — t        d«      }| j                  «       j                  |«      j                  t	        j
                  d«      «      }| j                  «       5 }|j                  |j                  «       «       t        |j                  «       d   «      cd d d «       S # 1 sw Y   y xY w)NrT   Ú*r   )r!   rU   rV   rk   r"   ÚCountrZ   r\   r   r;   rÌ   rÍ   s       r3   rÝ   z SqlEmbeddingsQueue._get_wal_sizeõ  s   € ÜÐ$Ó%ˆØ×ÑÓ×%Ñ% aÓ(×/Ñ/´	·±ÀÓ0DÓEˆà�W‰W‹Yð 	*˜#Ø�K‰K˜Ÿ	™	›Ô$Ü�s—|‘|“~ aÑ(Ó)÷	*÷ 	*ò 	*ús   Á;B"Â"B+)rM   N)NNN)1r6   r7   r8   Ú__doc__r=   r   r:   r   r9   r   r;   r¶   r   r4   r   r   ÚALLr   rO   r    rb   ry   r   r   r€   r   r   r   r§   r¬   r¯   r±   ÚpropertyrŒ   r   Úbytesr�   r£   r¢   rÆ   r   r”   rÁ   r   r   rP   rÞ   rÝ   Ú__classcell__)rL   s   @r3   r(   r(   6   sh  ø… ñ	÷%ñ %ð* ˜˜c ,Ñ/Ð/Ñ0Ó0Ø˜c‘]Ó"ØƒLØÓàÐð!˜võ !ñ Ð2Ð4L×4PÑ4PÓQØô	ó ó Rð	ñ Ð3Ð5M×5QÑ5QÓRØð%¨ð %°ò %ó ó Sð%ñ Ð0Ð2J×2NÑ2NÓOØð)% tð )%°ò )%ó ó Pð)%ñV Ð7Ð9Q×9UÑ9UÓVØðEØ!ðEØ.=ðEà	òEó ó WðEñ Ð8Ð:R×:VÑ:VÓWØðQØ!ðQØ/7¸Ñ/HðQà	�%‰òQó ó XðQñf Ð0Ð2J×2NÑ2NÓOØð
 "&Ø#Ø!ñàðð 'ðð ˜‰ð	ð
 �e‰_ðð �T‰Nðð 
òó ó Pðñ8 Ð2Ð4L×4PÑ4PÓQØð¨4ð °Dò ó ó Rðð ð˜5ò ó ðð ð˜5ò ó ðð ÙÐ5Ð7O×7SÑ7SÓTØð$ ò $ó ó Uó ð$ñ( Ø>Ø ×$Ñ$óð3Ø(ð3à	ˆx˜‰ ¨¡¨x¸©}Ð<Ñ	=ò3ó	ð3ñ Ð0Ð2J×2NÑ2NÓOð& lð &°tò &ó Pð&ñP Ð6Ð8P×8TÑ8TÓUðØ˜e‘_ðØ+3°E©?ðà	ˆs�Cˆx‰òó Vðñ Ð3Ð5M×5QÑ5QÓRð.˜cò .ó Sð.ñ Ð2Ð4L×4PÑ4PÓQð2 ð 2°(¸9Ñ2Eð 2È$ò 2ó Rð2ñ Ð2Ð4L×4PÑ4PÓQð˜|ð ¸À)Ñ9Lð ÐQUò ó Rðð: ðMÐ<ò Mó ðMð$Ð!Eð È$ó ð(*˜s÷ *r5   r(   )=Ú	functoolsr   rº   Úchromadb.api.configurationr   r   Úchromadb.db.baser   r   r   Úchromadb.errorsr	   Úchromadb.ingestr
   r   r   r   r   Úchromadb.typesr   r   r   r   r   Úchromadb.configr   Ú chromadb.telemetry.opentelemetryr   r   r   Ú	overridesr   Úcollectionsr   Útypingr   r   r   r   r   r   r    r    Úpypikar!   r"   ÚloggingÚchromadb.ingest.impl.utilsr#   Ú	getLoggerr6   rÒ   ÚADDÚUPDATEÚUPSERTÚDELETEr’   r©   rÂ   rÕ   r(   )ÚkÚvs   00r3   ú<module>r     sç   ðÝ %Û ÷÷ <Ñ ;Ý 2÷õ ÷õ õ #÷ñ õ
 Ý #ß =× =Ý ß #Û Û Ý 8ð 
ˆ×	Ñ	˜8Ó	$€ð ‡M�M�1Ø×Ñ�aØ×Ñ�aØ×Ñ�að	Ð ð *:×)?Ñ)?Ó)A×B¡  A˜˜1™ÓBÐ ð Ð ôE*˜ ¨(õ E*ùó Cs   ÃC?