
    zi#K                    \   U 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Zddl	Z	ddl
Z
ddlmZ ddlmZ ddlmZ ddlmZmZmZmZ ddlmZ dd	lmZmZmZ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& ddl'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1  e$e          Z e2 e3 ej4        dd                              Z5 e2 e3 ej4        dd                              Z6 e7edd          Z8 ede9          Z:ee:         Z; ee; e7e8dd                    Z<e5rM G d d          Z= e=e8d          Z8e8J  ej>        eddd          Z e?            Z@deAd<   d2dZBd3d"ZCd4d&ZDnd2d'ZBd4d(ZDe G d) d*                      ZE G d+ d,e,          ZF ejG        d-.          d5d1            ZHdS )6zBCallback functions and support for sys.monitoring data collection.    )annotationsN)Callable)	dataclass)CodeType)AnyNewTypeOptionalcast)env)TBranchTrailsalways_jumpsbranch_trailsbytes_to_lines)short_filenameshort_stack)NoSource	NotPython)isolate_module)PythonParser)
AnyCallableTFileDispositionTLineNoTOffsetTracerTShouldStartContextFnTShouldTraceFn
TTraceDataTTraceFileDataTWarnFnCOVERAGE_SYSMON_LOGCOVERAGE_SYSMON_STATS
monitoringDISABLE_TYPEDISABLEc                  "    e Zd ZdZddZddZdS )LoggingWrapperz*Wrap a namespace to log all its functions.wrappedr   	namespacestrreturnNonec                "    || _         || _        d S N)r'   r(   )selfr'   r(   s      Z/var/www/tmov.alphamb/tmov_inventario/venv/lib/python3.11/site-packages/coverage/sysmon.py__init__zLoggingWrapper.__init__C   s    "DL&DNNN    nameCallable[..., Any]c                     d fd}|S )Nargsr   kwargsr*   c                 t    t          j         d |  |             t          j                  | i |S )N.)logr(   getattrr'   )r5   r6   r2   r.   s     r/   _wrappedz,LoggingWrapper.__getattr__.<locals>._wrappedH   sL    t~<<<d<F<<===2wt|T22DCFCCCr1   )r5   r   r6   r   r*   r    )r.   r2   r;   s   `` r/   __getattr__zLoggingWrapper.__getattr__G   s5    D D D D D D D Or1   N)r'   r   r(   r)   r*   r+   )r2   r)   r*   r3   )__name__
__module____qualname____doc__r0   r=   r<   r1   r/   r&   r&   @   sB        88	' 	' 	' 	'	 	 	 	 	 	r1   r&   zsys.monitoringT)fullshort_filenames	frame_idszset[int]seen_threadsmsgr)   r*   r+   c                (   t          j                    }t          t          t	          j                    j                  }||z  dz  d}|t          vr>t                              |           t          d| d| dt                                  dD ]}t          |dd	          5 }	 t          | d
| d|  |d           n7# t          $ r* t          | d
| dt          |            |d           Y nw xY wddd           n# 1 swxY w Y   dS )z1Write a message to our detailed debugging log(s).iw 07dzNew thread  z:
)z/tmp/foo.outazutf-8)encoding:: T)fileflushN)osgetpidr
   int	threadingcurrent_threadidentrE   addr9   r   openprintUnicodeErrorascii)rF   pidtidtslugfilenamefs         r/   r9   r9   Y   s    ikk3	022899#I*00l""S!!!=c==E==kmm==>>>
 
	N 
	NH hg666 N!NS11511C11FFFFF# N N NS88588E#JJ88qMMMMMMNN N N N N N N N N N N N N N N
	N 
	Ns6   &D(CD1C74D6C77DD
	D
	argr   c                    t          | t                    r@dt          |           dd| j         dz   dt	          | j                  d| j         dz   S t          |           S )z)Make a customized repr for logged values.z<code @#xz name=,z file=#>)
