L i;dZddlmZddlZddlZddlZddlZddlZddlm Z m Z ddl m Z m Z mZddlmZddlmZmZmZmZmZmZmZmZmZmZeeZeeZej>jAdZ!ej>d Z"e!/ej>d Z#ej>d Z$ejJrdnd Z&nd xZ#xZ$Z&e'jQdZ)GddeZ*y)z#Raw data collector for coverage.py.) annotationsN) FrameType ModuleType)AnyCallablecast)env) TArcTFileDispositionTLineNoTracerTShouldStartContextFnTShouldTraceFn TTraceDataTTraceFileDataTTraceFnTWarnFnRESUME RETURN_VALUE YIELD_VALUE YIELD_FROMcoceZdZdZej Zd dZd dZddZ d ddZ ddZ d dZ dd Z d d Zdd Zy)PyTracerz-Python implementation of the raw data tracer.cnt|j|_|d|_||d|_d|_|||d|_d|_d|_d|_ d|_ d|_ g|_ d|_ d|_d|_d|_t#j$t&|dd|j(|_y)NFr in_atexitT)next tracer_idsid trace_arcsshould_start_contextswitch_context threading cur_file_data last_line cur_file_namecontextstarted_context data_stackthreadstopped _activityratexitregistersetattr_trace_cached_bound_method_traceselfs W/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/coverage/pytracer.py__init__zPyTracer.__init__Lst'   BF!CG   -148"#)-#' $Z\/3  {D959KK'ctd|jjD}t|j}dt |dd|d|dS)Nc32K|]}t|ywN)len).0vs r6 z$PyTracer.__repr__..zs8SV8sz )sumdatavaluesr<r!)r5pointsfiless r6__repr__zPyTracer.__repr__ysN8TYY%5%5%788DIIr$xm2fX5EeWGTTr8c Xtddd5}|j|d|jdt|jd |jdj djtt| |jd d d d y #1swYy xYw) z3For hard-core logging of what this tracer is doing.z/tmp/debug_trace.txtazutf-8)encoding []z {} N) openwriter!r<r+formatr,identr%current_threadjoinmapstr)r5markerargsfstacks r6logz PyTracer.log~s (# @ A GGvhay#doo*>)?qA B GGELL#c4.!9: ; GGDM!   s BB  B)Nc t|jjvry|jrlt j |j k(rK t jd |jj\|_|_|_|_y|dk(r<|j(rU|j*I|j)|}|3||_d}|j,J|j-|j*nd}nd}||_d|_|jj1|j|j |j"|f|jj}||j k7s|r||_|j2j5|} | !|j7||} | |j2|<d|_| j8rk| j:} | J|j= | |j>vrtA|j>| <|jC|j>| |_nd|_"n|jsd|_"tF,|jjH|jJdz} | dk(} ntM|dd dk} | r(|jjN |_|j S|j|_|j S|d k(r|j~|j} |jPr6tStT|jjW|j"| fn)tStX|jjW| | |_|j S|d k(r|jPr|jr|jjH}|jJ}tF@t[||d zk(rd}nzt\j^j`r|d z }||tFk7}nN||tbk(rd}n?||tdk(rd}n0t[||tfzkrd}n||tfzthk(rd}nd}|rL|jjN}tStT|jjW|j"| f|jj\|_|_|_|_|j$r&|j,Jd|_|j-d|j S#t&$rI|jd|jj|j|jjYywxYw#|jCwxYw) z*The trace function passed to sys.settrace.Nrz Empty stack!callTFf_lastirlinereturnr)5 THIS_FILEf_code co_filenamer-sysgettracer3rYf_linenoco_namef_tracef_backsettracer+popr&r(r'r* IndexErrorr#r)r$r.appendshould_trace_cacheget should_tracetracesource_filename lock_datarAset unlock_data f_trace_linesrco_coder]getattrco_firstlinenor"rset_TArcadd set_TLineNor<r PYBEHAVIORlasti_is_yieldrrYIELD_FROM_OFFSETr)r5frameeventarglinenorW context_mayber*filenamedisp tracenameoparg real_callflinenocodelasti real_returnfirsts r6r2zPyTracer._traces  00 0 <?"aZ $UIr:Q> "',,"="=!=n...k"'j...gf_!!-#(>>??4#5#56::DNNG;TUd&8&89==gF!(T...Qh 4#5#5||++ %4yEAI-&* >>88!QJE&*5kV&; E{l2&* e 3&+ Te.?&??&* e&778JF&+ &* !LL77E4#5#56::DNNUF;ST##% YD  2DNDDX##**666# ##D)...O "LL,,NNLL((   z((*s"3T*%UAUUU/cd|_|jr+|j|jj|_t j |j |j S)zdStart this Tracer. Return a Python function suitable for use with sys.settrace(). F)r-r%r,rQrcrir3r4s r6startzPyTracer.start8sN  >>{{""nn;;=  T445...r8ctj}d|_|jrJ|jJ|jj |jj j k7rytjxr|jxr|duxstj}|jr9|s6||jk7r&|jd|d|jzdyyyy)zStop this Tracer.TNz.Trace function changed, data is likely wrong: z != z trace-changed)slug) rcrdr-r%r,rPrQr PYPYrMETACOVwarnr3)r5tfsuppress_warnings r6stopz PyTracer.stopFs\\^  >>;;* **{{  DNN$A$A$C$I$II   HHFFB$JV3;; 99-T444 Dd4#B#B"EFG(5.9r8c|jS)zHas there been any activity?r.r4s r6activityzPyTracer.activitygs ~~r8cd|_y)zReset the activity() flag.FNrr4s r6reset_activityzPyTracer.reset_activityks r8cy)z+Return a dictionary of statistics, or None.Nr4s r6 get_statszPyTracer.get_statsosr8)r_None)r_rT)rUrTrVrr_rr;) rrrrTrrrzTLineNo | Noner_zTTraceFn | None)r_r)r_bool)r_zdict[str, int] | None)__name__ __module__ __qualname____doc__ itertoolscountr r7rErYr2rrrrrrr8r6rr7s7$!"J+@ZU 2"& d/d/d/ d/  d/  d/L /Br8r)+r __future__rr/disrrcr%typesrrtypingrrrcoverager coverage.typesr r r r rrrrrrrsr{ryopmaprnrrrrrr~__file__rstripr`rrr8r6rs*"  '&&   "'l t9 x yy(  >))M*K<(J XX1355K5*0 OOD ! zvzr8