§
    0›jë.  ã                  ó@  — 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mZ ddl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 dd
lmZ  ee¦  «        Zej        j        Z G d„ d¦  «        Z dd„Z! G d„ d¦  «        Z"dd„Z#dd„Z$dd„Z%dd„Z&dS ) 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                  ó   — e Zd ZdZd
d„Zd	S )ÚDummyLoaderzzA shim for the pep302 __loader__, emulating pkgutil.ImpLoader.

    Currently only implements the .fullname attribute
    ÚfullnameÚstrÚ_argsr   ÚreturnÚNonec                ó   — || _         d S )N)r   )Úselfr   r   s      úP/home/lighthouse/health/venv/lib64/python3.11/site-packages/coverage/execfile.pyÚ__init__zDummyLoader.__init__$   s   € Ø ˆŒˆˆó    N)r   r   r   r   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   © r   r   r   r      s2   € € € € € ðð ð
!ð !ð !ð !ð !ð !r   r   Ú
modulenamer   r   ú"tuple[str | None, str, ModuleSpec]c                óÎ  — 	 t           j                             | ¦  «        }n/# t          $ r"}t	          t          |¦  «        ¦  «        |‚d}~ww xY w|st	          d| ›�¦  «        ‚|j        }|j        }|j        rM| dz   }t           j                             |¦  «        }|st	          d|› d�| ›d�z   ¦  «        ‚|j        }|j        }| 	                    d¦  «        d         }|||fS )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)r!   ÚspecÚerrÚpathnameÚpackagenameÚmod_mains         r   Úfind_moduler2   (   s  € ð*ÝŒ~×'Ò'¨
Ñ3Ô3ˆˆøÝð *ð *ð *Ý•s˜3‘x”xÑ Ô  cÐ)øøøøð*øøøàð :ÝÐ8¨*Ð8Ð8Ñ9Ô9Ð9ØŒ{€HØ”)€KØÔ&ð 	 Ø Ñ+ˆÝŒ~×'Ò'¨Ñ1Ô1ˆØð 	ÝØ/ 8Ð/Ð/Ð/ØÐPÐPÐPñQñô ð ð ”;ˆØ”iˆØ×(Ò(¨Ñ-Ô-¨aÔ0€KØ�[ $Ð&Ð&s   ‚" ¢
A¬A	Á	Ac                  ó4   — e Zd ZdZddd	„Zdd
„Zdd„Zdd„ZdS )ÚPyRunnerzwMulti-stage execution of Python code.

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

    FÚargsú	list[str]Ú	as_moduleÚboolr   r   c                ó‚   — || _         || _        |d         | _        d | _        d | _        d | _        d | _        d | _        d S )Nr   )r5   r7   Úarg0Úpackager!   r/   Úloaderr-   )r   r5   r7   s      r   r   zPyRunner.__init__M   sB   € ØˆŒ	Ø"ˆŒà˜”GˆŒ	Ø#'ˆŒØ&*ˆŒØ$(ˆŒØ*.ˆŒØ'+ˆŒ	ˆ	ˆ	r   c                ó@  — t          t          j        dd¦  «        rd}n¥| j        rt	          j        ¦   «         }nŠt          j                             | j        ¦  «        r| j        }n^t          j         	                    t          j         
                    t          j                             | j        ¦  «        ¦  «        ¦  «        }t          j                             t          j        d         ¦  «        r»t          j        ¦   «         d         d         j        j        }t          j         	                    t          j        d         ¦  «        }t          j         	                    t          j         
                    |¦  «        ¦  «        }t!          |¦  «        }t!          |¦  «        }||k    rd}nPt          j        d         t          j         
                    t          j        d         ¦  «        k    rt          j        d= |�t#          |¦  «        t          j        d<   dS dS )zsSet sys.path properly.

        This needs to happen before any importing, and without importing anything.
        Ú	safe_pathFNr   éÿÿÿÿé   )ÚgetattrÚsysÚflagsr7   Ú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   ÚpreparezPyRunner.prepareX   sˆ  € õ •3”9˜k¨5Ñ1Ô1ð 
	RàˆEˆEØŒ^ð 	RÝ”I‘K”KˆEˆEÝŒW�]Š]˜4œ9Ñ%Ô%ð 	Rð ”IˆEˆEå”G—O’O¥B¤G§O¢OµB´G×4DÒ4DÀTÄYÑ4OÔ4OÑ$PÔ$PÑQÔQˆEåŒ7�=Š=�œ !œÑ%Ô%ð 	 õ ”}‘” rÔ*¨1Ô-Ô4Ô@ˆHÝœWŸ_š_­S¬X°a¬[Ñ9Ô9ˆNÝ!œwŸš­r¬w¯ª¸xÑ/HÔ/HÑIÔIÐÝ/°Ñ?Ô?ˆNÝ1Ð2BÑCÔCÐØÐ!1Ò1Ð1Ø�øõ
 Œx˜Œ{�bœgŸošo­c¬h°q¬kÑ:Ô:Ò:Ð:å”H˜Q�KàÐÝ.¨uÑ5Ô5�CŒH�Q‰KˆKˆKð Ðr   c                óÈ  — | j         rŸ| j        | _        t          | j        ¦  «        \  }| _        | _        | j        �| j        j        | _        t          | j        ¦  «        | _        |€J ‚t          j
                             |¦  «        | _        | j        x| j        d<   | _        �n"t          j
                             | j        ¦  «        rêdD ]q}t          j
                             | j        d|› �¦  «        }t          j
                             |¦  «        }t          j
                             |¦  «        r	|| _         nŒrt#          d| j        › d�¦  «        ‚t%          |¦  «        }t&          j                             dd|¬¦  «        | _        d| j        _        d	| _        t          d¦  «        | _        nt          d¦  «        | _        t%          | j        ¦  «        | _        dS )
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Ú )r7   r:   r!   r2   r;   r-   r*   r   r<   rD   rF   rH   r/   r5   rG   ÚjoinÚexistsr
   r   r%   Ú	machineryr   Úhas_location)r   r/   ÚextÚtry_filenames       r   Ú	_prepare2zPyRunner._prepare2‚   s¦  € ð Œ>ð 	2Ø"œiˆDŒOÝ0;¸D¼OÑ0LÔ0LÑ-ˆH�d”l D¤IØŒyÐ$Ø"&¤)¤.�”Ý% d¤oÑ6Ô6ˆDŒKØÐ'Ð'Ð'ÝœGŸOšO¨HÑ5Ô5ˆDŒMØ'+¤}Ð4ˆDŒI�a‰L˜4œ9™9ÝŒW�]Š]˜4œ9Ñ%Ô%ð 	2ð /ð 	Qð 	Q�Ý!œwŸ|š|¨D¬IÐ7GÀ#Ð7GÐ7GÑHÔH�õ  "œwŸš¨|Ñ<Ô<�Ý”7—>’> ,Ñ/Ô/ð Ø ,�D”IØ�Eðõ ÐOÀ4Ä9ÐOÐOÐOÑPÔPÐPõ 0°Ñ=Ô=ˆLÝ!Ô+×6Ò6°zÀ4ÐP\Ð6Ñ]Ô]ˆDŒIØ%)ˆDŒIÔ"ØˆDŒLÝ% jÑ1Ô1ˆDŒKˆKå% jÑ1Ô1ˆDŒKå(¨¬Ñ3Ô3ˆŒ	ˆ	ˆ	r   c                ó   — |                       ¦   «          t          d¦  «        }| j                             d¦  «        }| j        |_        |r|j        dd…         |_        | j        �| j        |_        | j        |_        | j	        �| j	        |_
        t          j        d         |_        |t          j        d<   | j        t          _        	 |rt!          | j        ¦  «        }nt#          | j        ¦  «        }nF# t$          $ r ‚ t&          $ r/}d| j        › d|j        j        › d|› �}t%          |¦  «        |‚d}~ww xY wt-          j        ¦   «         }	 t1          ||j        ¦  «         �nj# t4          $ r ‚ t&          $ �rR t          j        ¦   «         \  }}}	|€J ‚|€J ‚|	€J ‚t9          |d	d¦  «         	 |j        €J ‚|j        j        |_        t          j        |||	j        ¦  «         t          j         d