isinstancer   idco_namer   co_filenameco_firstlinenorepr)r`   s    r/   arg_reprrl   q   sy    c8$$ 	&"S''&&&)3;)))*T>#/::TTs?QTTTU
 Cyyr1   names
str | Noner   c                      d fd}|S )z%Decorate a function to log its calls.methodr   r*   c                L     t          j                   d fd            }|S )Nr.   r   r5   r*   c           	        	 g }t          |          D ]/\  }}||                    | dt          |                      0t          t	          |           ddj         dd                    |           d            | g|R  }|S # t          $ r}t          d|j        j         d|            	 t          d
                    t          j
        |                               	 t          J t                              t          j        j        d           n# t           $ r t          d           Y nw xY w d }~ww xY w)N=rb   rL   (z, )z!!rM       r   z/oops, shutting off events with disabled tool id)zipappendrl   r9   rg   r>   join	Exception	__class__	tracebackformat_exceptionsys_monitoring
set_eventssysr"   COVERAGE_ID
ValueError)	r.   r5   
args_reprsr2   r`   retexcrp   rm   s	          r/   r;   z0panopticon.<locals>._decorator.<locals>._wrapped   s   !#J%(%5%5 E E	c<$"))T*C*CHSMM*C*CDDDD2d88SSSSS499Z;P;PSSSTTT &----CJ  
 
 
<S]3<<s<<===FBGGI$>s$C$CDDEEEO-999&11#.2LaPPPP% O O OMNNNNNO 
s=   B
B 
EAE-3D! E!D=:E<D==EE)r.   r   r5   r   r*   r   )	functoolswraps)rp   r;   rm   s   ` r/   
_decoratorzpanopticon.<locals>._decorator~   sC    _V$$      %$0 Or1   )rp   r   r*   r   r<   rm   r   s   ` r/   
panopticonr   {   s)    	 	 	 	 	 	8 r1   c                    dS )zAWrite a message to our detailed debugging log(s), but not really.Nr<   )rF   s    r/   r9   r9      s      r1   c                     dd}|S )z5Decorate a function to log its calls, but not really.methr   r*   c                    | S r-   r<   )r   s    r/   r   zpanopticon.<locals>._decorator   s    Kr1   )r   r   r*   r   r<   r   s     r/   r   r      s    	 	 	 	 r1   c                  F    e Zd ZU dZded<   ded<   ded<   ded	<   d
ed<   dS )CodeInfoz/The information we want about each code object.booltracingzTTraceFileData | None	file_datazdict[TOffset, TLineNo] | Nonebyte_to_liner   r   zdict[TOffset, TOffset]r   N)r>   r?   r@   rA   __annotations__r<   r1   r/   r   r      sU         99MMM$$$$//// !    )(((((r1   r   c                     e Zd ZdZd#dZd$dZ e            d%d	            Z e            d%d
            Z e            d%d            Z	d&dZ
d%dZd'dZ edd          d(d            Z eddd          d)d            Z edd          d*d            Z edd          d*d             Z eddd          d+d"            ZdS ),
SysMonitorzHPython implementation of the raw data tracer for PEP669 implementations.tool_idrR   r*   r+   c                z   |  d| _         |  |  d | _        d | _        |  |  |  || _        i | _        g | _        t          j        t                    | _	        d| _
        t          j                    | _        d | _        t          r2t                               d                                d          | _        d| _        d S )NFzHstarts start_tracing returns line_lines line_arcs branches branch_trailsr   )
trace_arcsshould_start_contextswitch_contextmyid
code_infoscode_objectscollectionsdefaultdictsetfilename_code_ids	sysmon_onrS   LocklockstatsCOLLECT_STATSdictfromkeyssplit	_activity)r.   r   s     r/   r0   zSysMonitor.__init__   s    )C CG!CG*,	 02 -/ 7B6Mc6R6RN$$	,0
 	Z``bb DJ
 r1   r)   c                    t          d | j                                        D                       }t          | j                  }dt	          |           dd| d| dS )Nc              3  4   K   | ]}t          |          V  d S r-   len).0vs     r/   	<genexpr>z&SysMonitor.__repr__.<locals>.<genexpr>   s(      88SVV888888r1   z<SysMonitor at rb   rM   z data points in z files>)sumdatavaluesr   rg   )r.   pointsfiless      r/   __repr__zSysMonitor.__repr__   sc    88TY%5%5%7%788888DIVDVVVVVVVVVr1   c                   | j         5  t          J t                              | j        d           t	          j        t          j        | j                  }t          j        j	        }t          
                    | j        |j                    ||j        | j                   | j        rj ||j        | j                    ||j        | j                   t$          j        j        r, ||j        | j                    ||j        | j                   n ||j        | j                   t                                           d| _        ddd           dS # 1 swxY w Y   dS )zStart this Tracer.Nzcoverage.pyT)r   r   use_tool_idr   r   partialregister_callbackr   r"   eventsr   PY_STARTsysmon_py_startr   	PY_RETURNsysmon_py_returnLINEsysmon_line_arcsr   
