ó
    Ð]jõ;  ã                  ó¾  • S 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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JrJrJrJrJrJrJrJr  \\   r\\   r\R@                  RC                  S	5      r"\R@                  S
   r#\"c4  \R@                  S   r$\R@                  S   r%\RL                  (       a  SOSr'OS=r$=r%r'\(RS                  S5      r* " S S\5      r+g)z#Raw data collector for coverage.py.é    )ÚannotationsN)ÚCallable)Ú	FrameTypeÚ
ModuleType)ÚAnyÚcast)Úenv)
ÚTArcÚTFileDispositionÚTLineNoÚTracerÚTShouldStartContextFnÚTShouldTraceFnÚ
TTraceDataÚTTraceFileDataÚTTraceFnÚTWarnFnÚRESUMEÚRETURN_VALUEÚYIELD_VALUEÚ
YIELD_FROMé   éÿÿÿÿÚcoc                  ó¬   • \ rS rSrSr\R                  " 5       rSS jrSS jr	SS jr
 S         SS jjrSS jrSS	 jrSS
 jrSS jrSS jrSrg)ÚPyTraceré8   z-Python implementation of the raw data tracer.c                óp  • [        U R                  5      U l        U   SU l        U   U   S U l        S U l        U   U   U   S U l        S U l        SU l        S U l	        S U l
        SU l        / U l        S U l        SU l        SU l        SU l        ["        R$                  " [&        U SS5        U R(                  U l        g )NFr   Ú	in_atexitT)ÚnextÚ
tracer_idsÚidÚ
trace_arcsÚshould_start_contextÚswitch_contextÚ	threadingÚcur_file_dataÚ	last_lineÚcur_file_nameÚcontextÚstarted_contextÚ
data_stackÚthreadÚstoppedÚ	_activityr   ÚatexitÚregisterÚsetattrÚ_traceÚ_cached_bound_method_trace©Úselfs    ÚN/home/mande/repo/quber/.venv/lib/python3.13/site-packages/coverage/pytracer.pyÚ__init__ÚPyTracer.__init__M   s³   € ä�t—‘Ó'ˆŒñ 	ØˆŒÙÙØBFˆÔ!ØCGˆÔÙÙÙð -1ˆŒà48ˆÔØ"#ˆŒØ)-ˆÔØ#'ˆŒØ$ˆÔð Z\ˆŒØ/3ˆŒØˆŒØˆŒàˆŒä�Šœ  {°DÔ9ð 59·K±KˆÕ'ó    c                ó¬   • [        S U R                  R                  5        5       5      n[        U R                  5      nS[	        U 5      S SU SU S3$ )Nc              3  ó8   #   • U  H  n[        U5      v •  M     g 7f©N)Úlen)Ú.0Úvs     r7   Ú	<genexpr>Ú$PyTracer.__repr__.<locals>.<genexpr>{   s   é € Ð8Ò%7 ”S˜—V�VÒ%7ùs   ‚z<PyTracer at z#xz: z data points in z files>)ÚsumÚdataÚvaluesr>   r"   )r6   ÚpointsÚfiless      r7   Ú__repr__ÚPyTracer.__repr__z   sN   € ÜÑ8 T§Y¡Y×%5Ñ%5Ô%7Ó8Ó8ˆÜ�D—I‘I“ˆØœr $›x¨˜m¨2¨f¨XÐ5EÀeÀWÈGÐTÐTr:   c                ó\  • [        SSSS9 nUR                  U SU R                   S[        U R                  5       S35         UR                  SR                  SR                  [        [        U5      5      5      5         UR                  S	5        S
S
S
5        g
! , (       d  f       g
= f)z3For hard-core logging of what this tracer is doing.z/tmp/debug_trace.txtÚazutf-8)ÚencodingÚ Ú[Ú]z {}Ú
N)ÚopenÚwriter"   r>   r,   Úformatr-   Úidentr&   Úcurrent_threadÚjoinÚmapÚstr)r6   ÚmarkerÚargsÚfÚstacks        r7   ÚlogÚPyTracer.log   s„   € äÐ(¨#¸Ò@ÀAØ�G‰G�v�h˜a §¡˜y¨¬#¨d¯o©oÓ*>Ð)?¸qÐAÔBØð �G‰G�E—L‘L §¡¬#¬c°4«.Ó!9Ó:Ô;Øð �G‰G�DŒM÷! A×@Ö@ús   ŒBBÂ
B+Nc                óz  • [         UR                  R                  ;   a  gU R                  (       ao  [        R
                  " 5       U R                  :X  aL   [        R                  " S5         U R                  R                  5       u  U l        U l        U l        U l        gUS:X  GaX  U R(                  (       aW  U R*                  cJ  U R)                  U5      nUb3  X`l        SnU R,                  c   eU R-                  U R*                  5        OSnOSnXpl        SU l        U R                  R1                  U R                  U R                   U R"                  U45        UR                  R                  nX€R                   :w  d  U(       aÐ  X€l        U R2                  R5                  U5      n	U	c  U R7                  X�5      n	X�R2                  U'   SU l        U	R8                  (       am  U	R:                  n
U
c   eU R=                  5          X R>                  ;  a  [A        5       U R>                  U
'   U RC                  5         U R>                  U
   U l        O SUl"        OU R                  (       d  SUl"        [F        b,  UR                  RH                  URJ                  S-      nUS:H  nO[M        USS	5      S:  nU(       a(  UR                  RN                  * U l        U R                  $ UR                  U l         U R                  $ US
:X  a›  U R                  b‚  UR                  nU RP                  (       a6  [S        [T        U R                  5      RW                  U R"                  U45        O)[S        [X        U R                  5      RW                  U5        XÐl        U R                  $ US:X  GaŸ  U RP                  (       Ga"  U R                  (       Ga  UR                  RH                  nURJ                  n[F        bE  [[        U5      US-   :X  a  SnO[\        R^                  R`                  (       a  US-  nXï   [F        :g  nOOXï   [b        :X  a  SnO@Xï   [d        :X  a  SnO1[[        U5      U[f        -   ::  a  SnOXï[f        -      [h        :X  a  SnOSnU(       aL  UR                  RN                  n[S        [T        U R                  5      RW                  U R"                  U* 45        U R                  R                  5       u  U l        U l        U l        U l        U R$                  (       a'  U R,                  c   eSU l        U R-                  S5        U R                  $ ! [&         aI    U R                  SUR                  R                  UR                  UR                  R                  5         gf = f! U RC                  5         f = f)z*The trace function passed to sys.settrace.Nr   zEmpty stack!ÚcallTFé   Úf_lastir   ÚlineÚreturnr   )5Ú	THIS_FILEÚf_codeÚco_filenamer.   ÚsysÚgettracer4   r]   Úf_linenoÚco_nameÚf_traceÚf_backÚsettracer,   Úpopr'   r)   r(   r+   Ú
IndexErrorr$   r*   r%   r/   ÚappendÚshould_trace_cacheÚgetÚshould_traceÚtraceÚsource_filenameÚ	lock_datarD   ÚsetÚunlock_dataÚf_trace_linesr   Úco_coderb   ÚgetattrÚco_firstlinenor#   r   Úset_TArcÚaddÚset_TLineNor>   r	   Ú
PYBEHAVIORÚlasti_is_yieldr   r   ÚYIELD_FROM_OFFSETr   )r6   ÚframeÚeventÚargÚlinenor[   Úcontext_mayber+   ÚfilenameÚdispÚ	tracenameÚopargÚ	real_callÚflinenoÚcodeÚlastiÚreal_returnÚfirsts                     r7   r3   ÚPyTracer._trace“   sÈ  € ô ˜Ÿ™×0Ñ0Ó0Øð
 �<�<œCŸLšL›N¨d×.MÑ.MÓMð ô �LŠL˜Ôð
à—O‘O×'Ñ'Ó)ñ ]�Ô" DÔ$6¸¼ÈÔH\ð ð
 �FŒ?à×(×(¨T¯\©\Ñ-AØ $× 9Ñ 9¸%Ó @�Ø Ñ,Ø#0”LØ&*�OØ×.Ñ.Ñ:Ð:Ð:Ø×'Ñ'¨¯©Õ5à&+‘Oà"'�Ø#2Ô ð "ˆDŒNØ�O‰O×"Ñ"à×&Ñ&Ø×&Ñ&Ø—N‘NØ#ð	ôð —|‘|×/Ñ/ˆHØ×-Ñ-Ó-¶Ø%-Ô"Ø×.Ñ.×2Ñ2°8Ó<�Ø‘<Ø×,Ñ,¨XÓ=�DØ8<×+Ñ+¨HÑ5à%)�Ô"Ø—:—:Ø $× 4Ñ 4�IØ$Ñ0Ð0Ð0Ø—N‘NÔ$ð+Ø$¯I©IÓ5Ü36³5˜DŸI™I iÑ0à×(Ñ(Ô*Ø)-¯©°9Ñ)=�DÕ&à*/�EÕ'Ø×'×'Ø&+�Ô#ô Ñ!ð Ÿ™×,Ñ,¨U¯]©]¸QÑ->Ñ?�Ø" a™Z‘	ä$ U¨I°rÓ:¸QÑ>�	ÞØ"'§,¡,×"=Ñ"=Ð!=�”ðn ×.Ñ.Ð.ðk "'§¡�•ðj ×.Ñ.Ð.ðg �f‹_à×!Ñ!Ñ-Ø#(§>¡>�à—?—?Üœ 4×#5Ñ#5Ó6×:Ñ:¸D¿N¹NÈGÐ;TÕUäœ d×&8Ñ&8Ó9×=Ñ=¸gÔFØ!(”ðT ×.Ñ.Ð.ðQ �hÔØ��ˆ 4×#5×#5Ð#5ð —|‘|×+Ñ+�ØŸ™�ÜÑ%Ü˜4“y E¨A¡IÓ-à&*™ô Ÿ>™>×8×8Ø! Q™J˜EØ&*¡k´VÑ&;™à‘{¤lÓ2Ø&*™Ø™¬Ó3Ø&+™Ü˜T› eÔ.?Ñ&?Ó?Ø&*™ØÔ&7Ñ7Ñ8¼JÓFØ&+™à&*˜ÞØ!ŸL™L×7Ñ7�EÜœ 4×#5Ñ#5Ó6×:Ñ:¸D¿N¹NÈUÈFÐ;SÔTð —‘×#Ñ#Ó%ñ YˆDÔ Ô 2°D´NÀDÔDXð ×#×#Ø×*Ñ*Ñ6Ð6Ð6Ø#�”Ø×#Ñ# DÔ)à×.Ñ.Ð.øôO ó Ø—‘Ø"Ø—L‘L×,Ñ,Ø—N‘NØ—L‘L×(Ñ(õ	ð ðûðz ×(Ñ(Õ*ús   Á,3U È&V( ÕAV%Ö$V%Ö(V:c                óâ   • SU l         U R                  (       a,  U R                  c  U R                  R                  5       U l        [        R
                  " U R                  5        U R                  $ )zTStart this Tracer.

Return a Python function suitable for use with sys.settrace().

F)r.   r&   r-   rU   rh   rn   r4   r5   s    r7   ÚstartÚPyTracer.start9  sN   € ð ˆŒØ�>�>Ø�{‰{Ñ"Ø"Ÿn™n×;Ñ;Ó=�”ä�Š�T×4Ñ4Ô5Ø×.Ñ.Ð.r:   c                ó  • [         R                  " 5       nSU l        U R                  (       aL  U R                  c   eU R                  R
                  U R                  R                  5       R
                  :w  a  g[        R                  =(       a    U R                  =(       a    USL =(       d    [        R                  nU R                  (       a=  U(       d5  XR                  :w  a%  U R                  SU< SU R                  < 3-   SS9  gggg)zStop this Tracer.TNz.Trace function changed, data is likely wrong: z != ztrace-changed)Úslug)rh   ri   r.   r&   r-   rT   rU   r	   ÚPYPYr   ÚMETACOVÚwarnr4   )r6   ÚtfÚsuppress_warnings      r7   ÚstopÚPyTracer.stopG  sÔ   € ô �\Š\‹^ˆð
 ˆŒà�>�>Ø—;‘;Ñ*Ð*Ð*Ø�{‰{× Ñ  D§N¡N×$AÑ$AÓ$C×$IÑ$IÓIð
 ô  ŸH™H×F¨¯©×F¸BÀ$¸J×VÌ3Ï;É;ÐØ�9�9Ö-Ø×4Ñ4Ó4Ø—	‘	ØDØ™˜d 4×#BÑ#BÑ"EÐFñGà(ð ò ð 5ð .ˆ9r:   c                ó   • U R                   $ )zHas there been any activity?©r/   r5   s    r7   ÚactivityÚPyTracer.activityh  s   € à�~‰~Ðr:   c                ó   • SU l         g)zReset the activity() flag.FNr¡   r5   s    r7   Úreset_activityÚPyTracer.reset_activityl  s	   € àˆ�r:   c                ó   • g)z+Return a dictionary of statistics, or None.N© r5   s    r7   Ú	get_statsÚPyTracer.get_statsp  s   € àr:   )r/   r4   r*   r'   r)   r,   r"   r   r(   r$   r+   r.   r%   r-   r&   r#   )rd   ÚNone)rd   rX   )rY   rX   rZ   r   rd   r«   r=   )
r„   r   r…   rX   r†   r   r‡   zTLineNo | Nonerd   zTTraceFn | None)rd   r   )rd   Úbool)rd   zdict[str, int] | None)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú	itertoolsÚcountr!   r8   rH   r]   r3   r•   rž   r¢   r¥   r©   Ú__static_attributes__r¨   r:   r7   r   r   8   s€   † Ù7ð$ —’Ó"€Jô+@ôZUô
ð2 "&ðd/àðd/ð ðd/ð ð	d/ð
 ðd/ð 
õd/ôL/ôôBô÷r:   r   ),r±   Ú
__future__r   r0   Údisr²   rh   r&   Úcollections.abcr   Útypesr   r   Útypingr   r   Úcoverager	   Úcoverage.typesr
   r   r   r   r   r   r   r   r   r   rx   r€   r~   Úopmaprs   r   r   r   r   r™   rƒ   Ú__file__Úrstripre   r   r¨   r:   r7   Ú<module>r¿      sÊ   ðñ *å "ã Û 
Û Û 
Û Ý $ß 'ß å ÷÷ ÷ ð" �'‰l€Øˆt‰9€ð
 
�‰�‰�xÓ	 €Ø�y‰y˜Ñ(€Ø	�>Ø—)‘)˜MÑ*€KØ—‘˜<Ñ(€JØ ŸXŸX™¨1Ñà35Ð5€KÐ5�*Ð0ð
 �O‰O˜DÓ!€	ôzˆvõ zr:   