§
    X›j!  ã                   ó  — d dl Z d dlZd dlZd dlmZmZmZmZmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZ d dlmZ d dlmZmZ  ej        e¦  «        Zd	„ Zed
„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Z 	 	 dde
e!         de
e!         ddfd„Z"dS )é    N)ÚPIPEÚCalledProcessErrorÚPopenÚSubprocessErrorÚ
check_call)ÚOptional)ÚRequirement)Údefault_instrumentations)Ú	libraries)Ú__version__)ÚPackageNotFoundErrorÚversionc                 ó   ‡ — dˆ fd„	}|S )Nc                 óâ   •— 	 | r ‰| ¦  «        S  ‰¦   «         S # t           $ rJ}t          |dd ¦  «        }|rdd                     |¦  «        › d�}| r|› d| › d�}t          |¦  «        ‚d }~ww xY w)NÚcmdzError calling system command "ú ú"z for package ")r   ÚgetattrÚjoinÚRuntimeError)ÚpackageÚexpr   ÚmsgÚfuncs       €úd/home/lighthouse/health/venv/lib/python3.11/site-packages/opentelemetry/instrumentation/bootstrap.pyÚwrapperz_syscall.<locals>.wrapper-   s¨   ø€ ð
	$Øð %Ø�t˜G‘}”}Ð$Ø�4‘6”6ˆMøÝð 	$ð 	$ð 	$Ý˜#˜u dÑ+Ô+ˆCØð HØG°s·x²xÀ±}´}ÐGÐGÐG�Øð 7ØÐ6Ð6¨GÐ6Ð6Ð6�Ý˜sÑ#Ô#Ð#øøøøð	$øøøs   ƒ �	 š
