+
    œ°³jëH  ã                  ó:  € ^ RI Ht ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RI	H
t
 ^ RIHt ^ RIHt ^ RIt^RIHt  ! R R	4      t ! R
 R4      t]! 4       tRtR R ltR R R lltR R ltR R ltR R ltR R ltR!R R llt ! R R4      tR R ltR.tR# )"é    )ÚannotationsN)Údefaultdict)Úwraps)ÚPath)ÚAny)Ú	strtoboolc                  óJ   € ] tR t^ tR R ltR R ltRRRRRR	/R
 R lltRtR# )Ú_NetworkRequestTracec               ó   € V ^8„  d   QhRR/# ©é   Úrequestúhttpx.Request© )Úformats   "Úc/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/utils/network_logging.pyÚ__annotate__Ú!_NetworkRequestTrace.__annotate__!   s   € ÷ ,ñ , ñ ,ó    c                	ó|   € Wn         \        P                  ! 4       V n        / V n        \        \        4      V n        R # ©N)r   ÚtimeÚperf_counterÚ
started_atÚphase_started_atr   ÚfloatÚ	phases_ms)Úselfr   s   &&r   Ú__init__Ú_NetworkRequestTrace.__init__!   s+   € ØŒÜ×+Ò+Ó-ˆŒØ "ˆÔÜ$¤UÓ+ˆŽr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   ÚnameÚstrÚinfoúdict[str, Any]ÚreturnÚNoner   )r   s   "r   r   r   '   s&   € ÷ Iñ I˜#ð I ^ð I¸ñ Ir   c                	ó^  € VP                  R ^4      p\        V4      ^8w  d   R# Vw  rEp\        P                  ! 4       pVR8X  d   WpP                  V&   R# VR9   dQ   V P                  P                  VR4      pVe/   V P                  V;;,          Wx,
          R,          ,          uu&   R# R# R# )Ú.NÚstartedéè  >   ÚfailedÚcomplete)ÚrsplitÚlenr   r   r   Úpopr   )	r   r"   r$   ÚpartsÚ_ÚphaseÚstateÚnowr   s	   &&&      r   ÚtraceÚ_NetworkRequestTrace.trace'   s›   € Ø—‘˜C Ó#ˆÜˆu‹:˜Œ?Ùà‰ˆ�%Ü×ÒÓ!ˆØ�IÔØ+.×!Ñ! %Ó(ØÐ,Ô,Ø#×4Ñ4×8Ñ8¸ÀÓEÐØÒ+Ø—‘˜u×%¨#Õ*@ÀDÕ)HÕHÕ%ñ ,ñ -r   ÚresponseNÚerrorÚstreamFc               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   r8   zhttpx.Response | Noner9   zBaseException | Noner:   Úboolr&   r%   r   )r   s   "r   r   r   5   s4   € ÷ 3
ñ 3
ð (ð3
ð $ð	3
ð
 ð3
ð 
ñ3
r   c               	ó  € \         P                  ! 4       V P                  ,
          R ,          pV P                  P                  pVP
                  ;'       g    RpVP                  pR^PRR/P                  VP                  4      pVRV39   d   TMV RV 2p	Rp
RpRpRpVe‹   VP                  pVP                  pVP                  P                  R4      p\        V\        4      '       d   VP                  R	R
R7      p
MVe   \        V4      p
V'       d    \!        VP"                  4      p/ RV P                  P(                  bRVP                  bRVbRV	bRVbRVP*                  bR\-        VP.                  4      bRVP                   RT	 VP*                   VP.                  '       d   RMR 2bRV P                  P0                  P                  R4      ;'       g&    V P                  P0                  P                  R4      bRVbRV
bRVbRVbRVbRVbR\3        \5        V P6                  P9                  4       4      4      bRVf   Rb# \;        V4      P<                   R V 2b#   \$        P&                   d     ELRi ; i)!r+   Ú ÚhttpÚhttpsi»  NÚ:FÚhttp_versionÚasciiÚreplace)ÚerrorsÚmethodÚschemeÚhostÚhost_displayÚportÚpathÚ	has_queryÚurlz://z?...Ú
request_idzx-amzn-trace-idzx-request-idÚstatus_codeÚbytes_downloadedÚtotal_msr:   Úresponse_completer   r9   z: )r   r   r   r   rM   rH   rJ   ÚgetrG   rO   Ú	is_closedÚ
extensionsÚ
isinstanceÚbytesÚdecoder#   r/   ÚcontentÚhttpxÚResponseNotReadrF   rK   r<   ÚqueryÚheadersÚdictÚsortedr   ÚitemsÚtypeÚ__name__)r   r8   r9   r:   rQ   rM   rH   rJ   Údefault_portrI   rB   rO   rP   rR   Úraw_http_versions   &$$$           r   Úbuild_recordÚ!_NetworkRequestTrace.build_record5   s¼  € ô ×%Ò%Ó'¨$¯/©/Õ9¸TÕAˆØ�l‰l×ÑˆØ�x‰x�~ˆ~˜2ˆØ�x‰xˆØ  G¨SÐ1×5Ñ5°c·j±jÓAˆØ#¨¨lÐ';Ô;‘tÀDÀ6ÈÈ4È&ÐAQˆàˆØˆØÐØ!ÐØÒØ"×.Ñ.ˆKØ (× 2Ñ 2ÐØ'×2Ñ2×6Ñ6°~ÓFÐÜÐ*¬E×2Ò2Ø/×6Ñ6°wÀyÐ6ÓQ‘Ø!Ò-Ü"Ð#3Ó4�ç ðÜ'*¨8×+;Ñ+;Ó'<Ð$ð
Ø�d—l‘l×)Ñ)ð
à�c—j‘jð
ð �Dð
ð ˜Lð	
ð
 �Dð
