+
    :•üiû  ã                   ó„  a € R t 0 t R t^ RIHtHtHtHt ^ RIHt ^ RI	H
t
Ht ^ RIHtHt ^ RIHtHt  ^ RItRt]R	 4       t. t] ^ k R
 R lt ! R R]4      t ! R R]4      t]P4                  R 4       t]'       d4   ]
! RR7       ! R R]P8                  P:                  4      4       tR R ltR# R#   ] d    Rt L„i ; i)zw
Implement code coverage support.

Currently contains logic to extend ``coverage`` with lines covered by the
compiler.
)ÚOptionalÚSequenceÚCallableÚno_type_check)ÚMapping)Ú	dataclassÚfield)ÚABCÚabstractmethod)ÚirÚconfigNTFc                 ó^   € Rp \         '       d   \        P                  P                  4       p V # )z>Get active coverage instance or return None if not found.
    N)Úcoverage_availableÚcoverageÚCoverageÚcurrent)Úcovs    ÚY/var/www/html/photoedit/myenv/lib/python3.14/site-packages/numba/misc/coverage_support.pyÚget_active_coverager      s(   € ð €CßÓÜ×Ñ×'Ñ'Ó)ˆØ€Jó    c                ó2   € V ^8„  d   QhR\         R,          /# )é   ÚreturnÚNotifyLocBase)r   )Úformats   "r   Ú__annotate__r   %   s   € ÷ Bñ B¤8¨OÕ#<ñ Br   c                 ót   € \         P                  '       g   . # \        \        R R \         4       4      4      # )z;
Returns a list of the registered NotifyLocBase instances.
c                 ó
   € V R J# ©N© )Úxs   &r   Ú<lambda>Ú+get_registered_loc_notify.<locals>.<lambda>,   s   €  ¨$¡r   c              3   ó.   "  € T F  q! 4       x € K  	  R # 5ir   r   )Ú.0Úfactorys   & r   Ú	<genexpr>Ú,get_registered_loc_notify.<locals>.<genexpr>-   s   é € Ð?± g˜Ÿ	˜	³ùs   ‚)r   ÚJIT_COVERAGEÚlistÚfilterÚ_the_registryr   r   r   Úget_registered_loc_notifyr,   %   s7   € ô ××Ðàˆ	Ü”Ñ.Ù?µÓ?óAó Bð Br   c                   ó\   a € ] tR t^0t o Rt]V 3R lR l4       t]V 3R lR l4       tRtV t	R# )r   z<Interface for notifying visiting of a ``numba.core.ir.Loc``.c                ó8   <€ V ^8„  d   QhRS[ P                  RR/# ©r   Úlocr   N©r   ÚLoc)r   Ú__classdict__s   "€r   r   ÚNotifyLocBase.__annotate__4   s   ø€ ÷ ñ ™"Ÿ&™&ð  Tñ r   c                ó   € R # r   r   )Úselfr0   s   &&r   ÚnotifyÚNotifyLocBase.notify3   ó   € ár   c                ó   <€ V ^8„  d   QhRR/# ©r   r   Nr   )r   r3   s   "€r   r   r4   8   s   ø€ ÷ ñ tñ r   c                ó   € R # r   r   ©r6   s   &r   ÚcloseÚNotifyLocBase.close7   r9   r   r   N)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r
   r7   r>   Ú__static_attributes__Ú__classdictcell__©r3   s   @r   r   r   0   s.   ø‡ € ÙFà÷ó ðð ÷ó ör   r   c                   óB   a € ] tR t^<t o RtR tV 3R lR ltR tRtV t	R# )ÚNotifyCompilerCoveragezƒ
Use to notify ``coverage`` about compiled lines.

The compiled lines are under the "numba_compiled" context in the coverage
data.
c                óè  € Wn         VP                  P                  P                  4       pVP	                  \        VP                  VP                  VP                  VP                  VP                  VP                  VP                  VP                  VP                  VP                  P                  R 7
      4       \!        R/ VB V n        VP$                  P'                  V P"                  4       R# ))
