ó
    ÷Þ jg0  ã                  óR  • 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rSSK	r	SSK
r
SSKJr  SSKJrJr  SSKJr  SSKJrJrJrJr  SSKJrJr  SS	KJr  SS
KJr  \" \5      r\R:                  R<                  r " S S5      r     SS jr! " S S5      r"SS jr#SS jr$SS jr%SS jr&g)zExecute files of Python code.é    )ÚannotationsN)Ú
ModuleSpec)ÚCodeTypeÚ
ModuleType)ÚAny)ÚCoverageExceptionÚNoCodeÚNoSourceÚ_ExceptionDuringRun)Úcanonical_filenameÚpython_reported_file)Úisolate_module)Úget_python_sourcec                  ó"   • \ rS rSrSrSS jrSrg)ÚDummyLoaderé   zrA shim for the pep302 __loader__, emulating pkgutil.ImpLoader.

Currently only implements the .fullname attribute
c                ó   • Xl         g )N©Úfullname)Úselfr   Ú_argss      ÚK/var/www/html/gaurav/venv/lib/python3.13/site-packages/coverage/execfile.pyÚ__init__ÚDummyLoader.__init__$   s   € Ø �ó    r   N)r   Ústrr   r   ÚreturnÚNone)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   Ú__static_attributes__© r   r   r   r      s   † ñ÷
!r   r   c                óð  •  [         R                  R                  U 5      nU(       d  [	        SU < 35      eUR                  nUR                  nUR                  (       aY  U S-   n[         R                  R                  U5      nU(       d  [	        SU S3U < S3-   5      eUR                  nUR                  nUR                  S5      S   nX4U4$ ! [         a  n[	        [        U5      5      UeSnAff = f)z{Find the module named `modulename`.

Returns the file path of the module, the name of the enclosing
package, and the spec.
NzNo module named z	.__main__z; z- is a package and cannot be directly executedÚ.r   )
Ú	importlibÚutilÚ	find_specÚImportErrorr
   r   ÚoriginÚnameÚsubmodule_search_locationsÚ
rpartition)Ú
modulenameÚspecÚerrÚpathnameÚpackagenameÚmod_mains         r   Úfind_moduler6   (   sð   € ð*Ü�~‰~×'Ñ'¨
Ó3ˆö ÜÐ)¨*©Ð8Ó9Ð9Ø�{‰{€HØ—)‘)€KØ×&×&Ø Ñ+ˆÜ�~‰~×'Ñ'¨Ó1ˆÞÜØ" 8 *¨BÐ/Ø‘NÐ"OÐPñQóð ð —;‘;ˆØ—i‘iˆØ×(Ñ(¨Ó-¨aÑ0€KØ $Ð&Ð&øô# ó *Ü”s˜3“xÓ  cÐ)ûð*ús   ‚C Ã
C5ÃC0Ã0C5c                  óD   • \ rS rSrSrS	S
S jjrSS jrSS jrSS jrSr	g)ÚPyRunneréF   zoMulti-stage execution of Python code.

This is meant to emulate real Python execution as closely as possible.

c                óv   • Xl         X l        US   U l        S U l        S U l        S U l        S U l        S U l        g )Nr   )ÚargsÚ	as_moduleÚarg0Úpackager0   r3   Úloaderr1   )r   r;   r<   s      r   r   ÚPyRunner.__init__M   s:   € ØŒ	Ø"Œà˜‘GˆŒ	Ø#'ˆŒØ&*ˆŒØ$(ˆŒØ*.ˆŒØ'+ˆ�	r   c                óÜ  • [        [        R                  SS5      (       d   [        [        R                  SS5      (       a  SnOÅU R                  (       a  [        R
                  " 5       nOž[        R                  R                  U R                  5      (       a  U R                  nOc[        R                  R                  [        R                  R                  [        R                  R                  U R                  5      5      5      n[        R                  R                  [        R                  S   5      (       a¹  [        R                  " 5       S   S   R                  R                  n[        R                  R                  [        R                  S   5      n[        R                  R                  [        R                  R                  U5      5      n[!        U5      n[!        U5      nX4:w  a  SnOV[        R                  S   [        R                  R                  [        R                  S   5      :X  a  [        R                  S	 Ub  [#        U5      [        R                  S'   gg)zcSet sys.path properly.

This needs to happen before any importing, and without importing anything.
Ú	safe_pathFÚisolatedNr   éÿÿÿÿé   )ÚgetattrÚsysÚflagsr<   ÚosÚgetcwdÚpathÚisdirr=   ÚabspathÚdirnameÚrealpathÚinspectÚstackÚf_codeÚco_filenamer   r   )r   Úpath0Útop_fileÚsys_path_0_absÚtop_file_dir_abss        r   ÚprepareÚPyRunner.prepareX   s€  € ô ”3—9‘9˜k¨5×1Ñ1´W¼S¿Y¹YÈ
ÐTY×5ZÑ5Zð
 ‰EØ�^�^Ü—I’I“K‰EÜ�W‰W�]‰]˜4Ÿ9™9×%Ñ%ð —I‘I‰Eä—G‘G—O‘O¤B§G¡G§O¡O´B·G±G×4DÑ4DÀTÇYÁYÓ4OÓ$PÓQˆEä�7‰7�=‰=œŸ™ !™×%Ñ%ô —}’}“ rÑ*¨1Ñ-×4Ñ4×@Ñ@ˆHÜŸW™WŸ_™_¬S¯X©X°a©[Ó9ˆNÜ!Ÿw™wŸ™¬r¯w©w¯©¸xÓ/HÓIÐÜ/°Ó?ˆNÜ1Ð2BÓCÐØÓ1Ø�øô
 �x‰x˜‰{œbŸg™gŸo™o¬c¯h©h°q©kÓ:Ó:ä—H‘H˜Q�KàÑÜ.¨uÓ5ŒC�H‰H�QŠKð r   c                ó„  • U R                   (       aÛ  U R                  U l        [        U R                  5      u  ol        U l        U R
                  b  U R
                  R                  U l        [        U R                  5      U l        U R                  U R
                  l        Uc   e[        R                  R                  U5      U l        U R                  =U R                  S'   U l        GO:[        R                  R                  U R                  5      (       aü  S H{  n[        R                  R                  U R                  SU 35      n[        R                  R                  U5      n[        R                  R!                  U5      (       d  Mu  X0l          O   [#        SU R                   S35      e[%        U5      nSU l        [        S5      U l        [&        R(                  R+                  SU R                  US9U l        S	U R
                  l        O[        S5      U l        [%        U R                  5      U l        g)
z�Do more preparation to run Python code.

Includes finding the module to run and adjusting sys.argv[0].
This method is allowed to import code.

Nr   )z.pyú.pycú.pyoÚ__main__z!Can't find '__main__' module in 'Ú'Ú )r,   T)r<   r=   r0   r6   r>   r1   r-   r   r?   rI   rK   rM   r3   r;   rL   ÚjoinÚexistsr
   r   r(   Ú	machineryr   Úhas_location)r   r3   ÚextÚtry_filenames       r   Ú	_prepare2ÚPyRunner._prepare2…   s�  € ð �>�>Ø"Ÿi™iˆDŒOÜ0;¸D¿O¹OÓ0LÑ-ˆH”l D¤IØ�y‰yÑ$Ø"&§)¡)§.¡.�”Ü% d§o¡oÓ6ˆDŒKØ#Ÿ{™{ˆD�I‰IÔØÑ'Ð'Ð'ÜŸG™GŸO™O¨HÓ5ˆDŒMØ'+§}¡}Ð4ˆD�I‰I�a‰L˜4ž9Ü�W‰W�]‰]˜4Ÿ9™9×%Ñ%ó /�Ü!Ÿw™wŸ|™|¨D¯I©I¸À#ÀÐ7GÓH�ô  "Ÿw™wŸ™¨|Ó<�Ü—7‘7—>‘> ,×/Ó/Ø ,”IÙñ /ô Ð!BÀ4Ç9Á9À+ÈQÐOÓPÐPä/°Ó=ˆLØˆDŒLÜ% jÓ1ˆDŒKô "×+Ñ+×6Ñ6ØØ—‘Ø#ð 7ð ˆDŒIð
 &*ˆD�I‰IÕ"ä% jÓ1ˆDŒKä(¨¯©Ó3ˆ�	r   c                óÜ  • U R                  5         [        S5      nU R                  R                  S5      nU R                  Ul        U(       a  UR                  SS Ul        U R
                  b  U R
                  Ul        U R                  Ul        U R                  b  U R                  Ul
        [        R                  S   Ul        U[        R                  S'   U R                  [        l         U(       a  [!        U R                  5      nO[#        U R                  5      n [,        R.                  " 5       n [1        X1R2                  5        [,        RL                  " U5        g! [$         a    e [&         a:  nSU R                   SUR(                  R*                   SU 3n[%        U5      UeSnAff = f! [4         a    e [&         Ga„    [        R6                  " 5       u  pxn	Uc   eUc   eU	c   e[9        US	S5         UR:                  c   eUR:                  R<                  Ul        [        R>                  " XxU	R<                  5        [        R@                  " S
5         GN! [4         a    e [&         aÓ  n[        RB                  RE                  S5        [        R6                  " 5       u  p«nU
c   eUc   eUc   eSUl#        UR:                  c   eUR:                  R<                  Ul        [        RH                  " X«UR<                  5        [        RB                  RE                  S5        [K        XxU	R<                  5      UeSnAff = ff = f! [,        RL                  " U5        f = f)zRun the Python code!r]   )r[   r\   NrD   ÚbuiltinszCouldn't run 'z' as Python code: z: Ú__context__rE   zError in sys.excepthook:
Tz
Original exception was:
)'rf   r   r=   ÚendswithÚ__file__r>   Ú__package__r?   Ú
__loader__r1   Ú__spec__rG   ÚmodulesÚ__builtins__r;   ÚargvÚmake_code_from_pycÚmake_code_from_pyr   Ú	ExceptionÚ	__class__r   rI   rJ   ÚexecÚ__dict__Ú
SystemExitÚexc_inforF   Ú__traceback__Útb_nextÚ
excepthookÚexitÚstderrÚwriteÚ__suppress_context__Ú__excepthook__r   Úchdir)r   Úmain_modÚfrom_pycÚcodeÚexcÚmsgÚcwdÚtypr2   ÚtbÚtyp2Úerr2Útb2s                r   ÚrunÚPyRunner.run´   sß  € ð 	�‰Ôô ˜jÓ)ˆà—9‘9×%Ñ%Ð&6Ó7ˆØ ŸI™IˆÔÞØ (× 1Ñ 1°#°2Ð 6ˆHÔØ�<‰<Ñ#Ø#'§<¡<ˆHÔ Ø"Ÿk™kˆÔØ�9‰9Ñ Ø $§	¡	ˆHÔä #§¡¨JÑ 7ˆÔà"*Œ�‰�JÑð —9‘9ŒŒð
	2æÜ)¨$¯)©)Ó4‘ä(¨¯©Ó3‘ô �iŠi‹kˆð/	Ü�×(Ñ(Ô)ô\ �HŠH�S�Møôs !ó 	ØÜó 	2Ø" 4§9¡9 +Ð-?ÀÇÁ×@VÑ@VÐ?WÐWYÐZ]ÐY^Ð_ˆCÜ# CÓ(¨cÐ1ûð	2ûô ó 	ð Üô '	ô Ÿ<š<›>‰LˆC�bØ‘?Ð"�?Ø‘?Ð"�?Ø‘>Ð!�>ô �C˜¨Ô-ðØ×(Ñ(Ñ4Ð4Ð4Ø$'×$5Ñ$5×$=Ñ$=�Ô!Ü—’˜s¨¯©Ô4ô$ —’˜—øô# ó ØÜó Iô —
‘
× Ñ Ð!=Ô>Ü"%§,¢,£.‘�˜CØÑ'Ð'Ð'ØÑ'Ð'Ð'Ø‘Ð&�Ø,0�Ô)Ø×)Ñ)Ñ5Ð5Ð5Ø%)×%7Ñ%7×%?Ñ%?�Ô"Ü×"Ò" 4¨s¯{©{Ô;Ü—
‘
× Ñ Ð!>Ô?Ü)¨#°B·J±JÓ?ÀSÐHûðIúð1'	ûôR �HŠH�S�Músc   Ã1E& ÄE& Ä:F7 Å&F4Å:5F/Æ/F4Æ7A	MÈAI%ÉMÉ"M É%MÉ9CMÍMÍMÍM ÍM+)r=   r;   r<   r?   r0   r>   r3   r1   N)F)r;   ú	list[str]r<   Úboolr   r   )r   r   )
r   r    r!   r"   r#   r   rX   rf   r�   r$   r%   r   r   r8   r8   F   s   † ñö	,ô+6ôZ-4÷^Xr   r8   c                óX   • [        U SS9nUR                  5         UR                  5         g)zöRun a Python module, as though with ``python -m name args...``.

`args` is the argument array to present as sys.argv, including the first
element naming the module being executed.

This is a helper for tests, to encapsulate how to use PyRunner.

T©r<   N©r8   rX   r�   ©r;   Úrunners     r   Úrun_python_moduler˜     s#   € ô �d dÑ+€FØ
‡N�NÔØ
‡J�J…Lr   c                óX   • [        U SS9nUR                  5         UR                  5         g)a3  Run a Python file as if it were the main program on the command line.

`args` is the argument array to present as sys.argv, including the first
element naming the file being executed.  `package` is the name of the
enclosing package, if any.

This is a helper for tests, to encapsulate how to use PyRunner.

Fr”   Nr•   r–   s     r   Úrun_python_filerš     s#   € ô �d eÑ,€FØ
‡N�NÔØ
‡J�J…Lr   c                ó„   •  [        U 5      n[        XSSS9nU$ ! [        [        4 a  n[        SU  S35      UeSnAff = f)z8Get source from `filename` and make a code object of it.úNo file to run: 'r^   Nrw   T)ÚmodeÚdont_inherit)r   ÚOSErrorr
   Úcompile)ÚfilenameÚsourcer‡   r†   s       r   rt   rt   ,  sW   € ðAÜ" 8Ó,ˆô �6¨&¸tÑD€DØ€Køô	 ”XÐó AÜÐ*¨8¨*°AÐ6Ó7¸SÐ@ûðAús   ‚ š?ª:º?c                ó0  •  [        U S5      nU   UR                  S5      nU[        :w  a  [        SU< S[        < 35      e[
        R                  " SUR                  S5      5      S	   nUS
-  nU(       a  UR                  S5        O"UR                  S5        UR                  S5        [        R                  " U5      n[        U[        5      (       d   e SSS5        U$ ! [         a  n[        SU  S35      UeSnAff = f! , (       d  f       W$ = f)z#Get a code object from a .pyc file.Úrbrœ   r^   Né   zBad magic number in .pyc file: z != z<Lr   rE   é   )ÚopenrŸ   r	   ÚreadÚPYC_MAGIC_NUMBERÚstructÚunpackÚmarshalÚloadÚ
isinstancer   )r¡   Úfpycr‡   ÚmagicrH   Ú
hash_basedr†   s          r   rs   rs   7  sþ   € ð?Ü�H˜dÓ#ˆò 
ð —	‘	˜!“ˆØÔ$Ó$ÜÐ:¸5¹)À4ÔHXÑG[Ð\Ó]Ð]ä—’˜d D§I¡I¨a£LÓ1°!Ñ4ˆØ˜T‘\ˆ
ÞØ�I‰I�a�Lð �I‰I�aŒLØ�I‰I�aŒLô �|Š|˜DÓ!ˆÜ˜$¤×)Ñ)Ð)Ñ)÷% 
ð( €Køô/ ó ?ÜÐ(¨¨
°!Ð4Ó5¸3Ð>ûð?ú÷ 
Œð( €Kús#   ‚C$ �C	DÃ$
DÃ.C>Ã>DÄ
D)r0   r   r   z"tuple[str | None, str, ModuleSpec])r;   r‘   r   r   )r¡   r   r   r   )'r#   Ú
__future__r   Úimportlib.machineryr(   Úimportlib.utilrP   r¬   rI   rª   rG   r   Útypesr   r   Útypingr   Úcoverage.exceptionsr   r	   r
   r   Úcoverage.filesr   r   Úcoverage.miscr   Úcoverage.pythonr   r)   ÚMAGIC_NUMBERr©   r   r6   r8   r˜   rš   rt   rs   r%   r   r   Ú<module>r¼      s–   ðñ $å "ã Û Û Û Û 	Û Û 
Ý *ß &Ý ç XÓ Xß CÝ (Ý -á�BÓ€ð —>‘>×.Ñ.Ð ÷!ñ !ð'Øð'à'ô'÷<Fñ FôRôôõr   