o
    f
                     @  s   d dl m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r-d 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   X/var/www/html/dev/env/lib/python3.10/site-packages/virtualenv/activation/via_template.pyread_binary   s   r   )r   c                   @  sL   e Z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@   |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   )   s   zViaTemplateActivator._generatec                 C     |S r   r   )r   r8   r   r   r   r0   9   s   zViaTemplateActivator.as_namec           	      C  sH   t | j|}|jddd}| D ]\}}| ||}|||}q|S )Nr.   strict)errors)r   
__module__decodeitems_repr_unicodereplace)	r   r   r8   r   binaryr9   keyvalue	value_unir   r   r   r/   <   s   z)ViaTemplateActivator.instantiate_templatec                 C  r;   r   r   )r   rE   r   r   r   rA   E   r   z"ViaTemplateActivator._repr_unicodeN)__name__r>   __qualname__r   r   r"   r   r   r0   r/   staticmethodrA   r   r   r   r   r      s    
		r   )r
   r   r   r   r   r   )
__future__r   r,   sysabcr   r   	activatorr   version_infoimportlib.resourcesr	   r   r   __all__r   r   r   r   <module>   s    
8