o
    Uh                     @  s   d dl mZ d dlZd dlZd dlZd dlmZmZ ddlm	Z	 ej
dkr1d dlmZ dddZnd dlmZ G dd de	eZdgZdS )    )annotationsN)ABCabstractmethod   )	Activator)   
   )filesmodule_namestrfilenamereturnbytesc                 C  s   t | |  S N)r	   
read_bytes)r
   r    r   v/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/virtualenv/activation/via_template.pyread_binary   s   r   )r   c                   @  sX   e Zd Zedd Zedd Zdd Zdd Zd	d
 Z	dd Z
dd Zedd ZdS )ViaTemplateActivatorc                 C  s   t r   )NotImplementedError)selfr   r   r   	templates      zViaTemplateActivator.templatesc                 C  s
   t | S )z
        Quote strings in the activation script.

        :param string: the string to quote
        :return: quoted string that works in the activation script
        )shlexquote)stringr   r   r   r      s   
zViaTemplateActivator.quotec                 C  s@   |j }| ||}| ||  ||}| jd ur| j|jd< |S )Nprompt)bin_dirreplacements	_generater   flag_prompt	pyenv_cfg)r   creatordest_folderr   	generatedr   r   r   generate#   s   
zViaTemplateActivator.generatec                 C  s8   | j d u rdn| j t|j|jt|j|jtjdS )N )__VIRTUAL_PROMPT____VIRTUAL_ENV____VIRTUAL_NAME____BIN_NAME____PATH_SEP__)r    r   destenv_namer   relative_toospathsep)r   r"   r#   r   r   r   r   +   s   z!ViaTemplateActivator.replacementsc           
      C  sn   g }|D ]0}|  |||}|| | }| r|  t|dr%dnd}	|||	 || q|S )Nz.ps1z	utf-8-sigutf-8)	instantiate_templateas_nameexistsunlinkr   endswithwrite_bytesencodeappend)
r   r   r   	to_folderr"   r$   templatetextr,   encodingr   r   r   r   4   s   zViaTemplateActivator._generatec                 C     |S r   r   )r   r;   r   r   r   r3   D   s   zViaTemplateActivator.as_namec           	      C  sN   t | j|}|jddd}| D ]\}}| ||}||| |}q|S )Nr1   strict)errors)r   
__module__decodeitems_repr_unicodereplacer   )	r   r   r;   r"   binaryr<   keyvalue	value_unir   r   r   r2   G   s   z)ViaTemplateActivator.instantiate_templatec                 C  r>   r   r   )r"   rH   r   r   r   rD   P   r   z"ViaTemplateActivator._repr_unicodeN)__name__rA   __qualname__r   r   staticmethodr   r%   r   r   r3   r2   rD   r   r   r   r   r      s    

			r   )r
   r   r   r   r   r   )
__future__r   r/   r   sysabcr   r   	activatorr   version_infoimportlib.resourcesr	   r   r   __all__r   r   r   r   <module>   s    
B