
    .Ph                        d dl mZ d dlZd dlZd dlmZ d dlmZ d dlm	Z	m
Z
 d dlmZ  ej        e          Z G d de
          Z G d	 d
e	e          Zd
dgZdS )    )annotationsN)ABC)Path)CreatorCreatorMeta)fs_supports_symlinkc                  L     e Zd Zd fdZed             Zed             Z xZS )ViaGlobalRefMetareturnNonec                    t                                                       d | _        d | _        t	                      s	d| _        d S d S )Nz(the filesystem does not supports symlink)super__init__
copy_errorsymlink_errorr   self	__class__s    d/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/virtualenv/create/via_global_ref/api.pyr   zViaGlobalRefMeta.__init__   sQ    !"$$ 	L!KD	L 	L    c                    | j          S N)r   r   s    r   can_copyzViaGlobalRefMeta.can_copy   s    ?""r   c                    | j          S r   )r   r   s    r   can_symlinkzViaGlobalRefMeta.can_symlink   s    %%%r   r   r   )__name__
__module____qualname__r   propertyr   r   __classcell__r   s   @r   r
   r
      sy        L L L L L L # # X# & & X& & & & &r   r
   c                  v     e Zd Zd fdZed             Ze fd            Zd Zd Z	d Z
 fd	Z fd
Z xZS )ViaGlobalRefApir   r   c                    t                                          ||           |                     |          | _        |j        | _        d S r   )r   r   _should_symlinksymlinkssystem_siteenable_system_site_package)r   optionsinterpreterr   s      r   r   zViaGlobalRefApi.__init__    sC    +...,,W55*1*='''r   c                   t          | dd          t          | dd          }}|                     d          |                     d          }}dD ]/}||k    r|nd }||k    r|nd }|du r|du r dS |du r dS |du r dS 0dS )NcopiesFr(   )clizenv varfiledefaultT)getattr
get_source)r+   r.   r(   copy_srcsym_srclevels_optc_opts           r   r'   zViaGlobalRefApi._should_symlink%   s     #7He<<ggz[`>a>a#..x88':L:LZ:X:X': 	 	E '5 0 0HHdE&%//FFTE}}$uu}}tt}}uu ur   c                   t                                          ||||           |                    ddddd           |j        s|j        sd}t          |          |                                }|j        r|                    dd	dd
d           |j        r#|                    dd|j         ddd           d S d S )Nz--system-site-packagesF
store_truer)   zCgive the virtual environment access to the system site-packages dir)r1   actiondesthelpz(neither symlink or copy method supportedz
--symlinksTr(   zZtry to use symlinks rather than copies, when symlinks are not the default for the platformz--copiesz--always-copyr.   z[try to use copies rather than symlinks, even when symlinks are the default for the platform)r   add_parser_argumentsadd_argumentr   r   RuntimeErroradd_mutually_exclusive_group)clsparserr,   metaapp_datamsggroupr   s          r   r>   z$ViaGlobalRefApi.add_parser_arguments6   s   $$V[$III$V 	 	
 	
 	
  	$ 	$<Cs###3355 	#q     = 	 ,,#r      	 	r   c                .    |                                   d S r   )install_patchr   s    r   createzViaGlobalRefApi.createV   s    r   c                &   |                                  }|rz| j        dz  }t                              d|           |                    dd           | j        dz  }t                              d|           |                    |d           d S d S )Nz_virtualenv.pthz%create virtualenv import hook file %szimport _virtualenvutf-8encoding_virtualenv.pyz	create %s)env_patch_textpurelibLOGGERdebug
write_text)r   textpth	dest_paths       r   rI   zViaGlobalRefApi.install_patchY   s    ""$$ 	9,!22CLL@#FFFNN/'NBBB'77ILLi000   88888	9 	9r   c                   | j                             t          t                    j        dz            5 }|                    d          }|                    dt          t          j	        
                    t          | j                  t          | j                                                cddd           S # 1 swxY w Y   dS )zJPatch the distutils package to not be derailed by its configuration files.rO   rL   rM   z"__SCRIPT_DIR__"N)rE   ensure_extractedr   __file__parent	read_textreplacereprospathrelpathstr
script_dirrQ   )r   resolved_pathrU   s      r   rP   zViaGlobalRefApi.env_patch_textc   s    ]++DNN,ADT,TUU 	tYf **G*<<D<< 2DT_I]I]_bcgco_p_p9q9q4r4rss	t 	t 	t 	t 	t 	t 	t 	t 	t 	t 	t 	t 	t 	t 	t 	t 	t 	ts   A;B==CCc                Z    g t                                                      d| j        fS )Nglobal)r   _argsr*   r   s    r   rg   zViaGlobalRefApi._argsi   s'    NN8T-L"MNNr   c                n    t                                                       | j        rdnd| j        d<   d S )Ntruefalsezinclude-system-site-packages)r   set_pyenv_cfgr*   	pyenv_cfgr   s    r   rk   zViaGlobalRefApi.set_pyenv_cfgl   s9    CGCb9oho5666r   r   )r   r   r    r   staticmethodr'   classmethodr>   rJ   rI   rP   rg   rk   r"   r#   s   @r   r%   r%      s        > > > > > >
   \      [>  9 9 9t t tO O O O Op p p p p p p p pr   r%   )
__future__r   loggingr_   abcr   pathlibr   virtualenv.create.creatorr   r   virtualenv.infor   	getLoggerr   rR   r
   r%   __all__ r   r   <module>rx      s   " " " " " "  				             : : : : : : : : / / / / / /		8	$	$& & & & &{ & & &"Op Op Op Op Opgs Op Op Opf r   