
    3i                        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	 ddl
mZ e	rd dlmZmZ d dl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y)    )annotationsN)ABCabstractmethod)TYPE_CHECKING   )	Activator)IterableIterator)Path)Creator)   
   )filesc                :    t        |       |z  j                         S N)r   
read_bytes)module_namefilenames     U/var/www/opsc/venv/lib/python3.12/site-packages/virtualenv/activation/via_template.pyread_binaryr      s    k"X-99;;    )r   c                  ~    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y	)ViaTemplateActivatorc                    t         r   )NotImplementedError)selfs    r   	templateszViaTemplateActivator.templates   s    !!r   c                ,    t        j                  |       S )zQuote strings in the activation script.

        :param string: the string to quote

        :returns: quoted string that works in the activation script

        )shlexquote)strings    r   r    zViaTemplateActivator.quote    s     {{6""r   c                    |j                   }| j                  ||      }| j                  || 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+   sa    oo((+>NN<1A;PWX	'*.*:*:Gh'r   c                X   | j                   dn| j                   t        |j                        |j                  t        |j                  j                  |j                              t        j                  t        |j                  dd       xs dt        |j                  dd       xs ddS )N tcl_libtk_lib)__VIRTUAL_PROMPT____VIRTUAL_ENV____VIRTUAL_NAME____BIN_NAME____PATH_SEP____TCL_LIBRARY____TK_LIBRARY__)
r'   strdestenv_namer$   relative_toospathsepgetattrinterpreter)r   r)   r*   s      r   r%   z!ViaTemplateActivator.replacements3   s    (,(8(8(@"dFVFV"7<<0 ' 0 0 ; ;GLL IJJJ&w':':ItLRPR%g&9&98TJPb
 	
r   c                D   g }|D ]  }| j                  |||      }|| j                  |      z  }|j                         r|j                          t	        |      j                  d      rdnd}	|j                  |j                  |	             |j                  |        |S )Nz.ps1z	utf-8-sigutf-8)	instantiate_templateas_nameexistsunlinkr8   endswithwrite_bytesencodeappend)
r   r%   r   	to_folderr)   r+   templatetextr9   encodings
             r   r&   zViaTemplateActivator._generate>   s     	! 	#H,,\8WMDt||H55D {{}&)(m&<&<V&D{'HT[[23T"	# r   c                    |S r    )r   rK   s     r   rC   zViaTemplateActivator.as_nameP   s    r   c                    t        | j                  |      }|j                  dd      }|j                         D ]8  \  }}| j	                  ||      }|j                  || j                  |            }: |S )NrA   strict)errors)r   
__module__decodeitems_repr_unicodereplacer    )	r   r%   rK   r)   binaryrL   keyvalue	value_unis	            r   rB   z)ViaTemplateActivator.instantiate_templateS   sr    T__h7}}WX}6&,,. 	<JC**7E:I<<TZZ	%:;D	< r   c                    |S r   rO   )r)   rZ   s     r   rV   z"ViaTemplateActivator._repr_unicode\   s    r   N)returnzIterator[str])r!   r8   r]   r8   )r)   r   r]   
list[Path])r)   r   r*   r   r]   dict[str, str])
r%   r_   r   zIterable[str]rJ   r   r)   r   r]   r^   )rK   r8   r]   r8   )r%   r_   rK   r8   r)   r   r]   r8   )r)   r   rZ   r8   r]   r8   )__name__rS   __qualname__r   r   staticmethodr    r,   r%   r&   rC   rB   rV   rO   r   r   r   r      s}    " " # #	
*7DQU`g	$  r   r   )r   r8   r   r8   r]   bytes)
__future__r   r<   r   sysabcr   r   typingr   	activatorr   collections.abcr	   r
   pathlibr   virtualenv.create.creatorr   version_infoimportlib.resourcesr   r   r   __all__rO   r   r   <module>ro      s^    " 	  
 #    21w)< 0C9c CN r   