Ë
    V.jg=  ã                  ó²  — d Z ddlmZ ddlZddlZddlZddlZddlZddlm	Z	 ddl
mZmZ ddlmZmZ ddlmZ ddlmZmZmZmZmZmZmZmZmZmZ ee   Zee   Zej@                  jC                  d	«      Z"ej@                  d
   Z#e"€/ej@                  d   Z$ej@                  d   Z%ejL                  rdndZ'ndxZ$xZ%Z'e(jS                  d«      Z* G d„ de«      Z+y)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                  ó�   — e Zd ZdZ ej
                  «       Zdd„Zdd„Zdd„Z		 d	 	 	 	 	 	 	 	 	 dd„Z
dd„Zdd„Zdd	„Zdd
„Zdd„Zy)ÚPyTracerz-Python implementation of the raw data tracer.c                ón  — t        | j                  «      | _        |  d| _        |  |  d | _        d | _        |  |  |  d | _        d | _        d| _        d | _	        d | _
        d| _        g | _        d | _        d| _        d| _        d| _        t#        j$                  t&        | dd«       | j(                  | _        y )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    úSC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\coverage/pytracer.pyÚ__init__zPyTracer.__init__M   s³   € ä�t—‘Ó'ˆŒñ 	ØˆŒÙÙØBFˆÔ!ØCGˆÔÙÙÙð -1ˆŒà48ˆÔØ"#ˆŒØ)-ˆÔØ#'ˆŒØ$ˆÔð Z\ˆŒØ/3ˆŒØˆŒØˆŒàˆŒä�‰œ  {°DÔ9ð 59·K±KˆÕ'ó    c                ó¬   — t        d„ | j                  j                  «       D «       «      }t        | j                  «      }dt	        | «      d›d|› d|› d�S )Nc              3  ó2   K  — | ]  }t        |«      –— Œ y ­w©N)Úlen)Ú.0Úvs     r6   Ú	<genexpr>z$PyTracer.__repr__.<locals>.<genexpr>{   s   è ø€ Ð8Ñ%7 ”S˜—VÑ%7ùs   ‚z<PyTracer at z#xz: z data points in z files>)ÚsumÚdataÚvaluesr<   r!   )r5   ÚpointsÚfiless      r6   Ú__repr__z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ÐTr8   c                óX  — t        ddd¬«      5 }|j                  |› d| j                  › dt        | j                  «      › d�«       	 |j                  dj                  dj                  t        t        |«      «      «      «       	 |j                  d	«       d
d
d
«       y
# 1 sw Y   y
xY w)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)r5   ÚmarkerÚargsÚfÚstacks        r6   Úlogz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                óä
  — t         |j                  j                  v ry| j                  rlt	        j
                  «       | j                  k(  rK	 t	        j                  d«       	 | j                  j                  «       \  | _        | _        | _        | _        y|dk(  �r<| j(                  rU| j*                  €I| j)                  |«      }|�3|| _        d}| j,                  €J ‚| j-                  | j*                  «       nd}nd}|| _        d| _        | j                  j1                  | j                  | j                   | j"                  |f«       |j                  j                  }|| j                   k7  s|rË|| _        | j2                  j5                  |«      }	|	€!| j7                  ||«      }	|	| j2                  |<   d| _        |	j8                  rk|	j:                  }
