
    wi                        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     r/root/.openclaw/workspace/chatterbox_venv_py311/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        t          |j	        dd           pdt          |j	        dd           pddS )N tcl_libtk_lib)__VIRTUAL_PROMPT____VIRTUAL_ENV____VIRTUAL_NAME____BIN_NAME____PATH_SEP____TCL_LIBRARY____TK_LIBRARY__)
r%   r   destenv_namer"   relative_toospathsepgetattrinterpreter)r   r'   r(   s      r   r#   z!ViaTemplateActivator.replacements+   s    (,(8(@""dFV"7<00 ' 0 ; ;GL I IJJJ&w':ItLLRPR%g&98TJJPb
 
 	
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textr6   encodings
             r   r$   zViaTemplateActivator._generate6   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   rH   s     r   r@   zViaTemplateActivator.as_nameF   s    r   c                   t          | j        |          }|                    dd          }|                                D ]D\  }}|                     ||          }|                    ||                     |                    }E|S )Nr>   strict)errors)r   
__module__decodeitems_repr_unicodereplacer   )	r   r#   rH   r'   binaryrI   keyvalue	value_unis	            r   r?   z)ViaTemplateActivator.instantiate_templateI   s    T_h77}}WX}66&,,.. 	< 	<JC**7E::I<<TZZ	%:%:;;DDr   c                    |S r   rL   )r'   rW   s     r   rS   z"ViaTemplateActivator._repr_unicodeR   s    r   N)__name__rP   __qualname__r   r   staticmethodr   r*   r#   r$   r@   r?   rS   rL   r   r   r   r      s        " " ^" # # \#  	
 	
 	
          \  r   r   )r   r   r   r   r   r   )
__future__r   r9   r   sysabcr   r   	activatorr   version_infoimportlib.resourcesr
   r   r   __all__rL   r   r   <module>rd      s    " " " " " " 				  



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