§
    8xßd  ã                   óž   — 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mZmZ d„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zej        ddddfd„ZdS )é    N)ÚabspathÚexistsÚ
expanduserÚisdirÚjoin)Úfind_executable)Úmk_relative_osx)Úcheck_call_envÚget_site_packagesÚrec_globc                 ó’   — t          | dg¦  «        }|D ]2}t          j        dk    rt          ||¦  «         Œ#t	          d¦  «         Œ3dS )aì  
    invokes functions in post module to relink to libraries in conda env

    :param pkg_path: look for shared objects to relink in pkg_path
    :param build_prefix: path to conda environment which contains lib/. to find
        runtime libraries.

    .. note:: develop mode builds the extensions in place and makes a link to
        package in site-packages/. The build_prefix points to conda environment
        since runtime libraries should be loaded from environment's lib/. first
    z.soÚdarwinz"Nothing to do on Linux or Windows.N)r   ÚsysÚplatformr	   Úprint)Úpkg_pathÚbuild_prefixÚ	bin_filesÚb_files       ú3lib/python3.11/site-packages/conda_build/develop.pyÚrelink_sharedobjectsr      s`   € õ ˜ E 7Ñ+Ô+€IØð 8ð 8ˆÝŒ<˜8Ò#Ð#Ý˜F LÑ1Ô1Ð1Ð1åÐ6Ñ7Ô7Ð7Ð7ð	8ð 8ó    c                 óv  — t          | d¦  «        }t          |d¦  «        5 }t          |¦  «        5 }|                     ¦   «         }ddd¦  «         n# 1 swxY w Y   |dz   |v rt          d|z   ¦  «         n*|                     |dz   ¦  «         t          d|z   ¦  «         ddd¦  «         dS # 1 swxY w Y   dS )a  
    Append pkg_path to conda.pth in site-packages directory for current
    environment. Only add path if it doens't already exist.

    :param sp_dir: path to site-packages/. directory
    :param pkg_path: the package path to append to site-packes/. dir.
    ú	conda.pthÚaNú
zpath exists, skipping zadded )r   ÚopenÚ	readlinesr   Úwrite)Úsp_dirr   Úc_fileÚfÚcfÚpkgs_in_dev_modes         r   Úwrite_to_conda_pthr%   !   sD  € õ &˜+Ñ&Ô&€FÝ	ˆfcÑ	Ô	ð '˜aÝ&‰\Œ\ð 	.˜Rð  "Ÿ|š|™~œ~Ðð		.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.ð d‰?Ð.Ð.Ð.ÝÐ*¨XÑ5Ñ6Ô6Ð6Ð6àGŠGH˜t‘OÑ$Ô$Ð$Ý(˜XÑ%Ñ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð 'ð 's5   ¡B.±AÁB.ÁA	ÁB.ÁA	ÁAB.Â.B2Â5B2c                 ót   — t          | d¦  «        }t          |¦  «        st          j        d| › d¦  «         |S )z1Return full path to setup.py or exit if not foundzsetup.pyzNo setup.py found in z
. Exiting.)r   r   r   Úexit)Úpath_Úsetup_pys     r   Úget_setup_pyr*   9   sD   € õ E˜:Ñ&Ô&€Hå(ÑÔð <ÝŒÐ:¨Ð:Ð:Ð:Ñ;Ô;Ð;à€Or   c                 ó–   — d| dg}t          |¦  «         t          dd                     |¦  «        z   ¦  «         t          d¦  «         dS )zZ
    This invokes:
    $ python setup.py clean

    :param setup_py: path to setup.py
    ÚpythonÚcleanúCompleted: ú ú/===============================================N©r
   r   r   ©r)   Úcmds     r   Ú_cleanr4   D   sP   € ð X˜wÐ
'€CÝ3ÑÔÐÝ	ˆ-˜#Ÿ(š( 3™-œ-Ñ
'Ñ(Ô(Ð(Ý	Ð
;Ñ<Ô<Ð<Ð<Ð<r   c                 ó˜   — d| ddg}t          |¦  «         t          dd                     |¦  «        z   ¦  «         t          d¦  «         dS )zË
    Define a develop function - similar to build function
    todo: need to test on win32 and linux

    It invokes:
    $ python setup.py build_ext --inplace

    :param setup_py: path to setup.py
    r,   Ú	build_extz	--inplacer.   r/   r0   Nr1   r2   s     r   Ú