|
€J ‚| j=                  «        	 |
| j>                  vrtA        «       | j>                  |
<   | jC                  «        | j>                  |
   | _        nd|_"        n| j                  sd|_"        tF        �,|j                  jH                  |jJ                  dz      }|dk(  }ntM        |dd	«      dk  }|r(|j                  jN                   | _        | j                  S |j                  | _        | j                  S |d
k(  r–| j                  �~|j                  }| jP                  r6tS        tT        | j                  «      jW                  | j"                  |f«       n)tS        tX        | j                  «      jW                  |«       || _        | j                  S |dk(  �rƒ| jP                  �r| j                  �r|j                  jH                  }|jJ                  }tF        �@t[        |«      |dz   k(  rd}nzt\        j^                  j`                  r|dz  }||   tF        k7  }nN||   tb        k(  rd}n?||   td        k(  rd}n0t[        |«      |tf        z   k  rd}n||tf        z      th        k(  rd}nd}|rL|j                  jN                  }tS        tT        | j                  «      jW                  | j"                  | f«       | j                  j                  «       \  | _        | _        | _        | _        | j$                  r&| j,                  €J ‚d| _        | j-                  d«       | j                  S # t&        $ rI | j                  d|j                  j                  |j                  |j                  j                  «       Y yw xY w# | jC                  «        w xY w)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Úgettracer3   rY   Ú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_datarA   ÚsetÚunlock_dataÚf_trace_linesr   Úco_coder]   ÚgetattrÚco_firstlinenor"   r   Úset_TArcÚaddÚset_TLineNor<   r	   Ú
PYBEHAVIORÚlasti_is_yieldr   r   ÚYIELD_FROM_OFFSETr   )r5   ÚframeÚeventÚargÚlinenorW   Úcontext_mayber*   ÚfilenameÚdispÚ	tracenameÚopargÚ	real_callÚflinenoÚcodeÚlastiÚreal_returnÚfirsts                     r6   r2   z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�D”LØ&*�OØ×.Ñ.Ð:Ð:Ð:Ø×'Ñ'¨¯©Õ5à&+‘Oà"'�Ø#2ˆDÔ ð "ˆDŒNØ�O‰O×"Ñ"à×&Ñ&Ø×&Ñ&Ø—N‘NØ#ð	ôð —|‘|×/Ñ/ˆHØ˜4×-Ñ-Ò-±Ø%-�Ô"Ø×.Ñ.×2Ñ2°8Ó<�Ø�<Ø×,Ñ,¨X°uÓ=�DØ8<�D×+Ñ+¨HÑ5à%)�Ô"Ø—:’:Ø $× 4Ñ 4�IØ$Ð0Ð0Ð0Ø—N‘NÔ$ð+Ø$¨D¯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ð —|‘|×+Ñ+�ØŸ™�ÜÐ%Ü˜4“y E¨A¡IÒ-à&*™ô Ÿ>™>×8Ò8Ø! Q™J˜EØ&*¨5¡k´VÑ&;™à˜E‘{¤lÒ2Ø&*™Ø˜e™¬Ò3Ø&+™Ü˜T› eÔ.?Ñ&?Ò?Ø&*™Ø˜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   Á"3T Ç*%U ÔAUÕUÕU/c                óÔ   — d| _         | j                  r+| j                  €| j                  j                  «       | _        t	        j
                  | j                  «       | j                  S )zdStart this Tracer.

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

        F)r-   r%   r,   rQ   rc   ri   r3   r4   s    r6   ÚstartzPyTracer.start9  sN   € ð ˆŒØ�>Š>Ø�{‰{Ð"Ø"Ÿn™n×;Ñ;Ó=�”ä�‰�T×4Ñ4Ô5Ø×.Ñ.Ð.r8   c                óÜ  — t        j                  «       }d| _        | j                  rJ| j                  €J ‚| j                  j
                  | j                  j                  «       j
                  k7  ryt        j                  xr | j                  xr |du xs t        j                  }| j                  r9|s6|| j                  k7  r&| j                  d|›d| j                  ›�z   d¬«       yyyy)zStop this Tracer.TNz.Trace function changed, data is likely wrong: z != ztrace-changed)Úslug)rc   rd   r-   r%   r,   rP   rQ   r	   ÚPYPYr   ÚMETACOVÚwarnr3   )r5   ÚtfÚsuppress_warnings      r6   ÚstopzPyTracer.stopG  sÖ   € ô �\‰\‹^ˆð
 ˆŒà�>Š>Ø—;‘;Ð*Ð*Ð*Ø�{‰{× Ñ  D§N¡N×$AÑ$AÓ$C×$IÑ$IÒIð
 ô  ŸH™HÒF¨¯©ÒF¸BÀ$¸JÒVÌ3Ï;É;ÐØ�9Š9Ñ-Ø�T×4Ñ4Ò4Ø—	‘	ØDØ˜˜d 4×#BÑ#BÐ"EÐFñGà(ð õ ð 5ð .ˆ9r8   c                ó   — | j                   S )zHas there been any activity?©r.   r4   s    r6   ÚactivityzPyTracer.activityh  s   € à�~‰~Ðr8   c                ó   — d| _         y)zReset the activity() flag.FNr™   r4   s    r6   Úreset_activityzPyTracer.reset_activityl  s	   € àˆ�r8   c                 ó   — y)z+Return a dictionary of statistics, or None.N© r4   s    r6   Ú	get_statszPyTracer.get_statsp  s   € àr8   )r_   ÚNone)r_   rT   )rU   rT   rV   r   r_   r    r;   )
r   r   r€   rT   r�   r   r‚   zTLineNo | Noner_   zTTraceFn | None)r_   r   )r_   Úbool)r_   zdict[str, int] | None)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	itertoolsÚcountr    r7   rE   rY   r2   r�   r—   rš   rœ   rŸ   rž   r8   r6   r   r   8   s‚   „ Ù7ð$ !�—‘Ó"€Jó+@óZUó
ð2 "&ðd/àðd/ð ðd/ð ð	d/ð
 ðd/ð 
ód/óL/óóBóôr8   r   ),r¥   Ú
__future__r   r/   Údisr¦   rc   r%   Úcollections.abcr   Útypesr   r   Útypingr   r   Úcoverager	   Úcoverage.typesr
   r   r   r   r   r   r   r   r   r   rs   r{   ry   Úopmaprn   r   r   r   r   r’   r~   Ú__file__Úrstripr`   r   rž   r8   r6   Ú<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r8   