PYBEHAVIORbranch_right_leftBRANCH_RIGHTsysmon_branch_eitherBRANCH_LEFTsysmon_line_linesrestart_eventsr   )r.   registerr   s      r/   startzSysMonitor.start   s    Y 	" 	"!---&&ty-@@@ ()I49UUH^*F%%diAAAHV_d&:;;; >)4+@AAAd&;<<<>3 LHV0$2KLLLHV/1JKKKd&<===))+++!DN#	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"s   EEEEc                   | j         5  | j        s	 ddd           dS t          J t                              | j        d           d| _        t                              | j                   ddd           n# 1 swxY w Y   t          rt          | j        	                                d d          }t          d |D                       }|t          |          z
  }|rUt          d| d	| d
           |D ]:\  }}t          |          dk    r"t          t          |          dd|            ;dS t          d           dS dS )zStop this Tracer.Nr   Fc                ,    t          | d                   S )Nrv   r   )items    r/   <lambda>z!SysMonitor.stop.<locals>.<lambda>  s    T!W r1   T)keyreversec              3  :   K   | ]\  }}t          |          V  d S r-   r   )r   _code_idss      r/   r   z"SysMonitor.stop.<locals>.<genexpr>  s,      CCkaCMMCCCCCCr1   z==== Duplicate code objects: z duplicates, z totalrv   z>5z
 objects: z!==== Duplicate code objects: none)r   r   r   r   r   free_tool_idLOGsortedr   itemsr   r   r9   )r.   r   	code_objsdupesr^   r   s         r/   stopzSysMonitor.stop  s    Y 	3 	3>  		3 	3 	3 	3 	3 	3 	3 	3
 "---%%di333"DN''	222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3  	9&,,..--  E
 CCUCCCCCIE

*E 9YEYY	YYYZZZ*/ G G&Hh8}}q((s8}}EEE8EEFFFG G 788888	9 	9s   	A9AA99A= A=c                .    |                                   dS )z+The process has forked, clean up as needed.N)r   r.   s    r/   	post_forkzSysMonitor.post_fork"  s     			r1   r   c                    | j         S )zHas there been any activity?r   r   s    r/   activityzSysMonitor.activity'  s
    ~r1   c                    d| _         dS )zReset the activity() flag.FNr   r   s    r/   reset_activityzSysMonitor.reset_activity+  s    r1   dict[str, int] | Nonec                    | j         S )z+Return a dictionary of statistics, or None.)r   r   s    r/   	get_statszSysMonitor.get_stats/  s
    zr1   code@r   instruction_offsetr   MonitorReturnc                   d| _         | j        | j        dxx         dz  cc<   |j        dk    rt          S | j                            t          |                    }d}d}||j        }|j        }|i|j	        }| j
                            |          }|[t          j                    }|&t          j                    j        }t          r|j        }|                     ||          }|| j
        |<   |j        }|r|j        }	|	J |                                  	 |	| j        vrt)                      | j        |	<   |                                  n# |                                  w xY w| j        |	         }t-          |          }
nd}d}
t/          |||
i i           }|| j        t          |          <   | j                            |           |r| j        | j        dxx         dz  cc<   t4          j        j        }| j        5  | j        rt>          J |j         |j!        z  |j"        z  }| j#        r%tH          j%        j&        sJ ||j'        |j(        z  z  }t>          )                    | j*        ||           t          rE|j	        dvr<| j+        |j	         d	|j                  ,                    t          |                     ddd           n# 1 swxY w Y   t          S )
z-Handle sys.monitoring.events.PY_START events.TNstartsrv   __annotate__)r   r   r   r   r   start_tracing>   <string>rL   )-r   r   rh   r$   r   getrg   r   r   ri   should_trace_cacheinspectcurrentframef_backr   should_tracetracesource_filename	lock_datar   r   unlock_datar   r   r   ry   r   r"   r   r   r   r   r   	PY_RESUMEr   r   r   r   r   r   r   set_local_eventsr   r   rV   )r.   r   r   	code_infotracing_coder   r^   dispframe	tracenameb2lr   local_eventss                r/   r   zSysMonitor.sysmon_py_start3  sZ    :!Jx   A%   <>))N O''411	$(+/	 $,L!+I'H*..x88D|,..$#0229E - %((59948'1:L  0	 ,,,   ' 	11/2uu	),$$&&&&D$$&&&& Ii0	$T** 	 $#    I )2DOBtHH%$$T*** ":)J///14///.Y " "~ "-999'-'7&:J'JV['X? U#&>#CCCC(F,?&BT,TTL&77	4VVV "#/|CC $ 6$:J7[7[T\7[7[ \ ` `$&tHH!" !" !"" " " " " " " " " " " " " " " s   E E%CKKKNretvalobjectc                   | j         | j         dxx         dz  cc<   | j                            t          |                    }|j                            |          }|$||j         f}|j                            |           t          S )zBHandle sys.monitoring.events.PY_RETURN events for branch coverage.Nreturnsrv   )	r   r   r   rg   r   rj   r   rV   r$   )r.   r   r   r  r   	last_linearcs          r/   r   zSysMonitor.sysmon_py_return  s     :!Jy!!!Q&!!!O''411	 *../ABB	 t223C##C(((r1   lineline_numberr   c                    | j         | j         dxx         dz  cc<   | j                            t          |                    }|!|j        |j                            |           t          S )z;Handle sys.monitoring.events.LINE events for line coverage.N
line_linesrv   )r   r   r   rg   r   rV   r$   )r.   r   r  r   s       r/   r   zSysMonitor.sysmon_line_lines  sq     :!J|$$$)$$$O''411	  Y%8%D##K000r1   c                    | j         | j         dxx         dz  cc<   | j        t          |                   }||f}|j                            |           t
          S )z=Handle sys.monitoring.events.LINE events for branch coverage.N	line_arcsrv   )r   r   rg   r   rV   r$   )r.   r   r  r   r  s        r/   r   zSysMonitor.sysmon_line_arcs  sd     :!J{###q(###OBtHH-	 K($$$r1   destination_offsetc                l   | j         | j         dxx         dz  cc<   | j        t          |                   }|j        sZ| j         | j         dxx         dz  cc<   t	          |j                  }t          ||          |_        t          |          |_        d}|j                            |          }|h}|j                            |          x}	3|	}|                    |           |j                            |          x}	3|@|	                                D ]+\  }
}|
||z  r|j
                            |
           d} n,|se|j        J |j                            |          }|@|j                            |          }|$||k    r||f}