ð �C—H‘Hð
ð œ˜cŸi™i›ð
ð �c—j‘j�\  \ N°3·8±8°*ÀsÇyÇyÀy¹VÐVXÐ<YÐZð
ð ˜$Ÿ,™,×.Ñ.×2Ñ2Ð3DÓE×qÐqÈÏÉ×I]ÑI]×IaÑIaÐbpÓIqð
ð ˜;ð
ð ˜Lð
ð Ð 0ð
ð ˜ð
ð �fð
ð  Ð!2ð
ð  œœf T§^¡^×%9Ñ%9Ó%;Ó<Ó=ð!
ð" ˜Uš]�Tð#
ð 	
ô" 48¸³;×3GÑ3GÐ2HÈÈ5È'Ð0Rð#
ð 	
øô ×,Ñ,ô Úðús   ÄI' É'J É?J )r   r   r   r   )rb   Ú
__module__Ú__qualname__Ú__firstlineno__r   r6   re   Ú__static_attributes__r   r   r   r
   r
       s5   † õ,õIð3
ð +/ð3
ð '+ð	3
ð
 ÷3
ó 3
r   r
   c                  óî   € ] tR t^ktR t]R R l4       tR R ltR$R R lltR	 R
 lt	R R lt
R$R R lltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R  ltR! R" ltR#tR# )%Ú_NetworkDebugProfilerc                	óŽ   € . V n         \        P                  ! 4       V n        R V n        RV n        RV n        RV n        RV n        R# )FN)	Ú_recordsÚ	threadingÚLockÚ_lockÚ_enabledÚ_output_pathÚ_original_client_sendÚ_original_async_client_sendÚ_shared_dir©r   s   &r   r   Ú_NetworkDebugProfiler.__init__l   s>   € ØˆŒÜ—^’^Ó%ˆŒ
ØˆŒØ ˆÔØ%)ˆÔ"Ø+/ˆÔ(ØˆÖr   c               ó   € V ^8„  d   QhRR/# ©r   r&   r<   r   )r   s   "r   r   Ú"_NetworkDebugProfiler.__annotate__v   s   € ÷ ñ ˜ñ r   c                	ó   € V P                   # r   )rr   rw   s   &r   ÚenabledÚ_NetworkDebugProfiler.enabledu   s   € à�}‰}Ðr   c               ó   € V ^8„  d   QhRR/# ©r   r&   r'   r   )r   s   "r   r   r{   y   s   € ÷ ñ �tñ r   c                	óv   € V P                   ;_uu_ 4        . V n        R R R 4       R #   + '       g   i     R # ; ir   )rq   rn   rw   s   &r   ÚclearÚ_NetworkDebugProfiler.cleary   s   € Ø�Z�Z‹ZØˆDŒM÷ �Z�ZŠZús   •'§8	Nc               ó    € V ^8„  d   QhRRRR/# ©r   Úoutput_pathzstr | os.PathLike | Noner&   r'   r   )r   s   "r   r   r{   }   s   € ÷ ñ Ð":ð Àdñ r   c                	óN  a€ V P                   '       d4   Vf   R M\        P                  ! V4      V n        V P	                  4        R # Vf   R M\        P                  ! V4      V n        V P	                  4        V o\
        P                  P                  V n        \
        P                  P                  V n
        \        V P                  4      V3R l4       p\        V P                  4      V3R l4       pV\
        P                  n        V\
        P                  n        RV n         R # )Nc                óF   <€ SP                   ! SP                  W.VO5/ VB # r   )Ú_send_with_tracert   ©Úclientr   ÚargsÚkwargsÚprofilers   &&*,€r   Úpatched_client_sendÚ9_NetworkDebugProfiler.enable.<locals>.patched_client_sendŠ   s(   ø€ à×,Ò,¨X×-KÑ-KÈVÐnÐ_cÒnÐgmÑnÐnr   c              Ÿ  ób   <"  € SP                   ! SP                  W.VO5/ VB G R j  x€L
 #  L5ir   )Ú_async_send_with_traceru   rŠ   s   &&*,€r   Úpatched_async_client_sendÚ?_NetworkDebugProfiler.enable.<locals>.patched_async_client_sendŽ   s>   øé € à!×8Ò8Ø×4Ñ4°fðØHLòØPVñ÷ ð ñ ùs   ƒ%/¨-©/T)rr   ÚosÚfspathrs   r‚   rZ   ÚClientÚsendrt   ÚAsyncClientru   r   )r   r†   r�   r“   rŽ   s   &&  @r   ÚenableÚ_NetworkDebugProfiler.enable}   sÝ   ø€ Ø�=�=ˆ=Ø(3Ò(;¡ÄÇÂÈ;ÓAWˆDÔØ�J‰JŒLÙà$/Ò$7™D¼R¿YºYÀ{Ó=SˆÔØ�
‰
ŒàˆÜ%*§\¡\×%6Ñ%6ˆÔ"Ü+0×+<Ñ+<×+AÑ+AˆÔ(ä	ˆt×)Ñ)Ó	*ô	oó 
+ð	oô 
ˆt×/Ñ/Ó	0ô	ó 
1ð	ð
 0Œ�‰ÔØ!:Œ×ÑÔØˆŽr   c               ó   € V ^8„  d   QhRR/# ©r   r&   ú
str | Noner   )r   s   "r   r   r{   ˜   s   € ÷  ñ   *ñ  r   c                ól   € V P                   f   ^ RIpVP                  RR7      V n         V P                   # )zFCreate a shared temp directory for xdist workers to dump records into.NÚnetwork_debug_)Úprefix)rv   ÚtempfileÚmkdtemp)r   r¢   s   & r   Úsetup_shared_dirÚ&_NetworkDebugProfiler.setup_shared_dir˜   s4   € à×ÑÒ#Ûà'×/Ñ/Ð7GÐ/ÓHˆDÔØ×ÑÐr   c               ó    € V ^8„  d   QhRRRR/# )r   Ú
shared_dirr#   r&   r'   r   )r   s   "r   r   r{       s   € ÷ &ñ &¨ð &°ñ &r   c                ó   € Wn         R# )z3Set the shared directory (called in xdist workers).N)rv   )r   r§   s   &&r   Úset_shared_dirÚ$_NetworkDebugProfiler.set_shared_dir    s   € à%Ör   c               ó    € V ^8„  d   QhRRRR/# )r   Ú	worker_idrž   r&   r'   r   )r   s   "r   r   r{   ¤   s   € ÷ Jñ J¨Zð JÀ4ñ Jr   c                ó  € V P                   '       d   V P                  '       g   R# T;'       g    R\        P                  ! 4        2p\        P                  P                  V P                   RV R24      pV P                  ;_uu_ 4        V P                   Uu. uF  p/ VCR\        VR,          4      /CNK  	  ppRRR4       \        V4      P                  \        P                  ! X4      RR7       R# u upi   + '       g   i     LG; i)zSWrite this process's records to a file in the shared directory (called in workers).NÚpidÚrecords_z.jsonr   úutf-8©Úencoding)rv   rn   r•   ÚgetpidrK   Újoinrq   r^   r   Ú
write_textÚjsonÚdumps)r   r¬   Ú	dump_pathÚrecordÚrecordss   &&   r   Údump_worker_recordsÚ)_NetworkDebugProfiler.dump_worker_records¤   sÅ   € à××Ð t§}§} }ÙØ×4Ð4 3¤r§y¢y£{ mÐ!4ˆ	Ü—G‘G—L‘L ×!1Ñ!1°X¸i¸[ÈÐ3NÓOˆ	Ø�Z�Z‹ZØX\×XeÒXeÓfÑXeÈfÐI˜&ÐI +¬t°F¸;Õ4GÓ/HÔIÑXeˆGÐf÷ äˆY‹×"Ñ"¤4§:¢:¨gÓ#6ÀÐ"ÖIùò g÷ �Zús   ÂC<Â!C7Â;C<Ã7C<Ã<D	c               ó   € V ^8„  d   QhRR/# r€   r   )r   s   "r   r   r{   ®   s   € ÷ ñ  Tñ r   c                ó¨  € V P                   '       d0   \        P                  P                  V P                   4      '       g   R# ^ RIpVP	                  \        P                  P                  V P                   R4      4       F—  p \        P                  ! \        V4      P                  RR7      4      pV P                  ;_uu_ 4        V FA  p\        \        VP                  R/ 4      4      VR&   V P                  P                  V4       KC  	  RRR4       K™  	  R#   + '       g   i     K®  ; i  \         \        P"                  3 d     KÏ  i ; i)zNLoad all worker record files from the shared directory (called in controller).Nzrecords_*.jsonr°   r±   r   )rv   r•   rK   ÚisdirÚglobr´   r¶   Úloadsr   Ú	read_textrq   r   r   rS   rn   ÚappendÚOSErrorÚJSONDecodeError)r   Úglob_moduleÚrecord_filerº   r¹   s   &    r   Úload_worker_recordsÚ)_NetworkDebugProfiler.load_worker_records®   sï   € à××Ð¤r§w¡w§}¡}°T×5EÑ5E×'FÒ'FÙÛ"à&×+Ñ+¬B¯G©G¯L©L¸×9IÑ9IÐK[Ó,\Ö]ˆKðÜŸ*š*¤T¨+Ó%6×%@Ñ%@È'Ð%@Ó%RÓS�Ø—Z—Z“ZÛ")˜Ü.9¼%ÀÇÁÈKÐY[ÓA\Ó.]˜˜{Ñ+ØŸ™×,Ñ,¨VÖ4ñ #*÷  ‘Zó ^÷  —Z�Zûô œT×1Ñ1Ð2ô Úðús2   ÂAD2ÃADÄD2ÄD/Ä)D2Ä/D2Ä2EÅEc               ó   € V ^8„  d   QhRR/# r€   r   )r   s   "r   r   r{   ¾   s   € ÷ $ñ $ Dñ $r   c                óà   € V P                   '       d\   \        P                  P                  V P                   4      '       d+   ^ RIpVP                  V P                   RR7       RV n         R# R# R# )z!Remove the shared temp directory.NT)Úignore_errors)rv   r•   rK   r¿   ÚshutilÚrmtree)r   rÍ   s   & r   Úcleanup_shared_dirÚ(_NetworkDebugProfiler.cleanup_shared_dir¾   sP   € à××Ð¤§¡§¡¨d×.>Ñ.>× ?Ò ?Ûà�M‰M˜$×*Ñ*¸$ˆMÔ?Ø#ˆDÖñ	 !@Ñr   c               ó   € V ^8„  d   QhRR/# r€   r   )r   s   "r   r   r{   Æ   s   € ÷ 
ñ 
˜ñ 
r   c                	ó  € V P                   '       g   R # V P                  \        P                  n        V P
                  \        P                  n        RV n         R V n        R V n        R V n        V P                  4        R # )NF)	rr   rt   rZ   r—   r˜   ru   r™   rs   r‚   rw   s   &r   ÚdisableÚ_NetworkDebugProfiler.disableÆ   s\   € Ø�}�}ˆ}Ùà ×6Ñ6Œ�‰ÔØ!%×!AÑ!AŒ×ÑÔØˆŒØ%)ˆÔ"Ø+/ˆÔ(Ø ˆÔØ�
‰
Žr   c               ó    € V ^8„  d   QhRRRR/# )r   r¹   r%   r&   r'   r   )r   s   "r   r   r{   Ò   s   € ÷ )ñ ) ^ð )¸ñ )r   c                	óž   € V P                   ;_uu_ 4        V P                  P                  V4       R R R 4       R #   + '       g   i     R # ; ir   )rq   rn   rÃ   )r   r¹   s   &&r   Ú_append_recordÚ$_NetworkDebugProfiler._append_recordÒ   s)   € Ø�Z�Z‹ZØ�M‰M× Ñ  Ô(÷ �Z�ZŠZús	   •;»A	c               ó    € V ^8„  d   QhRRRR/# ©r   r   r   r6   r
   r   )r   s   "r   r   r{   Ö   s   € ÷ 	ñ 	¨Mð 	ÐBVñ 	r   c                	óT   aa€ VP                   P                  R 4      oR VV3R llpV# )r6   c               ó$   € V ^8„  d   QhRRRRRR/# ©r   r"   r#   r$   r%   r&   r   r   )r   s   "r   r   Ú@_NetworkDebugProfiler._wrap_trace_callback.<locals>.__annotate__Ù   s!   € ÷ 	ñ 	 ð 	¨>ð 	¸cñ 	r   c                óB   <€ SP                  W4       Se	   S! W4      # R # r   )r6   )r"   r$   Úexisting_tracer6   s   &&€€r   Úwrapped_traceÚA_NetworkDebugProfiler._wrap_trace_callback.<locals>.wrapped_traceÙ   s#   ø€ Ø�K‰K˜Ô#ØÒ)Ù% dÓ1Ð1Ùr   ©rU   rS   ©r   r   r6   rá   rà   s   &&f @r   Ú_wrap_trace_callbackÚ*_NetworkDebugProfiler._wrap_trace_callbackÖ   s+   ù€ Ø ×+Ñ+×/Ñ/°Ó8ˆ÷	ñ 	ð Ðr   c               ó    € V ^8„  d   QhRRRR/# rÚ   r   )r   s   "r   r   r{   á   s   € ÷ ñ °=ð ÐI]ñ r   c              ƒ  	ó\   aa"  € VP                   P                  R 4      oR VV3R llpV# 5i)r6   c               ó$   € V ^8„  d   QhRRRRRR/# rÝ   r   )r   s   "r   r   ÚA_NetworkDebugProfiler._awrap_trace_callback.<locals>.__annotate__ä   s!   € ÷ 	ñ 	 cð 	°ð 	ÀCñ 	r   c              “  óž   <"  € SP                  W4       Se1   S! W4      p\        P                  ! V4      '       d   VG R j  x€L
 # V# R #  L5ir   )r6   ÚinspectÚisawaitable)r"   r$   Úresultrà   r6   s   && €€r   rá   ÚB_NetworkDebugProfiler._awrap_trace_callback.<locals>.wrapped_traceä   sH   øé € Ø�K‰K˜Ô#ØÒ)Ù'¨Ó3�Ü×&Ò& v×.Ò.Ø!'Ÿ<Ð'Ø�Ùñ (ùs   ƒ?AÁAÁ	Arã   rä   s   &&f @r   Ú_awrap_trace_callbackÚ+_NetworkDebugProfiler._awrap_trace_callbacká   s.   ùé € Ø ×+Ñ+×/Ñ/°Ó8ˆ÷	ñ 	ð Ðùs   „(,c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r{   ï   s   € ÷ ñ ¸}ñ r   c           
     	ó’  € \        V4      p\        VP                  4      Vn        V P                  W64      VP                  R &    V! W#.VO5/ VB pT P                  TP                  YuP                  RR4      R7      4       T#   \         d8   pT P                  TP                  Y…P                  RR4      R7      4       h Rp?ii ; i)r6   r:   F©r9   r:   N©r8   r:   )r
   r^   rU   rå   Ú	Exceptionr×   re   rS   ©	r   Úoriginal_sendr‹   r   rŒ   r�   r6   r8   r9   s	   &&&&*,   r   r‰   Ú&_NetworkDebugProfiler._send_with_traceï   sÁ   € Ü$ WÓ-ˆÜ! '×"4Ñ"4Ó5ˆÔØ&*×&?Ñ&?ÀÓ&Oˆ×Ñ˜7Ñ#ð	Ù$ VÐF°tÒF¸vÑFˆHð
 	×Ñ˜E×.Ñ.¸ÏÉÐT\Ð^cÓIdÐ.ÓeÔfØˆøô ô 	Ø×Ñ × 2Ñ 2¸ÇzÁzÐRZÐ\aÓGbÐ 2Ó cÔdØûð	ús   ÁB ÂCÂ2CÃCc               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r{   ý   s   € ÷ ñ È=ñ r   c           
   �  	óÂ  "  € \        V4      p\        VP                  4      Vn        V P                  W64      G R j  x€L
 VP                  R&    V! W#.VO5/ VB G R j  x€L
 pT P                  TP                  YuP                  RR4      R7      4       T#  LY L9  \         d8   pT P                  TP                  Y…P                  RR4      R7      4       h R p?ii ; i5i)Nr6   r:   Frô   rõ   )r
   r^   rU   rð   rö   r×   re   rS   r÷   s	   &&&&*,   r   r’   Ú,_NetworkDebugProfiler._async_send_with_traceý   sÓ   é € Ü$ WÓ-ˆÜ! '×"4Ñ"4Ó5ˆÔØ,0×,FÑ,FÀwÓ,V×&Vˆ×Ñ˜7Ñ#ð	Ù*¨6ÐL¸TÒLÀVÑL×LˆHð
 	×Ñ˜E×.Ñ.¸ÏÉÐT\Ð^cÓIdÐ.ÓeÔfØˆñ 'Wñ MøÜô 	Ø×Ñ × 2Ñ 2¸ÇzÁzÐRZÐ\aÓGbÐ 2Ó cÔdØûð	üsE   ‚:C¼B½CÁB ÁBÁB Á#4CÂB ÂCÂ%2CÃCÃCc               ó   € V ^8„  d   QhRR/# ©r   r&   r%   r   )r   s   "r   r   r{     s   € ÷ 4
ñ 4
˜nñ 4
r   c                	ó:  € V P                   ;_uu_ 4        V P                   Uu. uF  p/ VCR \        VR ,          4      /CNK  	  ppRRR4       \        \        4      p/ pX EF(  pVR ,          P                  4        F  w  rVW5;;,          V,          uu&   K  	  VR,          VR,          VR,          3pVP                  VRVR,          RVR,          RVR,          R^ R^ RRR	\        \        4      /4      pVR;;,          ^,          uu&   VR;;,          VR,          ,          uu&   VR;;,          \        VR
,          RJ4      ,          uu&   VR ,          P                  4        F!  w  rVVR	,          V;;,          V,          uu&   K#  	  EK+  	  . p	VP                  4        FZ  pVR,          VR,          ,          VR&   \        \        VR	,          P                  4       4      4      VR	&   V	P                  V4       K\  	  V	P                  R RR7       \        R V 4       4      p
RV P                  RV P                  R\        V4      R\        R V 4       4      RV
R	\        \        VP                  4       4      4      RVRV	/# u upi   + '       g   i     ELK; i)r   NrF   rI   rK   ÚcountÚfailuresrQ   g        Úphase_totals_msr9   Úavg_msc                ó   € V R ,          # ©rQ   r   )Úroutes   &r   Ú<lambda>Ú4_NetworkDebugProfiler.build_report.<locals>.<lambda>4  s	   €  e¨JÖ&7r   T©ÚkeyÚreversec              3  ó2   "  € T F  qR ,          x € K  	  R# 5i)rQ   Nr   ©Ú.0r¹   s   & r   Ú	<genexpr>Ú5_NetworkDebugProfiler.build_report.<locals>.<genexpr>5  s   é € ÐE¹W°6 :×.Ò.»Wùs   ‚r}   r†   Útotal_requestsÚfailed_requestsc              3  óJ   "  € T F  p\        VR ,          RJ4      x € K  	  R# 5i)r9   N)Úintr  s   & r   r  r  :  s#   é € Ð"ZÑRYÈ¤3 v¨g¥¸dÐ'B×#CÐ#CÓRYùs   ‚!#Útotal_time_msÚrequestsÚroutes)rq   rn   r^   r   r   r`   Ú
setdefaultr  Úvaluesr_   rÃ   ÚsortÚsumrr   rs   r/   )r   r¹   rº   r  Úroute_totalsr3   Úduration_msÚ	route_keyÚroute_totalr  r  s   &          r   Úbuild_reportÚ"_NetworkDebugProfiler.build_report  sq  € Ø�Z�Z‹Zð #Ÿmšmóñ
 ,�Fð	Øðà¤ f¨[Õ&9Ó!:ôñ ,ð ð ÷ ô &¤eÓ,ˆØˆÜˆFØ&,¨[Õ&9×&?Ñ&?Ö&AÑ"�Ø×&¨+Õ5Õ&ñ 'Bð   Õ)¨6°.Õ+AÀ6È&Å>ÐRˆIØ&×1Ñ1Øà˜f XÕ.Ø" F¨>Õ$:Ø˜F 6�NØ˜QØ Ø Ø%¤{´5Ó'9ðóˆKð ˜×  AÕ%Ó Ø˜
×# v¨jÕ'9Õ9Ó#Ø˜
×#¤s¨6°'­?À$Ð+FÓ'GÕGÓ#Ø&,¨[Õ&9×&?Ñ&?Ö&AÑ"�ØÐ-Õ.¨u×5¸ÕDÕ5ô 'Bñ) ð. ˆØ'×.Ñ.Ö0ˆKØ$/°
Õ$;¸kÈ'Õ>RÕ$RˆK˜Ñ!Ü-1´&¸ÐEVÕ9W×9]Ñ9]Ó9_Ó2`Ó-aˆKÐ)Ñ*Ø�M‰M˜+Ö&ñ 1ð
 	�‰Ñ7ÀˆÔFÜÑE¹WÓEÓEˆà�t—}‘}Ø˜4×,Ñ,Øœc '›lØœsÑ"ZÑRYÓ"ZÓZØ˜]Øœt¤F¨?×+@Ñ+@Ó+BÓ$CÓDØ˜Ø�fð	
ð 		
ùòS÷ �ZˆZús   •J	¤!JÁJ	ÊJ	Ê	J	c               ó   € V ^8„  d   QhRR/# r�   r   )r   s   "r   r   r{   A  s   € ÷  ñ   Jñ  r   c                	ó  € V P                   f   R # \        V P                   4      pVP                  P                  RRR7       VP	                  \
        P                  ! V P                  4       ^RR7      RR7       \        V4      # )NT)ÚparentsÚexist_ok)ÚindentÚ	sort_keysr°   r±   )	rs   r   ÚparentÚmkdirrµ   r¶   r·   r   r#   )r   Úreport_paths   & r   Úmaybe_write_reportÚ(_NetworkDebugProfiler.maybe_write_reportA  sp   € Ø×ÑÒ$Ùä˜4×,Ñ,Ó-ˆØ×Ñ× Ñ ¨¸Ð Ô=Ø×ÑœtŸzšz¨$×*;Ñ*;Ó*=ÀaÐSWÔXÐcjÐÔkÜ�;ÓÐr   )rr   rq   ru   rt   rs   rn   rv   r   )rb   rg   rh   ri   r   Úpropertyr}   r‚   rš   r¤   r©   r»   rÈ   rÏ   rÓ   r×   rå   rð   r‰   r’   r   r+  rj   r   r   r   rl   rl   k   sm   † ò ð ôó ðõ÷õ6 õ&÷Jõõ $õ
õ)õ	õõõõ4
÷l ñ  r   rl   znetwork_debug_report.jsonc               ó   € V ^8„  d   QhRR/# )r   r&   ztuple[bool, str]r   )r   s   "r   r   r   Q  s   € ÷  ñ  Ð"2ñ  r   c                 ó@  € \         P                  P                  R R4      P                  4       p  V '       d   \	        \        V 4      4      MRp\         P                  P                  RR4      P                  4       ;'       g    \        pW3#   \         d    Rp LNi ; i)ÚNETWORK_DEBUG_REPORTr>   FÚNETWORK_DEBUG_REPORT_PATH)r•   ÚenvironrS   Ústripr<   r   Ú
ValueErrorÚ_DEFAULT_REPORT_PATH)Úenabled_rawr}   r†   s      r   Ú_parse_network_debug_envr7  Q  s€   € Ü—*‘*—.‘.Ð!7¸Ó<×BÑBÓD€Kðß2=”$”y Ó-Ô.À5ˆô —*‘*—.‘.Ð!<¸bÓA×GÑGÓI×aÐaÔMa€KØÐÐøô	 ô ØŠðús   °B ¸B ÂBÂBc               ó    € V ^8„  d   QhRRRR/# r…   r   )r   s   "r   r   r   \  s   € ÷ <ñ <Ð.Fð <ÐRVñ <r   c                ó2   € \         P                  V R 7       R# )©r†   N)Ú_NETWORK_DEBUG_PROFILERrš   r:  s   &r   Ú_enable_network_debug_reportr<  \  s   € Ü×"Ñ"¨{Ð"Ö;r   c               ó   € V ^8„  d   QhRR/# r€   r   )r   s   "r   r   r   `  s   € ÷ &ñ & tñ &r   c                 ó.   € \         P                  4        R # r   )r;  rÓ   r   r   r   Ú_disable_network_debug_reportr?  `  s   € Ü×#Ñ#Ö%r   c               ó   € V ^8„  d   QhRR/# r€   r   )r   s   "r   r   r   d  s   € ÷ $ñ $ Tñ $r   c                 ó.   € \         P                  4        R # r   )r;  r‚   r   r   r   Ú_clear_network_debug_reportrB  d  s   € Ü×!Ñ!Ö#r   c               ó   € V ^8„  d   QhRR/# rþ   r   )r   s   "r   r   r   h  s   € ÷ 2ñ 2 >ñ 2r   c                 ó*   € \         P                  4       # r   )r;  r   r   r   r   Ú_get_network_debug_reportrE  h  s   € Ü"×/Ñ/Ó1Ð1r   c               ó   € V ^8„  d   QhRR/# rz   r   )r   s   "r   r   r   l  s   € ÷ ñ ¨tñ r   c                 óJ   € \        4       w  rV '       g   R # \        VR7       R# )Fr:  T)r7  r<  )r}   r†   s     r   Ú%_enable_network_debug_report_from_envrH  l  s   € Ü3Ó5Ñ€GßÙä ¨[Õ9Ùr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úmax_requestsr  Ú
max_routesr&   r#   r   )r   s   "r   r   r   u  s"   € ÷ -ñ -¨sð -ÀSð -ÐRUñ -r   c                óè  € \        4       pVR ,          ^ 8X  d   R# RRVR ,           2RVR,           2RVR,          R R	2.pVR
,          '       dO   RP                  R \        VR
,          P                  4       R RR7       4       4      pVP	                  RV 24       VP	                  R4       VP	                  R4       \        \        VR,          R RR7      RV  ^R7       FÞ  w  rVVR,          ;'       g    RVR,           2p. pR4 F9  p	VR,          P                  V	4      p
V
f   K!  VP	                  V	 RV
R R	24       K;  	  V'       d   RRP                  V4       R2MRpVR,          '       d   VR,          '       g   R MRpVP	                  VR! R"VR#,           R$VR%,           R$VR&,          R R'V V V 24       Kà  	  VP	                  R4       VP	                  R(4       \        VR),          RV ^R7       F`  w  r]VP	                  VR! R"VR#,           R$VR*,           VR+,           R,VR-,           R.VR&,          R R/VR0,          R R1VR2,           24       Kb  	  R3P                  V4      # )5r  z1Network debug report: no httpx requests captured.zNetwork debug reportzRequests captured: zFailed requests: r  zCumulative request time: r  ú.1fú msr  z, c              3  ó8   "  € T F  w  rV R VR R2x € K  	  R# 5i)Ú=rM  rN  Nr   )r  r3   r  s   &  r   r  Ú/_format_network_debug_report.<locals>.<genexpr>‚  s*   é € ð "
á&wÑ"�ð ˆg�Q�{ 3Ð' sÕ+Û&wùs   ‚c                ó   € V ^,          # )é   r   )Úitems   &r   r  Ú._format_network_debug_report.<locals>.<lambda>„  s   € ÐaeÐfgÖahr   Tr	  zPhase totals: r>   zSlowest requests:r  c                ó   € V R ,          # r  r   )r   s   &r   r  rU  ‹  s	   € °w¸zÖ7Jr   N)Ústartr9   zstatus=rO   r   rP  z (Ú)r:   rR   z incompletez>2z. rF   Ú rM   rQ   z ms zSlowest routes:r  rI   rK   z count=r   z total=z ms avg=r  z ms failures=r  Ú
)Úconnect_tcpÚ	start_tlsÚreceive_response_headersÚreceive_response_body)rE  r´   r_   r`   rÃ   Ú	enumeraterS   )rJ  rK  ÚreportÚlinesÚphase_summaryÚidxr¹   ÚstatusÚ
phase_bitsr3   r  Úphase_suffixÚincomplete_suffixr  s   &&            r   Ú_format_network_debug_reportrh  u  s»  € Ü&Ó(€FØÐÕ 1Ô$ÙBð 	Ø
˜fÐ%5Õ6Ð7Ð8Ø
˜FÐ#4Õ5Ð6Ð7Ø
# F¨?Õ$;¸CÐ#@ÀÐDð	€Eð Ð× Ô ØŸ	™	ñ "
ä&,¨VÐ4EÕ-F×-LÑ-LÓ-NÑThÐrvÕ&wó"
ó 
ˆð 	�‰�~ m _Ð5Ô6à	‡L�L�ÔØ	‡L�LÐ$Ô%Ü Üˆv�jÕ!Ñ'JÐTXÔYÐZgÐ[gÐhØ÷‰ˆð ˜•×EÐE g¨f°]Õ.CÐ-DÐ$EˆØˆ
ÛfˆEØ  Õ-×1Ñ1°%Ó8ˆKØÔ&Ø×!Ñ! U G¨1¨[¸Ð,=¸SÐ"AÖBñ g÷ 9C˜˜DŸI™I jÓ1Ð2°!Ñ4ÈˆØ-3°H×-=Ô-=ÀfÐM`×FaÔFa™MÐgiÐØ�‰Ø�2ˆh�b˜ Õ)Ð*¨!¨F°5­M¨?¸!¸FÀ:Õ<NÈsÐ;SÐSWÐX^ÐW_Ð`qÐ_rÐsð  sAð  Bö	
ñð  
‡L�L�ÔØ	‡L�LÐ"Ô#Ü  xÕ 0°°*Ð =ÀQ×G‰
ˆØ�‰Ø�2ˆh�b˜˜x�Ð)¨¨5°Õ+@Ð*AÀ%ÈÅ-ÀÐPWÐX]Ð^eÕXfÐWgð hØ˜:Õ& sÐ+¨8°E¸(µOÀCÐ3HÈÐV[Ð\fÕVgÐUhðjö	
ñ Hð �9‰9�UÓÐr   c                  ó2   € ] tR tRtRtR tR tR tR tRt	R# )	ÚNetworkDebugPlugini¥  zXPytest plugin that handles all network debug orchestration including xdist coordination.c                	ó.  € \        4        \        P                  '       g   R # \        VR4      '       g'   \        P	                  4       pV'       d	   W!n        R # R # VP                  P                  R4      pV'       d   \        P                  V4       R # R # )NÚworkerinputÚnetwork_debug_shared_dir)	rH  r;  r}   Úhasattrr¤   Ú_network_debug_shared_dirrl  rS   r©   )r   Úconfigr§   s   && r   Úpytest_configureÚ#NetworkDebugPlugin.pytest_configure¨  sq   € Ü-Ô/Ü&×.×.Ð.Ùô �v˜}×-Ò-Ü0×AÑAÓCˆJßØ3=Ö0ñ ð  ×+Ñ+×/Ñ/Ð0JÓKˆJßÜ'×6Ñ6°zÖBñ r   c                ód   € \        VP                  RR4      pV'       d   W!P                  R&   R# R# )zCxdist hook: called on the controller to configure each worker node.ro  Nrm  )Úgetattrrp  rl  )r   Únoder§   s   && r   Úpytest_configure_nodeÚ(NetworkDebugPlugin.pytest_configure_node¸  s,   € ä˜TŸ[™[Ð*EÀtÓLˆ
ßØ;E×ÑÐ7Ó8ñ r   c                	óæ   € \        VP                  R 4      '       dU   VP                  P                  P                  RR\        P
                  ! 4        24      p\        P                  VR7       R# R# )rl  Úworkeridr®   )r¬   N)rn  rp  rl  rS   r•   r³   r;  r»   )r   ÚsessionÚ
exitstatusr¬   s   &&& r   Úpytest_sessionfinishÚ'NetworkDebugPlugin.pytest_sessionfinish¾  sR   € ä�7—>‘> =×1Ò1ØŸ™×2Ñ2×6Ñ6°zÀSÌÏÊËÈÐCVÓWˆIÜ#×7Ñ7À)Ð7ÖLñ 2r   c                	óà  € \         P                  '       g   R # \        VP                  R4      '       d   R # \         P	                  4        R p \         P                  4       pVP                  RRR7       \        4       P                  4        F  pVP                  V4       K  	  Ve   VP                  RV 24       \         P                  4        R #   \         d   pRT 2p R p?L†R p?ii ; i)Nrl  zFailed to write JSON report: zNetwork debugrP  )ÚsepzJSON report: )r;  r}   rn  rp  rÈ   r+  rÄ   Úsectionrh  Ú
splitlinesÚ
write_linerÏ   )r   Úterminalreporterr*  r9   Úlines   &&   r   Úpytest_terminal_summaryÚ*NetworkDebugPlugin.pytest_terminal_summaryÄ  sÒ   € Ü&×.×.Ð.Ùô Ð#×*Ñ*¨M×:Ò:Ùô 	 ×3Ñ3Ô5àˆð	BÜ1×DÑDÓFˆKð 	× Ñ  °cÐ Ô:Ü0Ó2×=Ñ=Ö?ˆDØ×'Ñ'¨Ö-ñ @àÒ"Ø×'Ñ'¨-¸°}Ð(EÔFä×2Ñ2Ö4øô ô 	BØ9¸%¸ÐA�Kûð	Bús   ÁC ÃC-ÃC(Ã(C-r   N)
rb   rg   rh   ri   Ú__doc__rq  rv  r|  r…  rj   r   r   r   rj  rj  ¥  s   † ÙbòCò FòMö5r   rj  c               ó   € V ^8„  d   QhRR/# r€   r   )r   s   "r   r   r   Þ  s   € ÷ Iñ I¨Tñ Ir   c                óN   € V P                   P                  \        4       R4       R# )zMRegister the network debug pytest plugin. Single entry point for conftest.py.Únetwork_debugN)ÚpluginmanagerÚregisterrj  )rp  s   &r   Úregister_network_debug_pluginr�  Þ  s   € à
×Ñ×!Ñ!Ô"4Ó"6¸ÖHr   r�  r   )é   é
   ) Ú
__future__r   rì   r¶   r•   ro   r   Úcollectionsr   Ú	functoolsr   Úpathlibr   Útypingr   rZ   Úgenericr   r
   rl   r;  r5  r7  r<  r?  rB  rE  rH  rh  rj  r�  Ú__all__r   r   r   Ú<module>r—     s™   ðõ #ã Û Û 	Û Û Ý #Ý Ý Ý ã å ÷H
ñ H
÷V] ñ ] ñ@ 0Ó1Ð ð 3Ð õ ÷<õ&õ$õ2õ÷-÷`65ñ 65õrIð $ð‚r   