o
    UhR                     @  s   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	 G dd dZ
G dd	 d	e
eZG d
d de
eZG dd de
eZg dZdS )    )annotations)ABC)OrderedDict)Path)IS_WINc                   @  s   e Zd ZdZer
dndZd%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d$S )&Describez`Given a host interpreter tell us information about what the created interpreter might look like.z.exe returnNonec                 C  s(   || _ || _d | _d | _d | _d | _d S N)interpreterdest_stdlib_stdlib_platform_system_stdlib
_conf_vars)selfr   r    r   n/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/virtualenv/create/describe.py__init__   s   
zDescribe.__init__c                 C  s   | j S r   )
script_dirr   r   r   r   bin_dir   s   zDescribe.bin_dirc                 C     | j | jd S )Nscriptsr   r   install_pathr   r   r   r   r         zDescribe.script_dirc                 C  r   )Npurelibr   r   r   r   r   r      r   zDescribe.purelibc                 C  r   )Nplatlibr   r   r   r   r   r   #   r   zDescribe.platlibc                 C  s    t t| jd f| jd ff S r   )listr   r   r   keysr   r   r   r   libs'   s    zDescribe.libsc                 C  (   | j d u rt| jjd| jd| _ | j S )Nstdlib
config_var)r   r   r   sysconfig_path_config_varsr   r   r   r   r$   +      
zDescribe.stdlibc                 C  r#   )N
platstdlibr%   )r   r   r   r'   r(   r   r   r   r   stdlib_platform1   r)   zDescribe.stdlib_platformc                 C  s   | j d u r| | j| _ | j S r   )r   _calc_config_varsr   r   r   r   r   r(   7   s   
zDescribe._config_varsc                   s     j j} fdd| D S )Nc                   s0   i | ]\}}||d ur|  jjrn|qS r   )
startswithr   prefix).0kvr   tor   r   
<dictcomp>?   s   0 z.Describe._calc_config_vars.<locals>.<dictcomp>)r   sysconfig_varsitems)r   r3   sys_varsr   r2   r   r,   =   s   zDescribe._calc_config_varsc                 C  s   dS )z.Knows means it knows how the output will look.Tr   clsr   r   r   r   can_describeA      zDescribe.can_describec                 C  s   | j jd S )N)r   partsr   r   r   r   env_nameF   s   zDescribe.env_namec                 C  s   | j |   | j  S r   )r   exe_stemsuffixr   r   r   r   exeJ      zDescribe.exec                 C  s   t )zcExecutable name without suffix - there seems to be no standard way to get this without creating it.)NotImplementedError)r9   r   r   r   r?   N   r;   zDescribe.exe_stemc                 C  s   | j | | j  S r   )r   r@   )r   namer   r   r   scriptS   s   zDescribe.scriptN)r	   r
   )__name__
__module____qualname____doc__r   r@   r   propertyr   r   r   r   r"   r$   r+   r(   r,   classmethodr:   r>   rA   r?   rE   r   r   r   r   r   
   s<    












r   c                          e Zd Ze fddZ  ZS )Python3Supportsc                   s   |j jdkot |S )N   )version_infomajorsuperr:   r8   	__class__r   r   r:   X   rB   zPython3Supports.can_describerF   rG   rH   rK   r:   __classcell__r   r   rR   r   rM   W       rM   c                      rL   )PosixSupportsc                      |j dko
t |S )NposixosrQ   r:   r8   rR   r   r   r:   ^      zPosixSupports.can_describerT   r   r   rR   r   rW   ]   rV   rW   c                      rL   )WindowsSupportsc                   rX   )NntrZ   r8   rR   r   r   r:   d   r\   zWindowsSupports.can_describerT   r   r   rR   r   r]   c   rV   r]   )r   rW   rM   r]   N)
__future__r   abcr   collectionsr   pathlibr   virtualenv.infor   r   rM   rW   r]   __all__r   r   r   r   <module>   s    M