ÚdataÚ	lock_dataÚunlock_dataÚ
trace_arcsÚshould_traceÚshould_trace_cacheÚwarnÚshould_start_contextÚswitch_contextÚpacked_arcsNr   )Ú
_collectorÚcoreÚtracer_kwargsÚcopyÚupdateÚdictrK   rL   rM   ÚbranchrO   rP   rQ   rR   rS   rT   ÚNumbaTracerÚ_tracerÚtracersÚappend)r6   Ú	collectorrW   s   && r   Ú__init__ÚNotifyCompilerCoverage.__init__D   sº   € Ø#Œð "Ÿ™×4Ñ4×9Ñ9Ó;ˆØ×ÑÜØ—^‘^Ø#×-Ñ-Ø%×1Ñ1Ø$×+Ñ+Ø&×3Ñ3Ø#,×#?Ñ#?Ø—^‘^Ø%.×%CÑ%CØ(×7Ñ7Ø%ŸN™N×6Ñ6ôô	
ô #Ñ3 ]Ñ3ˆŒØ×Ñ× Ñ  §¡Ö.r   c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r   r0   r1   )r   r3   s   "€r   r   Ú#NotifyCompilerCoverage.__annotate__Z   s   ø€ ÷ (ñ (™"Ÿ&™&ñ (r   c                óÊ   € V P                   pVP                  P                  R 4      '       d6   VP                  R4       VP	                  V4       VP                  R4       R# R# )z.pyÚnumba_compiledN)r]   ÚfilenameÚendswithrS   Útrace)r6   r0   Útracers   && r   r7   ÚNotifyCompilerCoverage.notifyZ   sN   € Ø—‘ˆØ<‰<× Ñ  ×'Ò'Ø×!Ñ!Ð"2Ô3ØL‰L˜ÔØ×!Ñ! $Ö'ñ (r   c                ó   € R # r   r   r=   s   &r   r>   ÚNotifyCompilerCoverage.closea   s   € Ùr   )rU   r]   N)
r@   rA   rB   rC   rD   ra   r7   r>   rE   rF   rG   s   @r   rI   rI   <   s#   ø‡ € ñò/÷,(ð (÷ð r   rI   c                  óx   € \        4       p V e,   V P                  pVP                  '       d   \        V4      # R # R # r   )r   rU   r^   rI   )r   Úcols     r   Ú_register_coverage_notifierrp   e   s6   € ä
Ó
€CØ
‚Øn‰nˆà;;ˆ;Ü)¨#Ó.Ð.ñ ñ r   )Úkw_onlyc                   ó®   a € ] tR t^qt o Rt]! RR7      tV 3R lR ltV 3R lR ltV 3R lR	 lt	V 3R
 lR lt
V 3R lR ltV 3R lR ltV 3R ltRtV tR# )r\   zð
Not actually a tracer as in the coverage implementation, which will
setup a Python trace function. This implementation pretends to trace
but instead receives fake trace events for each line the compiler has
visited.

See coverage.PyTracer
F)Údefaultc                óV   <€ V ^8„  d   QhRS[ P                  P                  R,          /# r;   )r   ÚtypesÚTTraceFn)r   r3   s   "€r   r   ÚNumbaTracer.__annotate__‹   s#   ø€ ÷ 	ñ 	™8Ÿ>™>×2Ñ2°TÕ9ñ 	r   c                ó   € R# )zDStart this tracer, return a trace function if based on
sys.settrace.Nr   r=   s   &r   ÚstartÚNumbaTracer.start‹   s   € ñ r   c                ó   <€ V ^8„  d   QhRR/# r;   r   )r   r3   s   "€r   r   rw      s   ø€ ÷ 	ñ 	˜$ñ 	r   c                ó   € R# )zStop this tracer.Nr   r=   s   &r   ÚstopÚNumbaTracer.stop   ó   € ár   c                ó    <€ V ^8„  d   QhRS[ /# )r   r   )Úbool)r   r3   s   "€r   r   rw   ”   s   ø€ ÷ 	"ñ 	"™dñ 	"r   c                ó   € V P                   # )zHas there been any activity?©Ú	_activityr=   s   &r   ÚactivityÚNumbaTracer.activity”   s   € à—>‘>Ð!r   c                ó   <€ V ^8„  d   QhRR/# r;   r   )r   r3   s   "€r   r   rw   ˜   s   ø€ ÷ 	#ñ 	# Dñ 	#r   c                ó   € RV n         R# )zReset the activity() flag.FNrƒ   r=   s   &r   Úreset_activityÚNumbaTracer.reset_activity˜   s	   € à"ˆDŽNr   c                óD   <€ V ^8„  d   QhRS[ S[S[3,          R,          /# r;   )rZ   ÚstrÚint)r   r3   s   "€r   r   rw   œ   s!   ø€ ÷ 	ñ 	™t¡C© H~°Õ4ñ 	r   c                ó   € R# )z+Return a dictionary of statistics, or None.Nr   r=   s   &r   Ú	get_statsÚNumbaTracer.get_statsœ   r   r   c                ó8   <€ V ^8„  d   QhRS[ P                  RR/# r/   r1   )r   r3   s   "€r   r   rw       s   ø€ ÷ 	"ñ 	"™RŸV™Vð 	"¨ñ 	"r   c                óÄ  € V P                   P                  VP                  4      pVf5   V P                  VP                  R4      pW P                   VP                  &   VP                  '       g   R# VP
                  pV P                  4        V P                  P                  V\        4       4      pV P                  '       dk   V P                  '       d1   VP                  \        VP                  VP                  4      4       MCVP                  VP                  VP                  34       MVP                  VP                  4       V P                  4        RV n        R# )z8Insert coverage data given source location.
            NT)rP   Úgetrg   rO   ri   Úsource_filenamerL   rK   Ú