A.¤AA)Á)A.©N© )r   r   s   ` r   Ú_syscallr   ,   s(   ø€ ð$ð $ð $ð $ð $ð $ð €Nó    c           
      ó˜   — 	 t          t          j        dddddd| g¦  «         d S # t          $ r}t	          |¦  «         Y d }~d S d }~ww xY w)Nú-mÚpipÚinstallz-Uz--upgrade-strategyzonly-if-needed)r   ÚsysÚ
executabler   Úprint)r   Úerrors     r   Ú_sys_pip_installr)   =   sz   € ðÝå”ØØØØØ$Ø Øð	ñ	
ô 	
ð 	
ð 	
ð 	
øõ ð ð ð Ýˆe‰Œˆˆˆˆˆˆˆøøøøðøøøs   ‚!% ¥
A	¯AÁA	c                 ób  — t          t          j        dddgt          ¬¦  «        5 }|                     ¦   «         d                              ¦   «         }|                     ¦   «         }ddd¦  «         n# 1 swxY w Y   | D ]/}|D ]*}|                     ¦   «         |v rt          d|› �¦  «        ‚Œ+Œ0dS )aw  Ensures none of the instrumentations have dependency conflicts.
    Clean check reported as:
    'No broken requirements found.'
    Dependency conflicts are reported as:
    'opentelemetry-instrumentation-flask 1.0.1 has requirement opentelemetry-sdk<2.0,>=1.0, but you have opentelemetry-sdk 0.5.'
    To not be too restrictive, we'll only check for relevant packages.
    r"   r#   Úcheck)Ústdoutr   NzDependency conflict found: )r   r%   r&   r   ÚcommunicateÚdecodeÚlowerr   )r   Ú
check_pipeÚ	pip_checkÚpip_check_lowerÚpackage_tupr   s         r   Ú
_pip_checkr4   Q   s  € õ 
Ý	Œ˜˜u gÐ.µtð
ñ 
ô 
ð ,à	Ø×*Ò*Ñ,Ô,¨QÔ/×6Ò6Ñ8Ô8ˆ	Ø#Ÿ/š/Ñ+Ô+ˆð	,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð
 !ð Nð NˆØ"ð 	Nð 	NˆGØ�}Š}‰Œ /Ð1Ð1Ý"Ð#LÀÐ#LÐ#LÑMÔMÐMð 2ð	NðNð Ns   ¥AA2Á2A6Á9A6c                 óâ   — t          | ¦  «        } 	 t          | j        ¦  «        }n# t          $ r Y dS w xY w| j                             |¦  «        st                               d| |¦  «         dS dS )NFzRinstrumentation for package %s is available but version %s is installed. Skipping.T)r	   r   Únamer   Ú	specifierÚfilterÚloggerÚwarning)ÚreqÚdist_versions     r   Ú_is_installedr=   d   sŽ   € Ý
�cÑ
Ô
€CðÝ˜sœxÑ(Ô(ˆˆøÝð ð ð Øˆuˆuðøøøð Œ=×Ò Ñ-Ô-ð Ý�Šð6àØñ		
ô 	
ð 	
ð ˆuØˆ4s   ‘& ¦
4³4c              #   ób   K  — | E d {V —† |D ]!}t          |d         ¦  «        r
|d         V — Œ"d S )NÚlibraryÚinstrumentation)r=   ©r
   r   Úlibs      r   Ú_find_installed_librariesrC   w   s^   è è € Ø'Ð'Ð'Ð'Ð'Ð'Ð'Ð'àð )ð )ˆÝ˜˜YœÑ(Ô(ð 	)ØÐ'Ô(Ð(Ð(Ð(øð)ð )r    c                 ó®   — t                                t          j        ¦  «         t	          d                     t          | |¦  «        ¦  «        ¦  «         d S )Nú
)r9   ÚsetLevelÚloggingÚERRORr'   r   rC   )r
   r   s     r   Ú_run_requirementsrI      sQ   € Ý
‡O‚O•G”MÑ"Ô"Ð"Ý	Ø�	Š	Ý%Ð&>À	ÑJÔJñ	
ô 	
ñô ð ð ð r    c                 óh   — t          | |¦  «        D ]}t          |¦  «         Œt          |¦  «         d S r   )rC   r)   r4   rA   s      r   Ú_run_installrK   ˆ   sA   € Ý(Ð)AÀ9ÑMÔMð ð ˆÝ˜ÑÔÐÐÝˆyÑÔÐÐÐr    r
   r   Úreturnc                 óL  — d}d}t          j        d¬¦  «        }|                     ddddt          z   ¬	¦  «         |                     d
d||g|d¬¦  «         |                     ¦   «         }|€t
          }| €t          } |t          |t          i|j	                 } || |¦  «         d S )Nr$   Úrequirementsz˜
        opentelemetry-bootstrap detects installed libraries and automatically
        installs the relevant instrumentation packages for them.
        )Údescriptionz	--versionzprint version informationr   z	%(prog)s )ÚhelpÚactionr   z-az--actiona  
        install - uses pip to install the new requirements using to the
                  currently active site-package.
        requirements - prints out the new requirements to stdout. Action can
                       be piped and appended to a requirements.txt file.
        )ÚchoicesÚdefaultrP   )
ÚargparseÚArgumentParserÚadd_argumentr   Ú
parse_argsÚgen_librariesÚgen_default_instrumentationsrK   rI   rQ   )r
   r   Úaction_installÚaction_requirementsÚparserÚargsr   s          r   Úrunr^   Ž   sö   € ð €NØ(ÐåÔ$ððñ ô €Fð ×ÒØØ(ØØ�kÑ)ð	 ñ ô ð ð ×ÒØØØÐ!4Ð5Ø#ðð ñ ô ð ð ×ÒÑÔ€DàÐÝ!ˆ	àÐ'Ý#?Ð ð 	�ØÕ.ðð „kô€Cð €CÐ  )Ñ,Ô,Ð,Ð,Ð,r    )NN)#rT   rG   r%   Ú
subprocessr   r   r   r   r   Útypingr   Úpackaging.requirementsr	   Ú+opentelemetry.instrumentation.bootstrap_genr
   rY   r   rX   Ú%opentelemetry.instrumentation.versionr   Ú&opentelemetry.util._importlib_metadatar   r   Ú	getLoggerÚ__name__r9   r   r)   r4   r=   rC   rI   rK   Úlistr^   r   r    r   ú<module>rh      sß  ðð €€€Ø €€€Ø 
€
€
€
ðð ð ð ð ð ð ð ð ð ð ð ð ð ð Ð Ð Ð Ð Ð à .Ð .Ð .Ð .Ð .Ð .ðð ð ð ð ð ðð ð ð ð ð ð >Ð =Ð =Ð =Ð =Ð =ðð ð ð ð ð ð ð ð
 
ˆÔ	˜8Ñ	$Ô	$€ðð ð ð" 
ðð ñ 
„ðð&Nð Nð Nð&ð ð ð&)ð )ð )ðð ð ðð ð ð 04Ø $ð+-ð +-Ø& tœnð+-à˜Œ~ð+-ð 
ð+-ð +-ð +-ð +-ð +-ð +-r    