ó
    Ð]jÔ%  ã                  óÎ  • S SK Jr  S SKrS SKJs  Jr  S SKrS SK	r	S SK
r
S SKrS SKJrJr  S SKJrJrJr  S SK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!  S	SK"J#r#  S	SK$J%r%J&r&  \(       a  S	SK'J(r(  \" S5      r)\" S5      r*\S 5       r+\S 5       r,\-" \+SS5      r.\-" \,SS5      r/Sr0                  SS jr1              SS jr2        SS jr3g)é    )ÚannotationsN)ÚIterableÚSequence)ÚAbstractContextManagerÚasynccontextmanagerÚcontextmanager)ÚTYPE_CHECKINGÚAnyÚCallableÚTypeVar)Útrace)Útypes)ÚLiteralStringÚ	ParamSpecé   )ÚATTRIBUTES_MESSAGE_TEMPLATE_KEYÚATTRIBUTES_TAGS_KEY)Úget_filepath_attribute)Ú	safe_reprÚuniquify_sequence)ÚLogfireÚPÚRc               #  ó   #   • S v •  g 7f©N© r   ó    ÚY/home/mande/repo/quber/.venv/lib/python3.13/site-packages/logfire/_internal/instrument.pyÚ_cmr      s   é € ä	ùs   ‚c                ó   #   • S 7v •  g 7fr   r   r   r   r   Ú_acmr!       s   é € å	ùs   ‚	Ú__code__zË@logfire.instrument should only be used on generators if they are used as context managers. See https://logfire.pydantic.dev/docs/guides/advanced/generators/#using-logfireinstrument for more information.c           
     óD   ^ ^^^^^^^^	• SSK Jm	  SUUU UUUU	UU4	S jjnU$ )Nr   )Úset_user_attributes_on_raw_spanc                óV  >	^ ^• [        T SS 5      [        [        4;   a  [        R                  " SSS9  [        T TT5      n[        TUTTT T5      m[        R                  " T 5      (       a*  T(       d  [        R                  " [        SS9  S	U U4S jjnOw[        R                  " T 5      (       a*  T(       d  [        R                  " [        SS9  S	U U4S jjnO2[        R                  " T 5      (       a  S
U UU	U
4S jjnOS
U UU	U
4S jjn[        R                  " T 5      " U5      nU$ )Nr"   zg@logfire.instrument should be underneath @contextlib.[async]contextmanager so that it is applied first.é   ©Ú
stacklevelc               ?  óv   >#   • T" U 0 UD6   T" U 0 UD6 S h  v•N   S S S 5        g  N! , (       d  f       g = f7fr   r   )Ú	func_argsÚfunc_kwargsÚfuncÚ	open_spans     €€r   ÚwrapperÚ.instrument.<locals>.decorator.<locals>.wrapperH   s9   øé € Ù 	Ð9¨[Ó9Ù# YÐ>°+Ñ>×>Ð>÷ :Ð9Ù>÷ :Õ9üs    ƒ	9Œ(˜&™(�	9¦(¨
6²9c                óˆ   >#   • T" U 0 UD6   T" U 0 UD6  S h  v•N nU7v •  M   N
 S S S 5        g ! , (       d  f       g = f7fr   r   )r*   r+   Úxr,   r-   s      €€r   r.   r/   O   sA   øé € Ù 	Ð9¨[Ó9ñ $(¨Ð#B°kÒ#B÷  ˜aØ�ñ Ð#B÷ :×9Ö9üs/   ƒ	AŒ	1•'™%š'�1¥'§1¨	A±
?»Ac               Ÿ  ó²   >#   • T" U 0 UD6 nT" U 0 UD6I S h  v•N nT(       a  T" UR                   SU05        UsS S S 5        $  N+! , (       d  f       g = f7f©NÚreturn©Ú_span©r*   r+   ÚspanÚresultr,   r-   Úrecord_returnr$   s       €€€€r   r.   r/   ]   sU   øé € Ù 	Ð9¨[Ò9¸TÙ#'¨Ð#B°kÑ#B×B�FÞ$ñ
 8¸¿
¹
ÀXÈvÐDVÔWØ!÷ :Ñ9ÙB÷ :Õ9üs+   ƒ	AŒA˜A™!Aº
AÁAÁ
AÁAc                 ó–   >• T" U 0 UD6 nT" U 0 UD6nT(       a  T" UR                   SU05        UsS S S 5        $ ! , (       d  f       g = fr3   r5   r7   s       €€€€r   r.   r/   i   sF   ø€ Ù 	Ð9¨[Ò9¸TÙ! 9Ð<°Ñ<�FÞ$Ù7¸¿
¹
ÀXÈvÐDVÔWØ!÷	 :×9×9ús	   Š&:º
A©r*   úP.argsr+   úP.kwargs)r*   r=   r+   r>   r4   r   )ÚgetattrÚCONTEXTMANAGER_HELPER_CODEÚASYNCCONTEXTMANAGER_HELPER_CODEÚwarningsÚwarnÚget_attributesÚget_open_spanÚinspectÚisgeneratorfunctionÚGENERATOR_WARNING_MESSAGEÚisasyncgenfunctionÚiscoroutinefunctionÚ	functoolsÚwraps)r,   Ú
attributesr.   r-   Úallow_generatorÚextract_argsÚlogfireÚmsg_templateÚ	new_tracer:   r$   Ú	span_nameÚtagss   `  @€€€€€€€€€r   Ú	decoratorÚinstrument.<locals>.decorator:   sð   ú€ Ü�4˜ TÓ*Ô/IÔKjÐ.kÓkÜ�MŠMØyØòô
 $ D¨,¸Ó=ˆ
Ü! '¨:°yÀ,ÐPTÐV_Ó`ˆ	ä×&Ò& t×,Ñ,Þ"Ü—’Ô7ÀAÒF÷?ñ ?ô ×'Ò'¨×-Ñ-Þ"Ü—’Ô7ÀAÒF÷
 ñ 
 ô ×(Ò(¨×.Ñ.÷	"ó 	"÷"ò "ô —/’/ $Ô'¨Ó0ˆØˆr   )r,   úCallable[P, R]r4   rW   )Úmainr$   )
rP   rT   rQ   rS   rO   r:   rN   rR   rU   r$   s
   ```````` @r   Ú
instrumentrY   .   s   ÿø€ õ 6÷7÷ 7ðr Ðr   c                ó¶  ^ ^^	^
^^^• U=(       d	    T[            mS mT" 5       T :w  a  U 4S jmU(       a  SS jm	OSS jm	SUU	UU4S jjnUSL a5  [        R                  " U5      mTR                  (       a  SUU	UUU4S jjnU$ U(       aÈ  [        R                  " U5      m[	        U[
        5      (       a  U/n[        [        U5      5      m
[        T
5      [        TR                  5      -
  nU(       aJ  T
 Vs/ s H  oˆU;  d  M
  UPM     snm
[        R                  " SS	R                  [        U5      5       3S
S9  T
(       a  SUU	U
UUU4S jjnU$ s  snf )Nc                 ó   • SSK Jn   U $ )Nr   ©ÚDEFAULT_LOGFIRE_INSTANCE)rP   r]   r\   s    r   Úget_logfireÚ"get_open_span.<locals>.get_logfire€   s   € õ
 	5à'Ð'r   c                 ó   >• T $ r   r   )rP   s   €r   r^   r_   ‹   s   ø€ ØˆNr   c                 óæ   • [         R                  " 5       R                  5       n U R                  (       d  0 $ [         R                  " U 5      /[         R
                  " [         R                  5      S.$ )N)ÚlinksÚcontext)r   Úget_current_spanÚget_span_contextÚis_validÚLinkÚset_span_in_contextÚINVALID_SPAN)Úprev_contexts    r   Úextra_span_kwargsÚ(get_open_span.<locals>.extra_span_kwargs�   sT   € Ü ×1Ò1Ó3×DÑDÓFˆLØ×(×(Ø�	äŸ*š* \Ó2Ð3Ü ×4Ò4´U×5GÑ5GÓHñð r   c                 ó   • 0 $ r   r   r   r   r   rk   rl   š   s   € ØˆIr   c                 ó@   >• T" 5       R                   " TT40 T" 5       D6$ r   )Ú
_fast_span)Ú_Ú__rM   rk   Úfinal_span_namer^   s     €€€€r   r-   Ú get_open_span.<locals>.open_spanž   s!   ø€ Ù‹}×'Ò'¨¸Ñ[ÑGXÓGZÑ[Ð[r   Tc                 óž   >• TR                   " U 0 UD6nUR                  5         UR                  nT" 5       R                  " TTU40 T" 5       D6$ r   ©ÚbindÚapply_defaultsÚ	argumentsÚ_instrument_span_with_args)	r*   r+   ÚboundÚ	args_dictrM   rk   rr   r^   Úsigs	       €€€€€r   r-   rs   ¥   sR   ø€ ØŸš )Ð;¨{Ñ;�Ø×$Ñ$Ô&Ø!ŸO™O�	Ù"“}×?Ò?Ø# Z°ñÙ>OÓ>Qñð r   z'Ignoring missing arguments to extract: z, é   r'   c                 óÐ   >• T
R                   " U 0 UD6nUR                  5         UR                  nT Vs0 s H  oDX4   _M	     nnT	" 5       R                  " TTU40 T" 5       D6$ s  snf r   ru   )r*   r+   rz   r{   ÚkrM   rk   Úextract_args_finalrr   r^   r|   s        €€€€€€r   r-   rs   À   su   ø€ ØŸš )Ð;¨{Ñ;�Ø×$Ñ$Ô&Ø!ŸO™O�	ñ 7IÓIÒ6H° 	¡š_Ñ6H�	ÐIá"“}×?Ò?Ø# Z°ñÙ>OÓ>Qñð ùò Js   ´A#)r4   zdict[str, Any])rp   r=   rq   r>   r<   )r   rF   Ú	signatureÚ
parametersÚ
isinstanceÚstrr   ÚlistÚsetrB   rC   ÚjoinÚsorted)rP   rM   rS   rO   r,   rR   r-   ÚmissingÚargrk   r€   rr   r^   r|   s   ``       @@@@@r   rE   rE   v   s-  þ€ ð %×S¨
Ô3RÑ(S€Oò(ñ ƒ}˜Óõ	ö õ	ô	÷\ò \ð �tÒÜ×Ò Ó%ˆØ�>�>÷ó ð ÐæÜ×Ò Ó%ˆä�l¤C×(Ñ(Ø(˜>ˆLä.¬t°LÓ/AÓBÐÜÐ(Ó)¬C°·±Ó,?Ñ?ˆÞÙ1CÓ!ZÒ1C¨#ÐRYÑGY§#Ñ1CÑ!ZÐÜ�MŠMØ9¸$¿)¹)ÄFÈ7ÃOÓ:TÐ9UÐVØòö
 ÷
ô 
ð Ðùò) "[s   Ã:	EÄEc                ó:  • [         R                  " U 5      n [         R                  " U 5      (       d3  [        U S5      (       a"  U R                  n [         R                  " U 5      n [        U S[        U S[        U 5      5      5      nU(       d'   S[         R                  " U 5      R                   SU 3nSU[        U0n[        R                  " [        5         U R                  R                  US'   S S S 5        [        R                  " [        5         UR                  [!        [         R"                  " U 5      5      5        S S S 5        U(       a  [%        U5      U[&        '   U$ ! [         a    SU 3n NÃf = f! , (       d  f       N�= f! , (       d  f       NO= f)NÚ__call__Ú__qualname__Ú__name__zCalling Ú.zcode.functionzcode.lineno)rF   ÚunwrapÚ
isfunctionÚhasattrrŒ   r?   r   Ú	getmodulerŽ   Ú	Exceptionr   Ú
contextlibÚsuppressr"   Úco_firstlinenoÚupdater   Úgetsourcefiler   r   )r,   rQ   rT   Ú	func_namerM   s        r   rD   rD   Ï   sD  € ô �>Š>˜$Ó€DÜ×Ò˜d×#Ñ#¬°°j×(AÑ(AØ�}‰}ˆÜ�~Š~˜dÓ#ˆÜ˜˜n¬g°d¸JÌ	ÐRVËÓ.XÓY€IÞð	2Ø%¤g×&7Ò&7¸Ó&=×&FÑ&FÐ%GÀqÈÈÐTˆLð 	˜Ü'¨ð8€Jô 
×	Ò	œYÕ	'Ø$(§M¡M×$@Ñ$@ˆ
�=Ñ!÷ 
(ä	×	Ò	œYÕ	'Ø×ÑÔ0´×1FÒ1FÀtÓ1LÓMÔN÷ 
(ö Ü*;¸DÓ*Aˆ
Ô&Ñ'àÐøô ó 	2Ø% i [Ð1ŠLð	2ú÷ 
(Õ	'úç	'Õ	'ús*   Â&E& ÃE;Ä/FÅ&E8Å7E8Å;
F	Æ
F)rP   r   rT   zSequence[str]rQ   zLiteralString | NonerS   ú
str | NonerO   úbool | Iterable[str]r:   ÚboolrN   r�   rR   r�   r4   z*Callable[[Callable[P, R]], Callable[P, R]])rP   r   rM   ú$dict[str, otel_types.AttributeValue]rS   r›   rO   rœ   r,   rW   rR   r�   r4   z(Callable[P, AbstractContextManager[Any]])r,   r
   rQ   r›   rT   zSequence[str] | Noner4   rž   )4Ú
__future__r   ÚbuiltinsÚ@py_builtinsÚ_pytest.assertion.rewriteÚ	assertionÚrewriteÚ
@pytest_arr•   rK   rF   rB   Úcollections.abcr   r   r   r   r   Útypingr	   r
   r   r   Úopentelemetryr   Úopentelemetry.utilr   Ú
otel_typesÚtyping_extensionsr   r   Ú	constantsr   r   Ú
stack_infor   Úutilsr   r   rX   r   r   r   r   r!   r?   r@   rA   rH   rY   rE   rD   r   r   r   Ú<module>r¯      s‚  ðÝ "ç  „ Ó Û Û Û ß .ß RÑ Rß 8Ó 8å Ý 2ß 6ç KÝ .ß /æÝñ ˆcƒN€ÙˆCƒL€ð ñ
ó ð
ð ñ
ó ð
ñ % S¨*°dÓ;Ð Ù")¨$°
¸DÓ"AÐ ðvð ðEØðEà
ðEð 'ðEð ð	Eð
 'ðEð ðEð ðEð ðEð 0ôEðPVØðVà4ðVð ðVð 'ð	Vð
 ðVð ðVð .ôVðrØ
ðØ'ðØ/Cðà)õr   