
     h                    *   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Jr  SSK	J
r
JrJr  SSKJr  SSKJrJr  SSKJrJr  \
(       a  SS	KJr  SS
KJr  SSKJr  SS.         SS jjrSS jrSS jrSS jrSS jrSrS\< S3r \" 5       4SS jjr!g)z!Invasive patches for coverage.py.    )annotationsN)Path)TYPE_CHECKINGAnyNoReturn)env)NoDebuggingDevNullDebug)ConfigErrorCoverageException)Coverage)CoverageConfig)	TDebugCtlT)make_pth_filec               P   UR                  S5      (       a  UO	[        5       n[        [        UR                  5      5       Hb  nU=S:X  a    [        X5        M  =S:X  a    [        XU5        M-  =S:X  a    [        U5        MA  S:X  a  [        XU5        MT   [        SU< 35      e   g)z3Apply invasive patches requested by `[run] patch=`.patch_exitexecvfork
subprocesszUnknown patch N)
shouldr
   sortedsetr   _patch__exit_patch_execv_patch_fork_patch_subprocessr   )covconfigdebugr   r   s        l/root/racknerd_01/codex-conversation/amazon-q-terraform/.venv/lib/python3.13/site-packages/coverage/patch.pyapply_patchesr"      s{     \\'**EEFLL)*S(S%0E"!&?!N5)"<== +    c                v   ^ ^^ TR                  S5        [        R                  mSU UU4S jjnU[        l        g)zPatch os._exit.zPatching _exitc                0  > [         R                  " [        5         TR                  ST< 35        S S S 5        [         R                  " [        5         TR	                  5         S S S 5        T" U 5        g ! , (       d  f       NJ= f! , (       d  f       N(= f)NzUsing _exit patch with cov = )
contextlibsuppress	Exceptionwritesave)statusr   r    old_exits    r!   coverage_os_exit_patch,_patch__exit.<locals>.coverage_os_exit_patch:   s^      +KK8#:; ,  +HHJ ,	 ,+++s   A6B6
B
BN)r+   intreturnr   )r)   osr   )r   r    r-   r,   s   `` @r!   r   r   4   s,    	KK !xxH  &BHr#   c                   ^ ^^ [         R                  (       a  [        S5      eTR                  S5        SUU U4S jjnU" S[        R
                  5      [        l        U" S[        R                  5      [        l        g)z$Patch the execv family of functions.z+patch=execv isn't supported yet on Windows.zPatching execvc                $   >^ ^ SUUUU U4S jjnU$ )Nc                 Z  > [         R                  " [        5         TR                  ST ST< 35        S S S 5        [         R                  " [        5         TR	                  5         S S S 5        TR                  S5      (       a|  U S   nTR                  5       US'   [        R                  (       aO  [        R                  " S5      US'   [        R                  " S5      =nb  X2S'   [        R                  " S5      US'   T" U 0 UD6  g ! , (       d  f       N= f! , (       d  f       N= f)	NzUsing execv patch for z with cov = eCOVERAGE_PROCESS_CONFIGCOVERAGE_COREPYTHONPYCACHEPREFIXPATH)r&   r'   r(   r)   r*   endswith	serializer   TESTINGr1   getenv)	argskwargsnew_envcache_prefixr   r   r    fname	old_execvs	       r!   coverage_execv_patchD_patch_execv.<locals>.make_execv_patch.<locals>.coverage_execv_patchL   s    $$Y/4UG=#JK 0$$Y/
 0 ~~c""r(5;5E5E5G12;;/1yy/IGO,
 )+		2G(HHU9E 56 ')ii&7GFOt&v&- 0///s   DD
D
D*)r?   r   r@   r   r0   r    )rC   rD   rE   r   r   r    s   `` r!   make_execv_patch&_patch_execv.<locals>.make_execv_patchK   s    	' 	'2 $#r#   r   execveN)rC   strrD   r   r0   r   )r   WINDOWSr   r)   r1   r   rJ   )r   r   r    rH   s   ``` r!   r   r   D   sS    
{{ MNN	KK !$ $:  2BH 2995BIr#   c                    SSK Jn  [        R                  (       a  [	        S5      eU R                  S5        [        R                  " US9  g)z/Ensure Coverage is properly reset after a fork.r   )_after_fork_in_childz*patch=fork isn't supported yet on Windows.zPatching fork)after_in_childN)coverage.controlrN   r   rL   r   r)   r1   register_at_fork)r    rN   s     r!   r   r   l   s3    5
{{ LMM	KK ';<r#   c                   ^^ TR                  S5        U(       a*  [        T5      mSUU4S jjn[        R                  " U5        U R                  c   eU R                  5       [        R                  S'   g)zBWrite .pth files and set environment vars to measure subprocesses.zPatching subprocessc                 r   > T H0  n TR                  S[        U 5      < 35        U R                  SS9  M2     g )NzDeleting subprocess .pth file: T)
missing_ok)r)   rK   unlink)pr    	pth_filess    r!   delete_pth_files+_patch_subprocess.<locals>.delete_pth_files~   s3    =c!fZHID) r#   Nr7   )r0   None)r)   create_pth_filesatexitregisterconfig_filer<   r1   environ)r   r    r   rX   rW   s    `  @r!   r   r   w   s`    	KK%&$U+		* 	*
 	()))),2,<,<,>BJJ()r#   zOtry:
    import coverage
except:
    pass
else:
    coverage.process_startup()
zimport sys; exec(z)
c                b   / n[         R                  " 5        H  n[        U5      S[        R                  " 5        S3-  n U R                  S5      (       a  U R                  S[        U5      < 35        UR                  [        SS9  UR                  U5        M     U$ ! [         a     M  f = f)z-Create .pth files for measuring subprocesses.	subcover_z.pthr   zWriting subprocess .pth file: zutf-8)encoding)sitegetsitepackagesr   r1   getpidr   r)   rK   
write_textPTH_TEXTappendOSError)r    rW   pth_dirpth_files       r!   r[   r[      s    I'')=Yryy{m4#@@	'||G$$<S]<MNO7; X& * 	  		s   AB  
B.-B.)
r   r   r   r   r    r   r   boolr0   rZ   )r   r   r    r   r0   rZ   )r   r   r   r   r    r   r0   rZ   )r    r   r0   rZ   )r   r   r    r   r   rl   r0   rZ   )r    r   r0   z
list[Path])"__doc__
__future__r   r\   r&   r1   rc   pathlibr   typingr   r   r   coverager   coverage.debugr	   r
   coverage.exceptionsr   r   r   coverage.configr   coverage.typesr   r"   r   r   r   r   PTH_CODErg   r[   rG   r#   r!   <module>rw      s    ( "   	   / /  4 >!.( >	>> >
 > 
>6& %6P=?, xl#. )4 r#   