¦  «         nÐ# t4          $ r ‚ t&          $ r¹}t          j!         "                    d¦  «         t          j        ¦   «         \  }
}}|
€J ‚|€J ‚|€J ‚d|_#        |j        €J ‚|j        j        |_        t          j$        |
||j        ¦  «         t          j!         "                    d¦  «         tK          |||	j        ¦  «        |‚d}~ww xY wY nw xY wt-          j&        |¦  «         dS # t-          j&        |¦  «         w xY w)zRun the Python code!rW   )rU   rV   Nr?   ÚbuiltinszCouldn't run 'z' as Python code: z: Ú__context__r@   zError in sys.excepthook:
Tz
Original exception was:
)'r`   r   r:   ÚendswithÚ__file__r;   Ú__package__r<   Ú
__loader__r-   Ú__spec__rB   ÚmodulesÚ__builtins__r5   ÚargvÚmake_code_from_pycÚmake_code_from_pyr   Ú	ExceptionÚ	__class__r   rD   rE   ÚexecÚ__dict__Ú
SystemExitÚexc_inforA   Ú__traceback__Útb_nextÚ
excepthookÚexitÚstderrÚwriteÚ__suppress_context__Ú__excepthook__r   Úchdir)r   Úmain_modÚfrom_pycÚcodeÚexcÚmsgÚcwdÚtypr.   ÚtbÚtyp2Úerr2Útb2s                r   ÚrunzPyRunner.run«   sK  € ð 	�ŠÑÔÐõ ˜jÑ)Ô)ˆà”9×%Ò%Ð&6Ñ7Ô7ˆØ œIˆÔØð 	7Ø (Ô 1°#°2°#Ô 6ˆHÔØŒ<Ð#Ø#'¤<ˆHÔ Ø"œkˆÔØŒ9Ð Ø $¤	ˆHÔå #¤¨JÔ 7ˆÔà"*�Œ�JÑð ”9�Œð
	2àð 4Ý)¨$¬)Ñ4Ô4��å(¨¬Ñ3Ô3�øøÝ ð 	ð 	ð 	ØÝð 	2ð 	2ð 	2Ø_ 4¤9Ð_Ð_ÀÄÔ@VÐ_Ð_ÐZ]Ð_Ð_ˆCÝ# CÑ(Ô(¨cÐ1øøøøð	2øøøõ Œi‰kŒkˆð/	Ý��xÔ(Ñ)Ô)Ð)Ñ)øÝð 	ð 	ð 	ð Ýð '	ñ '	ð '	õ œ<™>œ>‰LˆC��bØ�?�?�?Ø�?�?�?Ø�>�>�>õ �C˜¨Ñ-Ô-Ð-ðØÔ(Ð4Ð4Ð4Ø$'Ô$5Ô$=�Ô!Ý”˜s C¨¬Ñ4Ô4Ð4õ$ ”˜‘”��øõ# ð ð ð ØÝð Ið Ið Iõ ”