|j
                            |
           t          S )z+Handle BRANCH_RIGHT and BRANCH_LEFT events.Nbranchesrv   r   )multiline_mapFT)r   r   rg   r   get_multiline_mapri   r   r   rV   r   r   r   r$   )r.   r   r   r  r   r  	added_arc	dest_infodestsdestr  offsetsl1l2s                 r/   r   zSysMonitor.sysmon_branch_either  s   
 :!Jz"""a'"""OBtHH-	 & 	8z%
?+++q0+++-d.>??M&3D&V&V&VI#%1$%7%7I"	+//0BCC	 $$ -112DEEEtR!%II())) !-112DEEEtR
   ) 1 1  W;7? '++C000 $IE	  	1)555'++,>??B~+//0BCC>bBhhr(C'++C000 r1   )r   rR   r*   r+   )r*   r)   )r*   r+   )r*   r   )r*   r   )r   r   r   r   r*   r   )r   r   r   r   r  r  r*   r   )r   r   r  r   r*   r   )r   r   r   r   r  r   r*   r   )r>   r?   r@   rA   r0   r   r   r   r   r   r   r   r   r   r   r   r   r   r<   r1   r/   r   r      s       RR$ $ $ $LW W W W
 Z\\" " " \"* Z\\9 9 9 \98 Z\\   \          ZL L L L\ ZT""   #"& Z     Z
 
 
  
 ZS!!/ / / "!/ / /r1   r      )maxsizer^   dict[TLineNo, TLineNo]c                    	 t          |           }|                                 n# t          $ r i cY S t          $ r i cY S w xY w|j        S )z2Get a PythonParser for the given filename, cached.)r^   )r   parse_sourcer   r   r  )r^   parsers     r/   r  r    sx    x000   
 			   			 s   $' AAA)rF   r)   r*   r+   )r`   r   r*   r)   )rm   rn   r*   r   )r^   r)   r*   r   )IrA   
__future__r   r   r   r   rP   os.pathr   rS   r}   collections.abcr   dataclassesr   typesr   typingr   r   r	   r
   coverager   coverage.bytecoder   r   r   r   coverage.debugr   r   coverage.exceptionsr   r   coverage.miscr   coverage.parserr   coverage.typesr   r   r   r   r   r   r   r   r   r   r   rR   getenvr   r   r:   r   r  r#   r   r$   r&   r   r   rE   r   r9   rl   r   r   r   	lru_cacher  r<   r1   r/   <module>r3     s,   I H H " " " " " "          				  



         $ $ $ $ $ $ ! ! ! ! ! !       / / / / / / / / / / / /       X X X X X X X X X X X X 6 6 6 6 6 6 6 6 3 3 3 3 3 3 3 3 ( ( ( ( ( ( ( ( ( ( ( (                         ^B
 d33yry.223344 SS#:A>>??@@ lD11w~v..&
$}ggniFF
G
G  i        $^N4DEEN%%%#)#	  K !SUUL""""N N N N0       FP P P P    ) ) ) ) ) ) ) )(b b b b b b b bJ	 R         !      r1   