ó
    üÞ j8�  ã                  óÆ  • S SK Jr  S SKJr  S SKrS SKrS SKrS SKrS SK	r	S SK
r
S SKrS SKrS SKJr  S SKJrJr  S SKJrJrJrJrJr  S SKJr  S SKJr  S SKJrJr  S S	K J!r!J"r"J#r#J$r$  S S
K%J&r&J'r'J(r(  \(       a  S SK)J*r*  S SK+J,r,  \RZ                  " S5      r.\R^                  " \" 5       S9r0    SS jr1\Rd                   " S S5      5       r3 S         SS jjr4 S        S!S jjr5      S"S jr6  S#             S$S jjr7  S#           S%S jjr8 S&           S'S jjr9S(S jr:    S)S jr;S*S jr< S+     S,S jjr=      S-S jr>g).é    )ÚannotationsN)Ú	cpu_count)ÚEmptyÚQueue)ÚTYPE_CHECKINGÚAnyÚOptionalÚUnionÚcast)Úschemas)Úutils)ÚZSTD_AVAILABLEÚCompressedTraces)Ú_AUTO_SCALE_DOWN_NEMPTY_TRIGGERÚ_AUTO_SCALE_UP_NTHREADS_LIMITÚ_AUTO_SCALE_UP_QSIZE_TRIGGERÚ	_BOUNDARY)ÚSerializedFeedbackOperationÚSerializedRunOperationÚ#combine_serialized_queue_operations)ÚContext)ÚClientzlangsmith.client©Úmax_workersc                óê   • SSK Jn  U" [        5      nU  HZ  nUR                  UR                  UR
                  UR                  UR                  UR                  4nX$   R                  U5        M\     U$ )z3Group batch items by endpoint and auth combination.r   )Údefaultdict)
Úcollectionsr   ÚlistÚapi_urlÚapi_keyÚservice_keyÚ	tenant_idÚauthorizationÚcookieÚappend)Úbatchr   ÚgroupedÚitemÚkeys        Ú`/var/www/html/gaurav/venv/lib/python3.13/site-packages/langsmith/_internal/_background_thread.pyÚ_group_batch_by_api_endpointr+   )   si   € õ (áœ$Ó€GÛˆà�L‰LØ�L‰LØ×ÑØ�N‰NØ×ÑØ�K‰Kð
ˆð 	‰×Ñ˜DÖ!ñ ð €Nó    c                  óÎ   • \ rS rSr% SrS\S'   S\S'   S\S'   S\S	'   S\S
'   S\S'   S\S'   S\S'   S\S'   Sr       S                   SS jjrSS jrSS jr	Sr
g)ÚTracingQueueIteméG   z¾An item in the tracing queue.

Attributes:
    priority (str): The priority of the item.
    item (Any): The item itself.
    otel_context (Optional[Context]): The OTEL context of the item.
ÚstrÚpriorityú:Union[SerializedRunOperation, SerializedFeedbackOperation]r(   úOptional[str]r   r    r!   r"   r#   r$   úOptional[Context]Úotel_context©	r1   r(   r    r   r!   r"   r#   r$   r5   Nc
                óp   • Xl         X l        X0l        X@l        XPl        X`l        Xpl        X€l        X�l        g ©Nr6   )