× Ò Ð!=Ñ>Ô>Ð>Ý"%¤,¡.¤.‘��d˜CØÐ'Ð'Ð'ØÐ'Ð'Ð'Ø���Ø,0�Ô)ØÔ)Ð5Ð5Ð5Ø%)Ô%7Ô%?�Ô"ÝÔ" 4¨¨s¬{Ñ;Ô;Ð;Ý”
× Ò Ð!>Ñ?Ô?Ð?Ý)¨#¨s°B´JÑ?Ô?ÀSÐHøøøøðIøøøð �ðO'	øøøõR ŒH�S‰MŒMˆMˆMˆMø�BŒH�S‰MŒMˆMˆMøøøsh   Ã
+C6 Ã6D9Ä
*D4Ä4D9ÅE' Å%K' Å'A	KÆ15G;Ç&KÇ;KÈB4KËKËKËK' ËKËK' Ë'K=N)F)r5   r6   r7   r8   r   r   )r   r   )r   r   r   r   r   rS   r`   rˆ   r    r   r   r4   r4   F   s{   € € € € € ðð ð	,ð 	,ð 	,ð 	,ð 	,ð(6ð (6ð (6ð (6ðT'4ð '4ð '4ð '4ðRXð Xð Xð Xð Xð Xr   r4   r5   r6   r   c                óx   — t          | d¬¦  «        }|                     ¦   «          |                     ¦   «          dS )a  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©r7   N©r4   rS   rˆ   ©r5   Úrunners     r   Úrun_python_modulerŽ     s7   € õ �d dÐ+Ñ+Ô+€FØ
‡N‚NÑÔÐØ
‡J‚J�L„L€L€L€Lr   c                óx   — t          | d¬¦  «        }|                     ¦   «          |                     ¦   «          dS )aG  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�     s7   € õ �d eÐ,Ñ,Ô,€FØ
‡N‚NÑÔÐØ
‡J‚J�L„L€L€L€Lr   Úfilenamer   c                ó¨   — 	 t          | ¦  «        }n-# t          t          f$ r}t          d| › d�¦  «        |‚d}~ww xY wt          || dd¬¦  «        }|S )z8Get source from `filename` and make a code object of it.úNo file to run: 'rX   Nrp   T)ÚmodeÚdont_inherit)r   ÚOSErrorr
   Úcompile)r‘   Úsourcer€   r   s       r   rm   rm   #  sx   € ðAÝ" 8Ñ,Ô,ˆˆøÝ•XÐð Að Að AÝÐ6¨8Ð6Ð6Ð6Ñ7Ô7¸SÐ@øøøøðAøøøõ �6˜8¨&¸tÐDÑDÔD€DØ€Ks   ‚ ’<£7·<c                ó`  — 	 t          | d¦  «        }n&# t          $ r}t          d| › d�¦  «        |‚d}~ww xY w|5  |                     d¦  «        }|t          k    rt          d|›dt          ›�¦  «        ‚t          j        d|                     d¦  «        ¦  «        d	         }|d
