
    3i(                        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 e	rd dlmZ d dlmZ  G d	 d
      Z G d dee      Z G d dee      Z G d dee      Zg dZy)    )annotations)ABC)OrderedDict)Path)TYPE_CHECKING)IS_WIN)Any)
PythonInfoc                     e Zd ZdZerdndZddZedd       Zedd       Z	edd       Z
edd       Zedd	       Zedd
       Zedd       Zedd       ZddZedd       Zedd       Zedd       Zedd       ZddZy)Describez`Given a host interpreter tell us information about what the created interpreter might look like.z.exe c                X    || _         || _        d | _        d | _        d | _        d | _        y N)interpreterdest_stdlib_stdlib_platform_system_stdlib
_conf_vars)selfr   r   s      M/var/www/opsc/venv/lib/python3.12/site-packages/virtualenv/create/describe.py__init__zDescribe.__init__   s/    &	 $"    c                    | j                   S r   )
script_dirr   s    r   bin_dirzDescribe.bin_dir   s    r   c                R    | j                   | j                  j                  d      z  S )Nscriptsr   r   install_pathr   s    r   r   zDescribe.script_dir!   "    yy4++88CCCr   c                R    | j                   | j                  j                  d      z  S )Npurelibr    r   s    r   r$   zDescribe.purelib%   r"   r   c                R    | j                   | j                  j                  d      z  S )Nplatlibr    r   s    r   r&   zDescribe.platlib)   r"   r   c                z    t        t        | j                  d f| j                  d ff      j	                               S r   )listr   r&   r$   keysr   s    r   libszDescribe.libs-   s2    K$,,!5d7K LMRRTUUr   c                    | j                   5t        | j                  j                  d| j                              | _         | j                   S )Nstdlib
config_var)r   r   r   sysconfig_path_config_varsr   s    r   r,   zDescribe.stdlib1   s?    << 0 0 ? ?UYUfUf ? ghDL||r   c                    | j                   5t        | j                  j                  d| j                              | _         | j                   S )N
platstdlibr-   )r   r   r   r/   r0   r   s    r   stdlib_platformzDescribe.stdlib_platform7   sD      ($()9)9)H)Hbfbsbs)H)t$uD!$$$r   c                r    | j                    | j                  | j                        | _         | j                   S r   )r   _calc_config_varsr   r   s    r   r0   zDescribe._config_vars=   s,    ??""44TYY?DOr   c           	         | j                   j                  }|j                         D ci c]?  \  }}|t        |t              r'|j                  | j                   j                        r|n|A c}}S c c}}w r   )r   sysconfig_varsitems
isinstancestr
startswithprefix)r   tosys_varskvs        r   r5   zDescribe._calc_config_varsC   sg    ##22gogugugw
_c_`bcAjC(Q\\$:J:J:Q:Q-RXYY
 	
 
s   AA2c                     y)z.Knows means it knows how the output will look.T )clsr   s     r   can_describezDescribe.can_describeI   s     r   c                4    | j                   j                  d   S )N)r   partsr   s    r   env_namezDescribe.env_nameN   s    yyr""r   c                X    | j                   | j                          | j                   z  S r   )r   exe_stemsuffixr   s    r   exezDescribe.exeR   s%    || 1$++???r   c                    t         )zcExecutable name without suffix - there seems to be no standard way to get this without creating it.)NotImplementedError)rC   s    r   rJ   zDescribe.exe_stemV   s
     "!r   c                <    | j                   | | j                   z  S r   )r   rK   )r   names     r   scriptzDescribe.script[   s    D6$++!777r   N)r   r   r   r
   returnNone)rR   r   )rR   z
list[Path])rR   dict[str, Any])r=   r   rR   rT   r   r
   rR   bool)rR   r:   )rP   r:   rR   r   )__name__
__module____qualname____doc__r   rK   r   propertyr   r   r$   r&   r*   r,   r3   r0   r5   classmethodrD   rH   rL   rJ   rQ   rB   r   r   r   r      s   jV2F   D D D D D D V V  
 % %
  

   # # @ @ " "8r   r   c                      e Zd Zy)Python3SupportsN)rW   rX   rY   rB   r   r   r^   r^   _   s    r   r^   c                  *     e Zd Zed fd       Z xZS )PosixSupportsc                D    |j                   dk(  xr t        | 	  |      S )NposixossuperrD   rC   r   	__class__s     r   rD   zPosixSupports.can_described   s!    ~~(NUW-A+-NNr   rU   rW   rX   rY   r\   rD   __classcell__rg   s   @r   r`   r`   c   s    O Or   r`   c                  *     e Zd Zed fd       Z xZS )WindowsSupportsc                D    |j                   dk(  xr t        | 	  |      S )Nntrc   rf   s     r   rD   zWindowsSupports.can_describej   s!    ~~%K%'*>{*KKr   rU   rh   rj   s   @r   rl   rl   i   s    L Lr   rl   )r   r`   r^   rl   N)
__future__r   abcr   collectionsr   pathlibr   typingr   virtualenv.infor   r	   python_discoveryr
   r   r^   r`   rl   __all__rB   r   r   <module>rw      sb    "  #    "+L8 L8^	h 	OHc OLh Lr   