
    .Ph                        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    rd dlmZ ddZnd dlmZ  G d de	e          ZdgZdS )    )annotationsN)ABCabstractmethod   )	Activator)   
   )filesmodule_namestrfilenamereturnbytesc                J    t          |           |z                                  S N)r
   
read_bytes)r   r   s     b/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/virtualenv/activation/via_template.pyread_binaryr      s!    k""X-99;;;    )r   c                  n    e Zd Zed             Zed             Zd Zd Zd Z	d Z
d Zed             Zd	S )
ViaTemplateActivatorc                    t           r   )NotImplementedError)selfs    r   	templateszViaTemplateActivator.templates   s    !!r   c                *    t          j        |           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)strings    r   r   zViaTemplateActivator.quote   s     {6"""r   c                    |j         }|                     ||          }|                     ||                                 ||          }| j        | j        |j        d<   |S )Nprompt)bin_dirreplacements	_generater   flag_prompt	pyenv_cfg)r   creatordest_folderr#   	generateds        r   generatezViaTemplateActivator.generate#   s_    o((+>>NN<1A1A;PWXX	'*.*:Gh'r   c                    | j         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(   s      r   r#   z!ViaTemplateActivator.replacements+   sX    (,(8(@""dFV"7<00 ' 0 ; ;GL I IJJJ
 
 	
r   c                   g }|D ]}|                      |||          }||                     |          z  }|                                r|                                 t	          |                              d          rdnd}	|                    |                    |	                     |                    |           |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textr2   encodings
             r   r$   zViaTemplateActivator._generate4   s    	! 	# 	#H,,\8WMMDt||H555D {{}} &)(mm&<&<V&D&DQ{{'HT[[22333T""""r   c                    |S r    )r   rB   s     r   r:   zViaTemplateActivator.as_nameD   s    r   c                   t          | j        |          }|                    dd          }|                                D ]D\  }}|                     ||          }|                    ||                     |                    }E|S )Nr8   strict)errors)r   
__module__decodeitems_repr_unicodereplacer   )	r   r#   rB   r'   binaryrC   keyvalue	value_unis	            r   r9   z)ViaTemplateActivator.instantiate_templateG   s    T_h77}}WX}66&,,.. 	< 	<JC**7E::I<<TZZ	%:%:;;DDr   c                    |S r   rF   )r'   rQ   s     r   rM   z"ViaTemplateActivator._repr_unicodeP   s    r   N)__name__rJ   __qualname__r   r   staticmethodr   r*   r#   r$   r:   r9   rM   rF   r   r   r   r      s        " " ^" # # \#  
 
 
          \  r   r   )r   r   r   r   r   r   )
__future__r   r5   r   sysabcr   r   	activatorr   version_infoimportlib.resourcesr
   r   r   __all__rF   r   r   <module>r^      s    " " " " " " 				  



 # # # # # # # #            w))))))< < < < < 0/////> > > > >9c > > >D r   