z  }|r|                     d¦  «         n*|                     d¦  «         |                     d¦  «         t          j        |¦  «        }t          |t          ¦  «        sJ ‚	 ddd¦  «         n# 1 swxY w Y   |S )z#Get a code object from a .pyc file.Úrbr“   rX   Né   zBad magic number in .pyc file: z != z<Lr   r@   é   )Úopenr–   r	   ÚreadÚPYC_MAGIC_NUMBERÚstructÚunpackÚmarshalÚloadÚ
isinstancer   )r‘   Úfpycr€   ÚmagicrC   Ú
hash_basedr   s          r   rl   rl   .  s€  € ð?Ý�H˜dÑ#Ô#ˆˆøÝð ?ð ?ð ?ÝÐ4¨Ð4Ð4Ð4Ñ5Ô5¸3Ð>øøøøð?øøøð 
ð *ð *ð —	’	˜!‘”ˆØÕ$Ò$Ð$ÝÐ\¸5Ð\Ð\ÕHXÐ\Ð\Ñ]Ô]Ð]å”˜d D§I¢I¨a¡L¤LÑ1Ô1°!Ô4ˆØ˜T‘\ˆ
Øð 	Ø�IŠI�a‰LŒLˆLˆLð �IŠI�a‰LŒLˆLØ�IŠI�a‰LŒLˆLõ Œ|˜DÑ!Ô!ˆÝ˜$¥Ñ)Ô)Ð)Ð)Ð)Ð)ð%*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð( €Ks"   ‚ “
6�1±6»CD#Ä#D'Ä*D')r!   r   r   r"   )r5   r6   r   r   )r‘   r   r   r   )'r   Ú
__future__r   Úimportlib.machineryr%   Úimportlib.utilrK   r¢   rD   r    rB   r   Útypesr   r   Útypingr   Úcoverage.exceptionsr   r	   r
   r   Úcoverage.filesr   r   Úcoverage.miscr   Úcoverage.pythonr   r&   ÚMAGIC_NUMBERrŸ   r   r2   r4   rŽ   r�   rm   rl   r    r   r   ú<module>r²      sã  ðð $Ð #à "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø €€€Ø 	€	€	€	Ø €€€Ø 
€
€
€
Ø *Ð *Ð *Ð *Ð *Ð *Ø &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ø Ð Ð Ð Ð Ð à XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XØ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CØ (Ð (Ð (Ð (Ð (Ð (Ø -Ð -Ð -Ð -Ð -Ð -à€^�BÑÔ€ð ”>Ô.Ð ð!ð !ð !ð !ð !ñ !ô !ð !ð'ð 'ð 'ð 'ð<}ð }ð }ð }ð }ñ }ô }ð }ð@ð ð ð ðð ð ð ðð ð ð ðð ð ð ð ð r   