Úselfr1   r(   r    r   r!   r"   r#   r$   r5   s
             r*   Ú__init__ÚTracingQueueItem.__init__g   s4   € ð !ŒØŒ	ØŒØŒØ&ÔØ"ŒØ*ÔØŒØ(Õr,   c                óŒ   • U R                   U R                  R                  4UR                   UR                  R                  4:  $ r8   )r1   r(   Ú	__class__©r9   Úothers     r*   Ú__lt__ÚTracingQueueItem.__lt__}   s;   € Ø—‘˜tŸy™y×2Ñ2Ð3Ø�N‰NØ�J‰J× Ñ ð7
ñ 
ð 	
r,   c                óº   • [        U[        5      =(       aE    U R                  U R                  R                  4UR                  UR                  R                  4:H  $ r8   )Ú
isinstancer.   r1   r(   r=   r>   s     r*   Ú__eq__ÚTracingQueueItem.__eq__ƒ   sM   € Ü˜%Ô!1Ó2÷ 4Ø�M‰MØ�I‰I×Ñð8
ð �n‰n˜eŸj™j×2Ñ2Ð3ñ84ð 	4r,   )	r    r   r#   r$   r(   r5   r1   r!   r"   )NNNNNNN)r1   r0   r(   r2   r    r3   r   r3   r!   r3   r"   r3   r#   r3   r$   r3   r5   r4   ÚreturnÚNone)r?   r.   rF   Úbool)r?   ÚobjectrF   rH   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__Ú	__slots__r:   r@   rD   Ú__static_attributes__© r,   r*   r.   r.   G   sÎ   ‡ ñð ƒMØ
DÓDØÓØÓØÓØÓØ Ó ØÓØ#Ó#ð
€Ið  "&Ø!%Ø%)Ø#'Ø'+Ø $Ø*.ð)àð)ð Ið)ð ð	)ð
 ð)ð #ð)ð !ð)ð %ð)ð ð)ð (ð)ð 
õ)ô,
÷4r,   r.   c                óÂ  • / nSn U R                  USS9=n(       a:  UR                  U5        US:”  a#  XVR                  R                  5       -  nXS:”  a  U$   U R                  USS9nUR                  U5        US:”  a$  XVR                  R                  5       -  nXS:”  a   U$ U(       a  [        U5      U:¼  a   U$ Mg  ! [         a     U$ f = f! [         a     U$ f = f)Nr   g      Ð?)ÚblockÚtimeoutçš™™™™™©?)Úgetr%   r(   Úcalculate_serialized_sizer   Úlen)Útracing_queueÚlimitrT   Úmax_size_bytesÚ
next_batchÚcurrent_sizer(   s          r*   Ú_tracing_thread_drain_queuer_   Š   s  € ð *,€JØ€Lð$ð !×$Ñ$¨5¸$Ð$Ð?Ð?ˆ4Õ?Ø×Ñ˜dÔ#Ø Ó!Ø§	¡	× CÑ CÓ EÑE�àÓ0Ø%Ð%ð ðØ$×(Ñ(¨u¸dÐ(ÐC�ð
 ×Ñ˜dÔ#ð  Ó!Ø§	¡	× CÑ CÓ EÑE�ð  Ó0Øð Ðö	 œ˜Z›¨EÓ1Øð Ðñ- øô ó Øð$ Ðð'ûô" ó ØØÐðúsH   †AC ÁC ÁB? Á)8C Â$C Â=C Â?
CÃ	C ÃCÃC Ã
CÃCc                óú  •  U R                   c  gU R                   R                     U R                   R                  nU R                  =(       d    UnUb  US::  a  [	        SU 35      eUb  US:  a  [	        SU 35      eUb  X2:  a'  Ub  U R                   R
                  U:  a
   SSS5        gU R                   R                  R                  S[         S3R                  5       5        U R                   R                  R                  5         U R                   R                  R                  5       nU R                   R                  n[        [        [        U5      SU R                   R                   5        X44nU R                   R"                  nU R                   R%                  5         SSS5        WR'                  S5        UWW4$ ! , (       d  f       N$= f! [(         a    [*        R-                  S	S
S9   gf = f)z@Take the filled frame, plus the destination set it committed to.N)NNNr   z!size_limit must be positive; got z*size_limit_bytes must be nonnegative; got z--z--
ÚcontextúuLangSmith tracing error: Failed to submit trace data.
This does not affect your application's runtime.
Error details:T©Úexc_info)Úcompressed_tracesÚlockÚuncompressed_sizeÚ_max_batch_size_bytesÚ
ValueErrorÚtrace_countÚcompressor_writerÚwriter   ÚencodeÚcloseÚbufferÚtellÚsetattrr   r   Ú_contextÚdestinationsÚresetÚseekÚ	ExceptionÚloggerÚerror)ÚclientÚ
size_limitÚsize_limit_bytesÚpre_compressed_sizer^   Úfilled_bufferÚcompressed_traces_infors   s           r*   Ú'_tracing_thread_drain_compressed_bufferr   ¸   sé  € ð4 Ø×#Ñ#Ñ+Ø#Ø×%Ñ%×*Ó*Ø"(×":Ñ":×"LÑ"LÐà%×;Ñ;×OÐ?OÐàÑ%¨*¸«/Ü Ð#DÀZÀLÐ!QÓRÐRØÑ+Ð0@À1Ó0DÜ Ø@ÐAQÐ@RÐSóð ð
 !Ñ(Ð,?Ó,RàÑ" f×&>Ñ&>×&JÑ&JÈZÓ&Wà'÷# +Ð*ð( ×$Ñ$×6Ñ6×<Ñ<Ø”Y�K˜vÐ&×-Ñ-Ó/ôð ×$Ñ$×6Ñ6×<Ñ<Ô>Ø!×3Ñ3×:Ñ:×?Ñ?ÓAˆLà"×4Ñ4×;Ñ;ˆMÜÜ”S˜-Ó(ØØ×(Ñ(×1Ñ1ôð ':Ð%HÐ"Ø!×3Ñ3×@Ñ@ˆLà×$Ñ$×*Ñ*Ô,÷I +ðL 	×Ñ˜1ÔØÐ5°|ÐDÐD÷O +Õ*ûôP ó 	 Ü�‰ðð ð	 	ñ 	
ñ  ð	 ús;   ‚G �G ¦B GÂ&G Â/C;GÆ*G Ç
GÇG ÇG:Ç9G:c                ó  •  U VVs/ sH  u  p#o#PM	     nnnU Vs/ sH  oUR                  S5      PM     nnU R                  c  [        S5      e[        U R                  U5      5      n[	        U5      [	        U5      :w  a#  [        S[	        U5       S[	        U5       35      eU Vs/ sH  oUR                  S5      PM     nnX†:w  a  [        SU SU 35      e[        X5       H>  u  u  p’p«U	S:X  a  U R                  " U40 U
D6  M#  U	S:X  d  M+  U R                  " U40 U
D6  M@     U R                  (       a  U R                  R                  5         ggs  snnf s  snf s  snf ! [         a    [        R                  S	S
S9   gf = f)z1Process a batch of run operations asynchronously.ÚidNzAprocess_buffered_run_ops should not be None when processing batchzGprocess_buffered_run_ops must return the same number of runs. Expected z, got zKprocess_buffered_run_ops must preserve run IDs in the same order. Expected ÚpostÚpatchz…LangSmith buffered run ops processing error: Failed to process batch.
This does not affect your application's runtime.
Error details:Trc   )rW   Ú_process_buffered_run_opsÚRuntimeErrorr   rY   ri   ÚzipÚ_create_runÚ_update_runÚ_data_available_eventÚsetrv   rw   rx   )ry   Úbatch_to_processÚ_Úrun_dataÚ	run_dictsÚrunÚoriginal_idsÚprocessed_runsÚprocessed_idsÚ	operationÚ	write_ctxÚprocessed_runs               r*   Ú_process_buffered_run_ops_batchr–   ó   s©  € ð
-
á4DÔEÑ4D¡. !¨q’XÑ4Dˆ	ÑEÙ1:Ó;±¨#Ÿ™ ž±ˆÐ;ð ×+Ñ+Ñ3ÜØSóð ô ˜f×>Ñ>¸yÓIÓJˆô ˆ~Ó¤# i£.Ó0ÜðÜ 	›NÐ+¨6´#°nÓ2EÐ1FðHóð ñ
 3AÓA±.¨3Ÿ™ ž±.ˆÐAØÓ(ÜðØ(˜>¨°¨ð@óð ô 9<Øö9
Ñ4Ñ%ˆY˜9ð ˜FÓ"Ø×"Ò" =Ñ>°IÔ>Ø˜gÕ%Ø×"Ò" =Ñ>°IÔ>ñ9
ð ×'×'Ø×(Ñ(×,Ñ,Õ.ð (ùóE FùÚ;ùò  Bøô& ó 
ä�‰ðð ð	 	ó 	
ð
ús@   ‚E" ‡E”E" ›E´A3E" Â'EÃ A
E" ÄAE" ÅE" Å"FÆFc                óÂ  •  [        U5      nUR                  5        GH  u  u  nnn	n
nnnU(       d%  [        U Vs/ sH  oîR                  PM     sn5      nOGU Vs1 sH  oîR                  R                  iM     nnU Vs/ sH  nUR                  U;   d  M  UPM     nnU(       a  U R                  UUUU	U
UUS9  MŸ  [        S U 5       5      (       a=  [        R                  S5        U Vs/ sH  n[        U[        5      (       a  M  UPM     nnU R                  [        [        [           U5      UUU	U
UUS9  GM      U(       a  Ub  U H  n UR%                  5         M     gggs  snf s  snf s  snf s  snf ! [         a/  n[        R!                  SSS9  U R#                  U5         SnANoSnAff = f! [&         a3  nS[)        U5      ;   a  [        R+                  S	U 35         SnAM¢  e SnAff = f! U(       a_  Ub[  U HT  n UR%                  5         M  ! [&         a3  nS[)        U5      ;   a  [        R+                  S	U 35         SnAMM  e SnAff = f   f f f = f)
a…  Handle a batch of tracing queue items by sending them to LangSmith.

Args:
    client: The LangSmith client to use for sending data.
    tracing_queue: The queue containing tracing items (used for task_done calls).
    batch: List of tracing queue items to process.
    use_multipart: Whether to use multipart endpoint for sending data.
    mark_task_done: Whether to mark queue tasks as done after processing.
        Set to False when called from parallel execution to avoid double counting.
    ops: Pre-combined serialized operations to use instead of combining from batch.
        If None, operations will be combined from the batch items.
)r   r    r!   r"   r#   r$   c              3  ó@   #   • U H  n[        U[        5      v •  M     g 7fr8   )rC   r   )Ú.0Úops     r*   Ú	<genexpr>Ú/_tracing_thread_handle_batch.<locals>.<genexpr>]  s   é € ÐWÉYÀr”z "Ô&A×BÐBÊYùs   ‚z;Feedback operations are not supported in non-multipart moderb   Trc   Nú!task_done() called too many timesú3Ignoring harmless task_done error during shutdown: )r+   Úitemsr   r(   r�   Ú_multipart_ingest_opsÚanyrw   ÚwarningrC   r   Ú_batch_ingest_run_opsr   r   r   rv   rx   Ú_invoke_tracing_error_callbackÚ	task_doneri   r0   Údebug)ry   rZ   r&   Úuse_multipartÚmark_task_doneÚopsÚgrouped_batchesr   r    r!   r"   r#   r$   Úgroup_batchr(   Ú	group_opsÚ	group_idsrš   ÚerŒ   s                       r*   Ú_tracing_thread_handle_batchr¯   (  s�  € ð,Gä6°uÓ=ˆð *×/Ñ/×1ññ 
ØØØØØØØÞÜ?Ù+6Ó7©; 4—Y”Y©;Ñ7ó‘	ñ 7BÓB±k¨dŸY™YŸ\œ\±k�	ÐBÙ*-ÓD©# B°·±¸)Ñ1CŸR©#�	ÐDæØ×,Ñ,ØØ#Ø#Ø +Ø'Ø"/Ø!ð -ó ô ÑWÉYÓW×WÑWÜ—N‘NØUôñ
 #,ó!á"+˜BÜ)¨"Ô.I×J÷ Ù"+ð ð !ð
 ×,Ñ,ÜœÔ4Ñ5°yÓAØ#Ø#Ø +Ø'Ø"/Ø!ð -ô ñ; 2ö` ˜mÑ7Û�ð
Ø!×+Ñ+Ö-ò ð 8ˆ>ùò[ 8ùò CùÚDùò"!øô ó 1Ü�‰ðð ð	 	ñ 	
ð 	×-Ñ-¨a×0Ñ0ûð1ûô "ó Ø:¼cÀ!»fÓDô Ÿ™ØQÐRSÐQTÐU÷ò ð ûðûö	 ˜mÑ7Û�ð
Ø!×+Ñ+Ö-øÜ!ó Ø:¼cÀ!»fÓDô Ÿ™ØQÐRSÐQTÐU÷ò ð ûðúò ð 8ˆ>ús¹   ‚9E: »E&
ÁE: ÁE+Á9E: Á?E0ÂE0ÂAE: Ã,E5ÄE5Ä1E: ÅF6Å&E: Å:
F3Æ%F.Æ)G6 Æ.F3Æ3G6 Æ6
G3Ç 'G.Ç-G.Ç.G3Ç6IÈHÈIÈ
I	È#'I	É
IÉI	ÉI	ÉIc                ó  •  Uc$  [        U Vs/ sH  oUR                  PM     sn5      nU Vs/ sH  n[        U[        5      (       d  M  UPM     nnU Vs0 sHE  n[        UR                  [        5      (       d  M$  UR                  R                  UR
                  _MG     nnU(       a>  U R                  b  U R                  R                  Xx5        O[        R                  S5        U(       a  Ub  U H  n
 UR                  5         M     gggs  snf s  snf s  snf ! [         a/  n	[        R                  SSS9  U R                  U	5         Sn	A	NjSn	A	ff = f! [         a3  n	S[        U	5      ;   a  [        R                  SU	 35         Sn	A	M�  e Sn	A	ff = f! U(       a_  Ub[  U HT  n
 UR                  5         M  ! [         a3  n	S[        U	5      ;   a  [        R                  SU	 35         Sn	A	MM  e Sn	A	ff = f   f f f = f)a@  Handle a batch of tracing queue items by exporting them to OTEL.

Args:
    client: The LangSmith client containing the OTEL exporter.
    tracing_queue: The queue containing tracing items (used for task_done calls).
    batch: List of tracing queue items to process.
    mark_task_done: Whether to mark queue tasks as done after processing.
        Set to False when called from parallel execution to avoid double counting.
    ops: Pre-combined serialized operations to use instead of combining from batch.
        If None, operations will be combined from the batch items.
Nz—LangSmith tracing error: Failed to submit OTEL trace data.
This does not affect your application's runtime.
Error details: client.otel_exporter is NonezpOTEL tracing error: Failed to submit trace data.
This does not affect your application's runtime.
Error details:Trc   r�   rž   )r   r(   rC   r   r�   r5   Úotel_exporterÚexport_batchrw   rx   rv   r¤   r¥   ri   r0   r¦   )ry   rZ   r&   r¨   r©   r(   rš   Úrun_opsÚotel_context_mapr®   rŒ   s              r*   Ú!_otel_tracing_thread_handle_batchrµ   ˆ  sê  € ð()Ø‰;Ü5ÉUÓ6SÉUÀT·y´yÉUÑ6SÓTˆCá #ÓN¡˜"¤z°"Ô6L×'M—2¡ˆÐNñ ó
á�Ü˜$Ÿ)™)Ô%;×<ó ,ˆD�I‰I�L‰L˜$×+Ñ+Ò+Ùð 	ð 
ö
 Ø×#Ñ#Ñ/Ø×$Ñ$×1Ñ1°'ÕLä—‘ðBôö ˜mÑ7Û�ð
Ø!×+Ñ+Ö-ò ð 8ˆ>ùò7 7TùâNùò
øô ó 1Ü�‰ðð ð	 	ñ 	
ð 	×-Ñ-¨a×0Ñ0ûð1ûô "ó Ø:¼cÀ!»fÓDô Ÿ™ØQÐRSÐQTÐU÷ò ð ûðûö	 ˜mÑ7Û�ð
Ø!×+Ñ+Ö-øÜ!ó Ø:¼cÀ!»fÓDô Ÿ™ØQÐRSÐQTÐU÷ò ð ûðúò ð 8ˆ>ús¶   ‚D ŽD¢D ­DÁ	DÁD Á"DÁ;%DÂ 1D ÃF ÃD Ã7EÄD Ä
EÄ'%EÅF ÅEÅF Å
FÅ#'FÆFÆFÆHÆ*F<Æ:HÆ<
G9	Ç'G4	Ç-HÇ3G4	Ç4G9	Ç9Hc           
     ó2  • [        U Vs/ sH  oUR                  PM     sn5      n[        R                  " U5      n[        R                  " U5      n [        R
                  " SS9 n	U	R                  [        U UUUSU5      n
U	R                  [        U UUSU5      nU
R                  5         UR                  5         SSS5        U(       a  Ub  U H  n UR                  5         M     gggs  snf ! , (       d  f       N:= f! [         aK  nS[        U5      ;   a6  [        R                  S5        [        XX#SU5        [        XUSU5         SnANŒe SnAff = f! [         a3  nS[        U5      ;   a  [        R                  SU 35         SnAMÀ  e SnAff = f)	aõ  Handle a batch of tracing queue items by sending to both both LangSmith and OTEL.

Args:
    client: The LangSmith client to use for sending data.
    tracing_queue: The queue containing tracing items (used for task_done calls).
    batch: List of tracing queue items to process.
    use_multipart: Whether to use multipart endpoint for LangSmith.
    mark_task_done: Whether to mark queue tasks as done after processing.
        Set to False primarily for testing when items weren't actually queued.
é   r   FNz6cannot schedule new futures after interpreter shutdownz@Interpreter shutting down, falling back to sequential processingr�   rž   )r   r(   ÚcopyÚdeepcopyÚcfÚThreadPoolExecutorÚsubmitr¯   rµ   Úresultr…   r0   rw   r¦   r¥   ri   )ry   rZ   r&   r§   r¨   r(   r©   Úlangsmith_opsÚotel_opsÚexecutorÚfuture_langsmithÚfuture_otelr®   rŒ   s                 r*   Ú#_hybrid_tracing_thread_handle_batchrÃ   È  s‘  € ô$ .ÁUÓ.KÁU¸T¯y¬yÁUÑ.KÓ
L€Cô —M’M #Ó&€MÜ�}Š}˜SÓ!€Hð'ä×"Ò"¨qÒ1°Xà'Ÿ™Ü,ØØØØØØó Ðð #Ÿ/™/Ü1ØØØØØóˆKð ×#Ñ#Ô%Ø×ÑÔ ÷- 2öP ˜-Ñ3ÛˆAð
Ø×'Ñ'Ö)ò ð 4€~ùòa /L÷ 2Õ1ûô. ó ØCÄsÈ1ÃvÓMô �L‰LØRôô )Ø u¸UÀMôô .Ø u¨e°X÷ñ ð ûðûô* ó Ø6¼#¸a»&Ó@ô —L‘LØMÈaÈSÐQ÷ò ð ûðúsa   ŠC+ÁD Á&AC0Â<D ÃEÃ0
C>Ã:D Ã>D Ä
EÄA EÅEÅEÅ
FÅ#'FÆFÆFc                 ó    • [         R                  " S5      n U b   [        U 5      $ g ! [         a    [        R                  SU  S35         g f = f)NÚBATCH_INGEST_SIZE_LIMITz+Invalid value for BATCH_INGEST_SIZE_LIMIT: z, continuing with default)Úls_utilsÚget_env_varÚintri   rw   r¢   )Úsize_limit_strs    r*   Úget_size_limit_from_envrÊ     sg   € Ü×)Ò)Ø!ó€Nð Ñ!ð	Ü�~Ó&Ð&ð øô ó 	Ü�N‰NØ=¸nÐ=Mð N*ð *õð ð	ús   ›
' §#AÁAc           	     óø   • [         R                  " SS S[        [        [        S9nU (       d  U$  U R
                  (       d  U$ [        5       nUb  X R
                  S'   U R
                  $ ! [         a    Us $ f = f)NTéd   )Úuse_multipart_endpointr{   rz   Úscale_up_nthreads_limitÚscale_up_qsize_triggerÚscale_down_nempty_triggerrz   )Ú
ls_schemasÚBatchIngestConfigr   r   r   Úbatch_ingest_configrÊ   ÚBaseException)ÚinfoÚdefault_configÚenv_size_limits      r*   Ú_ensure_ingest_configrØ   (  s‚   € ô  ×1Ò1Ø#ØØÜ =Ü;Ü"Añ€Nö ØÐðØ×'×'Ø!Ð!Ü0Ó2ˆØÑ%Ø5C×$Ñ$ \Ñ2Ø×'Ñ'Ð'øÜó ØÒðús   °A* Á&A* Á*A9Á8A9c                óª  ^^^• U " 5       mTc  g TR                   nUc   e[        TR                  5      nUS   nUS   nUS   nTR                  (       + =(       a    UR	                  SS5      n/ mSm[
        (       d  [        R                  S5        [        R                  " S5      =(       d!    TR                  S	;   =(       d    [
        (       + nU(       dà  U(       aÙ  TR                  R                  =(       d    0 R	                  S
S5      (       d  [        R                  S5        O�[        R                  " 5       Tl        [!        5       Tl        [$        R&                  " 5       Tl        [$        R*                  " [,        [        R.                  " T5      4TR0                  S9R3                  5         TS-  mSUUU4S jjnU" 5       (       Ga{  T H+  n	U	R5                  5       (       a  M  TR7                  U	5        M-     [9        T5      U:  ao  UR;                  5       U:”  a[  [$        R*                  " [<        [        R.                  " T5      U4TR0                  S9n
TR?                  U
5        U
R3                  5         TR                  nTR@                  =(       d    UR	                  S5      =(       d    Sn[C        XUS9=n(       as  US:X  a#  [        R                  S5        [E        TXU5        OJUS:X  a"  [        R                  S5        [G        TX5        O"[        R                  S5        [I        TXU5        U" 5       (       a  GM{  [        R                  SUR;                  5       5        TR                  nTR@                  =(       d    UR	                  S5      =(       d    Sn[C        XSUS9=n(       a‡  US:X  a#  [        R                  S5        [E        TXU5        OJUS:X  a"  [        R                  S5        [G        TX5        O"[        R                  S5        [I        TXU5        [C        XSUS9=n(       a  M‡  [        R                  S5        g )Nrz   rÎ   rÏ   rÍ   Té   zUzstandard package is not installed. Falling back to uncompressed multipart ingestion.ÚDISABLE_RUN_COMPRESSION)ÚotelÚhybridÚzstd_compression_enabledFz~Run compression is not enabled. Please update to the latest version of LangSmith. Falling back to regular multipart ingestion.)ÚtargetÚargsÚdaemoné   c                 óº  >• T(       a"  [        TS5      (       a'  TR                  (       a  [        R                  S5        g[        R
                  " 5       R                  5       (       d  [        R                  S5        g[        [        S5      (       aH  [        R                  " T5      n T[        T5      -   nX:„  nU(       d  [        R                  SU U5        U$ g)NÚ_manual_cleanupz3Client is being cleaned up, stopping tracing threadFz,Main thread is dead, stopping tracing threadÚgetrefcountz�Client refs count indicates we're the only remaining reference to the client, stopping tracing thread (refcount=%d, threshold=%d)T)
Úhasattrrä   rw   r¦   Ú	threadingÚmain_threadÚis_aliveÚsysrå   rY   )ÚrefcountÚ	thresholdÚshould_keep_threadry   Únum_known_refsÚsub_threadss      €€€r*   Úkeep_thread_activeÚ7tracing_control_thread_func.<locals>.keep_thread_activeq  s²   ø€ æÜ�FÐ-×.Ñ.°6×3I×3Iä�L‰LÐNÔOØÜ×$Ò$Ó&×/Ñ/×1Ñ1ä�L‰LÐGÔHØä”3˜×&Ñ&ô —’ vÓ.ˆHØ&¬¨[Ó)9Ñ9ˆIØ!)Ñ!5ÐÞ%Ü—‘ð2ð Øôð &Ð%ð r,   r{   r   ©r[   r\   rÝ   zHandling batch in hybrid moderÜ   zHandling batch in otel modez Handling batch in langsmith modez/Tracing thread draining queue on exit: qsize=%d©r[   rT   r\   zDraining batch in hybrid modezDraining batch in otel modez Draining batch in langsmith modez'Tracing control thread is shutting down©rF   rH   )%rZ   rØ   rÕ   Ú_multipart_disabledrW   r   rw   r¦   rÆ   Úis_env_var_truishÚ_tracing_modeÚinstance_flagsr¢   ÚweakrefÚWeakSetÚ_futuresr   re   rç   ÚEventr‰   ÚThreadÚ-tracing_control_thread_func_compress_parallelÚrefÚ_use_daemon_threadsÚstartré   ÚremoverY   ÚqsizeÚ_tracing_sub_thread_funcr%   rh   r_   rÃ   rµ   r¯   )Ú
client_refrZ   rÓ   rz   rÎ   rÏ   r§   Údisable_compressionrð   ÚthreadÚ
new_threadÚmodeÚmax_batch_sizer]   ry   rî   rï   s                 @@@r*   Útracing_control_thread_funcr  @  sâ  ú€ Ù‹\€FØ�~ØØ×(Ñ(€MØÑ$Ð$Ð$Ü/°·±Ó<ÐØ)¨,Ñ7€JØ#6Ð7PÑ#QÐØ"5Ð6NÑ"OÐØ×2Ñ2Ô2÷ Ð7J×7NÑ7NØ  $ó8€Mð +-€Kà€N÷ Š>Ü�‰ð@ô	
ô
 	×"Ò"Ð#<Ó=÷ 	Ø×ÑÐ#5Ñ5÷	äÔð ö
 ¦=Ø—‘×*Ñ*×0¨b×5Ñ5Ø&¨÷
ñ 
ô �N‰NðUõô
 &ŸošoÓ/ˆFŒOÜ'7Ó'9ˆFÔ$Ü+4¯?ª?Ó+<ˆFÔ(Ü×ÒÜDÜ—k’k &Ó)Ð+Ø×1Ñ1ñ÷ ‰eŒgà˜aÑˆN÷ñ ñB ×
Ò
Û!ˆFØ—?‘?×$Ó$Ø×"Ñ" 6Ö*ñ "ô �ÓÐ6Ó6Ø×#Ñ#Ó%Ð(>Ó>ä"×)Ò)Ü/Ü—k’k &Ó)¨=Ð9Ø×1Ñ1ñˆJð
 ×Ñ˜zÔ*Ø×ÑÔà×#Ñ#ˆà×(Ñ(÷ Ø"×&Ñ&Ð'9Ó:÷àð 	ô
 5Ø¸Nñ
ð 
ˆ:õ 
ð �xÓÜ—‘Ð<Ô=Ü3Ø˜M°}õð ˜“Ü—‘Ð:Ô;Ü1°&¸-ÕTä—‘Ð?Ô@Ü,Ø˜M°}ôñG ×
Ô
ôP ‡L�LØ9Ø×ÑÓôð ×Ñ€Dà×$Ñ$×XÐ(;×(?Ñ(?Ð@RÓ(S×XÐWXð ô 4Ø¨uÀ^ñð ˆ*õ ð �8ÓÜ�L‰LÐ8Ô9Ü/Ø˜°=õð �V‹^Ü�L‰LÐ6Ô7Ü-¨f°mÕPä�L‰LÐ;Ô<Ü(Ø˜°=ôô 4Ø¨uÀ^ñð ˆ*÷ ô  ‡L�LÐ:Õ;r,   c           	     ó  ^^• U " 5       mTc  g [         R                  S5        TR                  b  TR                  b  TR                  c  [         R                  S5        g [        TR                  5      nUS   nTR                  =(       d    UR                  SS5      nSmSUU4S jjn[        R                  " 5       n TR                  R                  S	S
9nU" 5       (       d  GOU(       a~  TR                  R                  5         [        TX45      u  p‰n
Ub<   [        R!                  TR"                  UU	U
S9nTR                  R%                  U5        [        R                  " 5       nOy[        R                  " 5       U-
  U:¼  a]  [        TSSS9u  nn	n
Ub6   [(        R                  " [        R!                  TR"                  UU	U
S9/5        [        R                  " 5       nGM(   TR                  b  TR                  R*                  OSn[         R                  SU5        [        TSSS9u  nn	n
Ubz  [         R                  SUR-                  5       R.                  5         [(        R                  " [        R!                  TR"                  UU	U
S9/5        [         R                  S5        O[         R                  S5         [         R                  S5        g ! [&         a    TR#                  UU	U
S9   GN¤f = f! [&         a    TR#                  UU	U
S9   GNLf = f! [&         a>    [         R                  S5        TR#                  UU	U
S9  [         R                  S5         N¡f = f! [0         a    [         R                  SSS9   NÅf = f)Nz4Tracing control thread func compress parallel calledzšLangSmith tracing error: Required compression attributes not initialized.
This may affect trace submission but does not impact your application's runtime.rz   r{   é  @é   c                 ó   >• T(       a"  [        TS5      (       a'  TR                  (       a  [        R                  S5        g[        R
                  " 5       R                  5       (       d  [        R                  S5        g[        [        S5      (       a;  [        R                  " T5      n U T:„  nU(       d  [        R                  SU T5        U$ g)Nrä   z7Client is being cleaned up, stopping compression threadFz0Main thread is dead, stopping compression threadrå   z…Client refs count indicates we're the only remaining reference to the client, stopping compression thread (refcount=%d, threshold=%d)T)	ræ   rä   rw   r¦   rç   rè   ré   rê   rå   )rë   rí   ry   rî   s     €€r*   rð   ÚItracing_control_thread_func_compress_parallel.<locals>.keep_thread_activeñ  s¥   ø€ æÜ�FÐ-×.Ñ.°6×3I×3Iä�L‰LÐRÔSØÜ×$Ò$Ó&×/Ñ/×1Ñ1ä�L‰LÐKÔLØÜ”3˜×&Ñ&ô —’ vÓ.ˆHØ!)¨NÑ!:ÐÞ%Ü—‘ð2ð Ø"ôð &Ð%ð r,   TrV   )rU   )rs   râ   )rz   r{   r   z.Compression thread final flush: trace_count=%dz0Compression thread final flush: sending %d bytesz.Compression thread final flush: send completedzKCompression thread final flush: thread pool shutdown, sending synchronouslyz3Compression thread final flush: sync send completedz/Compression thread final flush: no data to sendzuLangSmith tracing error: Failed during final cleanup.
This does not affect your application's runtime.
Error details:rc   z1Compressed traces control thread is shutting downrô   )rw   r¦   re   r‰   rû   rx   rØ   rÕ   rh   rW   ÚtimeÚ	monotonicÚwaitÚclearr   ÚLANGSMITH_CLIENT_THREAD_POOLr¼   Ú_send_compressed_multipart_reqÚaddr…   rº   rj   Ú	getbufferÚnbytesrv   )r  Úflush_intervalrÓ   rz   r{   rð   Úlast_flush_timeÚ	triggeredÚdata_streamr~   rs   Úfuturerj   Úfinal_data_streamry   rî   s                 @@r*   rþ   rþ   Õ  s·  ù€ ñ ‹\€FØ�~ØÜ
‡L�LÐGÔHà× Ñ Ñ(Ø×'Ñ'Ñ/Ø�?‰?Ñ"ä�‰ð1ô	
ð
 	ä/°·±Ó<ÐØ)¨,Ñ7€JØ×3Ñ3÷ Ð7J×7NÑ7NØ˜Jó8Ðð
 €N÷ð ô< —n’nÓ&€Oà
Ø×0Ñ0×5Ñ5¸dÐ5ÐCˆ	Ù!×#Ñ#Ùö Ø×(Ñ(×.Ñ.Ô0ô 8Ø�jóA4Ñ=ˆK°ð Ñ&ðÜ9×@Ñ@Ø×=Ñ=Ø#Ø.Ø%1ð	 Að �Fð —O‘O×'Ñ'¨Ô/ô #ŸnšnÓ.‰Oô —’Ó  ?Ñ2°~ÓEô
 <Ø q¸1ññ	ØØ*Ø ð Ñ*ðÜŸšä <× CÑ CØ$*×$IÑ$IØ$/Ø$:Ø1=ð	 !Dð !"ðô	ô  #'§.¢.Ó"2�òs ðx6
ð ×'Ñ'Ñ3ð ×$Ñ$×0Ò0àð 	ô
 	�‰Ø<Øô	
ô 4Ø˜q°1ñ
ñ		
ØØ"Øð Ñ(Ü�L‰LØBØ!×+Ñ+Ó-×4Ñ4ôðTÜ—’ä4×;Ñ;Ø"×AÑAØ-Ø2Ø)5ð	 <ð ðô	ô —‘ÐMÕNô �L‰LÐJÕKô ‡L�LÐDÕEøô{ $ó Ø×9Ñ9Ø#Ø.Ø%1ð :ô ðûô: (ó Ø×=Ñ=Ø'Ø2Ø)5ð >ô ðûôV  ó 
TÜ—‘ð,ôð ×5Ñ5Ø%Ø*Ø!-ð 6ñ ô
 —‘ÐRÖSð
Tûô ó 
Ü�‰ðð ð	 	ó 	
ð
ús]   Ä;K Æ5K> Ç)A;M+ É%A
L  Ê0M+ ËK;Ë:K;Ë>LÌLÌ AM(Í%M+ Í'M(Í(M+ Í+NÎNc                ó(  • U " 5       nUc  g  UR                   (       d  g  UR                  nUc   e[        UR                   5      nUR                  SS5      nSn[        R                  " 5       R                  5       (       aÿ  UUS   ::  aö  UR                  =(       d    UR                  S5      =(       d    Sn[        XFUS9=n	(       a€  SnUR                  n
U
S:X  a"  [        R                  S	5        [        X$X‘5        OOU
S
:X  a"  [        R                  S5        [        X$U	5        O'[        R                  S5        [        X$X‘5        OUS-  n[        R                  " 5       R                  5       (       a  UUS   ::  a  Mö  UR                  n
UR                  =(       d    UR                  S5      =(       d    Sn[        XFSUS9=n	(       a…  U
S:X  a"  [        R                  S5        [        X$X‘5        OIU
S
:X  a"  [        R                  S5        [        X$U	5        O![        R                  S5        [        X$X‘5        [        XFSUS9=n	(       a  M…  [        R                  S5        g ! [         a   n[        R                  SU5         S nAg S nAff = f)Nz#Error in tracing control thread: %srz   rÌ   r   rÐ   r{   rò   rÝ   z(Sub-thread handling batch in hybrid moderÜ   z&Sub-thread handling batch in otel modez+Sub-thread handling batch in langsmith moderâ   Fró   z(Sub-thread draining batch in hybrid modez&Sub-thread draining batch in otel modez+Sub-thread draining batch in langsmith modez+Tracing control sub-thread is shutting down)rÕ   rÔ   rw   r¦   rZ   rØ   rW   rç   rè   ré   rh   r_   r÷   rÃ   rµ   r¯   )r  r§   ry   r®   rZ   rÓ   rz   Úseen_successive_empty_queuesr
  r]   r	  s              r*   r  r  ‡  s  € ñ ‹\€FØ�~ØðØ�{�{Øð ð
 ×(Ñ(€MØÑ$Ð$Ð$Ü/°·±Ó<ÐØ$×(Ñ(¨°sÓ;€JØ#$Ð ô
 	×ÒÓ×(Ñ(×*Ñ*à(ØÐ:Ñ;ó<ð ×(Ñ(÷ Ø"×&Ñ&Ð'9Ó:÷àð 	ô
 5Ø¸Nñ
ð 
ˆ:õ 
ð ,-Ð(à×'Ñ'ˆDØ�xÓÜ—‘ÐGÔHÜ3Ø¨:õð ˜“Ü—‘ÐEÔFÜ1°&ÈÕTä—‘ÐJÔKÜ,Ø¨:õð )¨AÑ-Ð(ô= 	×ÒÓ×(Ñ(×*Ñ*à(ØÐ:Ñ;õ<ð> ×Ñ€Dà×$Ñ$×XÐ(;×(?Ñ(?Ð@RÓ(S×XÐWXð ô 4Ø¨uÀ^ñð ˆ*õ ð �8ÓÜ�L‰LÐCÔDÜ/Ø zõð �V‹^Ü�L‰LÐAÔBÜ-¨fÀZÕPä�L‰LÐFÔGÜ(Ø zôô 4Ø¨uÀ^ñð ˆ*÷ ô  ‡L�LÐ>Õ?øôC ó Ü�‰Ð:¸AÔ>Üûðús   �I' É'
JÉ1JÊJ)r&   úlist[TracingQueueItem]rF   z}dict[tuple[Optional[str], Optional[str], Optional[str], Optional[str], Optional[str], Optional[str]], list[TracingQueueItem]])rÌ   Tr   )
rZ   r   r[   rÈ   rT   rH   r\   rÈ   rF   r"  )rÌ   r  )ry   r   rz   rÈ   r{   z
int | NonerF   zKtuple[Optional[io.BytesIO], Optional[tuple[int, int]], Optional[frozenset]])ry   r   r‹   z&list[tuple[str, dict, dict[str, Any]]]rF   rG   )TN)ry   r   rZ   r   r&   r"  r§   rH   r¨   rH   r©   úJOptional[list[Union[SerializedRunOperation, SerializedFeedbackOperation]]]rF   rG   )ry   r   rZ   r   r&   r"  r¨   rH   r©   r#  rF   rG   )T)ry   r   rZ   r   r&   r"  r§   rH   r¨   rH   rF   rG   )rF   zOptional[int])rÕ   zls_schemas.LangSmithInforF   zls_schemas.BatchIngestConfig)r  úweakref.ref[Client]rF   rG   )g      à?)r  r$  r  ÚfloatrF   rG   )r  r$  r§   rH   rF   rG   )?Ú
__future__r   Úconcurrent.futuresÚfuturesrº   r¸   Ú	functoolsÚioÚloggingrê   rç   r  rù   Úmultiprocessingr   Úqueuer   r   Útypingr   r   r	   r
   r   Ú	langsmithr   rÑ   r   rÆ   Ú&langsmith._internal._compressed_tracesr   r   Úlangsmith._internal._constantsr   r   r   r   Úlangsmith._internal._operationsr   r   r   Úopentelemetry.context.contextr   Úlangsmith.clientr   Ú	getLoggerrw   r»   r  r+   Útotal_orderingr.   r_   r   r–   r¯   rµ   rÃ   rÊ   rØ   r  rþ   r  rR   r,   r*   Ú<module>r7     s”  ðÝ "å Û Û Û 	Û Û 
Û Û Û Ý %ß ß <Õ <å +Ý 'ß S÷ó ÷ñ ö Ý5å'à	×	Ò	Ð-Ó	.€à!×4Ò4ÁÃÑMÐ ðØ!ðð
ôð< ×Ñ÷?4ð ?4ó ð?4ðF WXð+Øð+Ø!$ð+Ø37ð+ØPSð+àõ+ð^ KUð8 Øð8 Ø #ð8 Ø=Gð8 àPõ8 ðv2
Øð2
à<ð2
ð 
ô2
ðt  ð 	ð]Øð]àð]ð "ð]ð ð	]ð
 ð]ð
ð]ð 
õ]ðH  ð 	ð=Øð=àð=ð "ð=ð ð	=ð

ð=ð 
õ=ðJ  ðNØðNàðNð "ðNð ð	Nð
 ðNð 
õNôbðØ
"ðà!ôô0R<ðl >AðoFØ#ðoFØ5:ðoFà	õoFðdK@Ø#ðK@àðK@ð 
õK@r,   