setdefaultÚsetrN   rT   ÚaddÚ
_pack_arcsÚlinerM   r„   )r6   r0   ÚdispÚ	tracenameÚcur_file_datas   &&   r   ri   ÚNumbaTracer.trace    sö   € ð ×*Ñ*×.Ñ.¨s¯|©|Ó<ˆDØŠ|Ø×(Ñ(¨¯©°tÓ<Ø8<×'Ñ'¨¯©Ñ5Ø—:—::áà×,Ñ,ˆIØN‰NÔØ ŸI™I×0Ñ0°¼C»EÓBˆMØˆØ×#×#Ð#Ø!×%Ñ%¤j°·±¸3¿8¹8Ó&DÕEà!×%Ñ% s§x¡x°·±Ð&:Õ;à×!Ñ! #§(¡(Ô+Ø×ÑÔà!ˆDŽNr   c                óî  <€ V ^8„  d   Qh/ S[ P                  P                  ;R&   S[;R&   S[ P                  P                  ;R&   S[S[S[ P                  P                  R,          3,          ;R&   S[ P                  P                  R,          ;R&   S[	S[R,          .R3,          R,          ;R&   S[	. R3,          ;R&   S[	. R3,          ;R	&   S[ P                  P                  ;R
&   S[;R&   S[;R&   # )r   rK   rN   rO   NrP   rR   rS   rL   rM   rQ   rT   r„   )r   ru   Ú
TTraceDatar   ÚTShouldTraceFnr   rŒ   ÚTFileDispositionÚTShouldStartContextFnr   ÚTWarnFn)r   r3   s   "€r   r   rw   q   s  ø‡ ‚ ñ n‰n×'Ñ'Ñ'ñ ñ Ññ ñ —n‘n×3Ñ3Ñ3ñ ñ $Ù‘—‘×0Ñ0°4Õ7Ð7õ
ñ 	
ñ ñ" 'Ÿn™n×BÑBÀTÕIÑIñ# ñ$ !¡#¨¥* ¨tÐ!3Õ4°tÕ;Ñ;ñ% ñ& ˜B ˜HÕ%Ñ%ñ' ñ( ˜b $˜hÕ'Ñ'ñ) ñ* n‰n×$Ñ$Ñ$ñ+ ñ, Ññ- ñ0 Ñ.ò1 r   rƒ   N)r@   rA   rB   rC   rD   r   r„   ry   r}   r…   r‰   r   ri   Ú__annotate_func__rE   rF   rG   s   @r   r\   r\   q   sZ   ø‡ € ñ	ñ,  ¨Ô.ˆ	÷	ð 	÷
	ð 	÷	"ð 	"÷	#ð 	#÷	ð 	÷	"ð 	"÷_ ƒ r   r\   c                ó<   € V ^8„  d   QhR\         R\         R\         /# )r   Úl1Úl2r   )r   )r   s   "r   r   r   º   s!   € ÷ ñ ”sð ¤ð ¬ñ r   c                ó‚   € ^ pV ^ 8  d   VR,          pV ) p V^ 8  d   VR,          pV) pW!^,          V ,           ,          pV# )zÃPack arcs into a single integer for compatibility with .packed_arcs
option.

See
https://github.com/nedbat/coveragepy/blob/e7c05fe91ee36c0c94e144bb88d25db4fc3d02fd/coverage/ctracer/tracer.c#L171
l        l        r   )r¦   r§   Úpackeds   && r   r˜   r˜   º   sN   € ð ˆØŒ6ØgÕˆFØˆBØŒ6ØgÕˆFØˆBØ˜•8˜r•/Õ!ˆØˆr   c                óh   € V ^8„  d   Qh/ ^ \         9   d   \        . \        R,          3,          ;R&   # )r   r   r+   )Ú__conditional_annotations__r   r   )r   s   "r   r   r      s/   € ÷ ñ ÷B <Ò ;Œx˜œH _Õ5Ð5Õ6Ñ ;òCr   )!r«   rD   Útypingr   r   r   r   Úcollections.abcr   Údataclassesr   r   Úabcr	   r
   Ú
numba.corer   r   r   r   ÚImportErrorr   r+   r,   r   rI   r_   rp   ru   ÚTracerr\   r˜   r   )r«   s   @r   Ú<module>r³      sÚ   øðö÷ ?Ó >Ý #ß (ß #ç !ðÛð Ðð ñó ðð :<€Ó ;õBô	Cô 	ô&˜]ô &ðR ×Ññ/ó ð/÷ átÔôF"h—n‘n×+Ñ+ó F"ó ðF"÷PñW øð{ ô ØÒðús   ´B3 Â3	B?Â>B?