_build_extr7   R   sR   € ð X˜{¨KÐ
8€CÝ3ÑÔÐÝ	ˆ-˜#Ÿ(š( 3™-œ-Ñ
'Ñ(Ô(Ð(Ý	Ð
;Ñ<Ô<Ð<Ð<Ð<r   c                 óÊ  — t          | d¦  «        }t          | d¦  «        }d}t          |d¦  «        5 }t          |¦  «        5 }|D ]5}||dz   k    r|                     |¦  «         Œ!t          d|z   ¦  «         d}Œ6	 ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   |s!t          d	|z   ¦  «         t          d
¦  «         t	          j        ||¦  «         dS )a@  
    Look for pkg_path in conda.pth file in site-packages directory and remove
    it. If pkg_path is not found in conda.pth, it means package is not
    installed in 'development mode' via conda develop.

    :param sp_dir: path to site-packages/. directory
    :param pkg_path: the package path to be uninstalled.
    r   zconda.pth.tempFÚwr   zuninstalled: TNz!conda.pth does not contain path: z'package not installed via conda develop)r   r   r   r   ÚshutilÚmove)r    r   Úo_c_pthÚn_c_pthÚfoundÚnew_cÚorig_cÚlines           r   Ú
_uninstallrB   d   s  € õ 6˜;Ñ'Ô'€GÝ6Ð+Ñ,Ô,€GØ€EÝ	ˆgsÑ	Ô	ð !˜uÝ'‰]Œ]ð 	!˜fØð !ð !Ø˜8 d™?Ò*Ð*Ø—K’K Ñ%Ô%Ð%Ð%å˜/¨HÑ4Ñ5Ô5Ð5Ø EEð!ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð ð 9ÝÐ1°HÑ<Ñ=Ô=Ð=ÝÐ7Ñ8Ô8Ð8å
„K˜Ñ!Ô!Ð!Ð!Ð!s5   ³B Á9B	Á=B Â	B	ÂB ÂB	ÂB Â B$Â'B$Fc           	      óª  — t          |¦  «        st          j        d|z  ¦  «         t          d|¬¦  «        sJ ‚t	          |d                     t          t          j        j        ¦  «        t          t          j        j	        ¦  «        f¦  «        ¦  «        }t          | t          ¦  «        r| g} | D ]¡}t          t          |¦  «        ¦  «        }|rt          ||¦  «          d S |s|r6t          |¦  «        }	|rt          |	¦  «         |s d S |rt!          |	¦  «         |st#          ||¦  «         t%          ||¦  «         t'          d|z   ¦  «         Œ¢d S )Nz_Error: environment does not exist: %s
#
# Use 'conda create' to create the environment first.
#r,   )Úprefixú.zcompleted operation for: )r   r   r'   r   r   r   ÚstrÚversion_infoÚmajorÚminorÚ
isinstancer   r   rB   r*   r4   r7   r%   r   r   )
Úrecipe_dirsrD   Úno_pth_filer6   r-   Ú	uninstallr    Úpathr   r)   s
             r   ÚexecuterO   €   s•  € õ ‰=Œ=ð 
ÝŒðð
 ññ	
ô 	
ð 	
õ ˜8¨FÐ3Ñ3Ô3Ð3Ð3Ð3õ Ø—’#cÔ.Ô4Ñ5Ô5µs½3Ô;KÔ;QÑ7RÔ7RÐSÑTÔTñô €Fõ +sÑ#Ô#ð $Ø"mˆàð 6ð 6ˆÝ: dÑ+Ô+Ñ,Ô,ˆàð 	åv˜xÑ(Ô(Ð(ØˆFˆFàð 		%Ið 		%Ý# HÑ-Ô-ˆHØð ÝxÑ Ô Ð Ø ð ØFFð ð %Ý˜8Ñ$Ô$Ð$àð 	1Ý˜v xÑ0Ô0Ð0õ 	˜X vÑ.Ô.Ð.ÝÐ)¨HÑ4Ñ5Ô5Ð5Ð5ð36ð 6r   )r:   r   Úos.pathr   r   r   r   r   Úconda_build.os_utils.externalr   Úconda_build.postr	   Úconda_build.utilsr
   r   r   r   r%   r*   r4   r7   rB   rD   rO   © r   r   ú<module>rU      s  ðð €€€Ø 
€
€
€
Ø <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <à 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ Ið8ð 8ð 8ð*'ð 'ð 'ð0ð ð ð=ð =ð =ð=ð =ð =ð$"ð "ð "ð< Œ:ØØØ
Øð56ð 56ð 56ð 56ð 56ð 56r   