§
    òyIf0!  ã                  óL  — d dl mZ d dl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 d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ ddlmZ  eej                             e¦  «        ¦  «        j        Zedz  Z  G d„ d¦  «        Z! G d„ de¦  «        Z"d„ Z#ddgZ$dS )é    )ÚannotationsN)ÚABCÚabstractmethod)ÚArgumentTypeError)Úliteral_eval)ÚOrderedDict)ÚPath)ÚLogCmd)Úsafe_delete)Úrun_cmd)Ú__version__é   )ÚPyEnvCfgzdebug.pyc                  ó   — e Zd Zdd„ZdS )ÚCreatorMetaÚreturnÚNonec                ó   — d | _         d S ©N)Úerror©Úselfs    úM/var/www/piapp/venv/lib/python3.11/site-packages/virtualenv/create/creator.pyÚ__init__zCreatorMeta.__init__   s   € ØˆŒ
ˆ
ˆ
ó    N©r   r   )Ú__name__Ú
__module__Ú__qualname__r   © r   r   r   r      s(   € € € € € ðð ð ð ð ð r   r   c                  ó¾   — e Zd ZdZdd„Zdd„Zd„ Zed„ ¦   «         Zed	„ ¦   «         Z	e
d
„ ¦   «         Zed„ ¦   «         Zd„ Zd„ Zd„ Zed„ ¦   «         Zed„ ¦   «         ZdS )ÚCreatorzFA class that given a python Interpreter creates a virtual environment.r   r   c                óð   — || _         d| _        t          |j        ¦  «        | _        |j        | _        |j        | _        t          j        | j        ¦  «        | _        |j	        | _	        |j
        | _
        dS )zá
        Construct a new virtual environment creator.

        :param options: the CLI option as parsed from :meth:`add_parser_arguments`
        :param interpreter: the interpreter to create virtual environment from
        N)ÚinterpreterÚ_debugr	   ÚdestÚclearÚno_vcs_ignorer   Úfrom_folderÚ	pyenv_cfgÚapp_dataÚenv)r   Úoptionsr$   s      r   r   zCreator.__init__    sc   € ð 'ˆÔØˆŒÝ˜œÑ&Ô&ˆŒ	Ø”]ˆŒ
Ø$Ô2ˆÔÝ!Ô-¨d¬iÑ8Ô8ˆŒØÔ(ˆŒØ”;ˆŒˆˆr   Ústrc                ó„   — | j         j        › dd                     d„ |                      ¦   «         D ¦   «         ¦  «        › d�S )Nú(z, c              3  ó*   K  — | ]\  }}|› d |› �V — ŒdS )ú=Nr    )Ú.0ÚkÚvs      r   ú	<genexpr>z#Creator.__repr__.<locals>.<genexpr>1   s0   è è € Ð5ZÐ5ZÁTÀQÈ¸°j°j¸Q°j°jÐ5ZÐ5ZÐ5ZÐ5ZÐ5ZÐ5Zr   ú))Ú	__class__r   ÚjoinÚ_argsr   s    r   Ú__repr__zCreator.__repr__0   sA   € Ø”.Ô)Ð]Ð]¨D¯IªIÐ5ZÐ5ZÈTÏZÊZÉ\Ì\Ð5ZÑ5ZÔ5ZÑ,ZÔ,ZÐ]Ð]Ð]Ð]r   c                óP   — dt          | j        ¦  «        fd| j        fd| j        fgS )Nr&   r'   r(   )r.   r&   r'   r(   r   s    r   r:   zCreator._args3   s1   € à•S˜œ‘^”^Ð$Ø�d”jÐ!Ø˜dÔ0Ð1ð
ð 	
r   c                ó   — dS )a  
        Determine if we can create a virtual environment.

        :param interpreter: the interpreter in question
        :return: ``None`` if we can't create, any other object otherwise that will be forwarded to                   :meth:`add_parser_arguments`
        Tr    )Úclsr$   s     r   Ú
can_createzCreator.can_create:   s	   € ð ˆtr   c                ó¨   — |                      dd| j        ¬¦  «         |                      ddddd¬	¦  «         |                      d
dddd¬	¦  «         dS )a'  
        Add CLI arguments for the creator.

        :param parser: the CLI parser
        :param app_data: the application data folder
        :param interpreter: the interpreter we're asked to create virtual environment for
        :param meta: value as returned by :meth:`can_create`
        r&   z!directory to create virtualenv at)ÚhelpÚtypez--clearr'   Ú
store_truezZremove the destination directory if exist before starting (will overwrite files otherwise)F)r&   ÚactionrA   Údefaultz--no-vcs-ignorer(   z>don't create VCS ignore directive in the destination directoryN)Úadd_argumentÚvalidate_dest)r>   Úparserr$   Úmetar+   s        r   Úadd_parser_argumentszCreator.add_parser_argumentsE   s“   € ð 	×ÒØØ4ØÔ"ð 	ñ 	
ô 	
ð 	
ð
 	×ÒØØØØmØð 	ñ 	
ô 	
ð 	
ð 	×ÒØØ ØØQØð 	ñ 	
ô 	
ð 	
ð 	
ð 	
r   c                ó   — t           ‚)z)Perform the virtual environment creation.)ÚNotImplementedErrorr   s    r   ÚcreatezCreator.createc   s
   € õ "Ð!r   c                ó:  — d„ }t          j        ¦   «         }t          ¦   «         }|dk    rddini }t          |¦  «        D ]N}	  |j        |fi |¤Ž                     |¦  «        }||k    rŒ+t          |¦  «        ‚# t          $ r d||<   Y ŒKw xY w|rAd                     |                     ¦   «         ¦  «        }d|› d|›d	|›�}	t          |	¦  «        ‚t          j        |v r"d
|›dt          j        › d�}	t          |	¦  «        ‚t          |¦  «        }
|
                     ¦   «         r)|
                     ¦   «         rd|
› d�}	t          |	¦  «        ‚t          t          j                             t          |
¦  «        ¦  «        ¦  «                             ¦   «         }|}
|rq|                     ¦   «         r9t          j        t          |¦  «        t          j        ¦  «        rn0 |||
¦  «         |j        |j        }}||k    r |||
¦  «         |}|°qt          |
¦  «        S )zBNo path separator in the path, valid chars and must be write-able.c                óº   — t          t          j                             |j        | j        g¦  «        Ž }d|                      |¦  «        › d|› �}t          |¦  «        ‚)Núthe destination z is not write-able at )r	   ÚosÚpathÚcommonprefixÚpartsÚrelative_tor   )r&   ÚvalueÚcommonÚmsgs       r   Únon_write_ablez-Creator.validate_dest.<locals>.non_write_ablel   sW   € Ý�2œ7×/Ò/°´¸d¼jÐ0IÑJÔJÐKˆFØ] T×%5Ò%5°fÑ%=Ô%=Ð]Ð]ÐU[Ð]Ð]ˆCÝ# CÑ(Ô(Ð(r   ÚmbcsÚerrorsÚignoreNÚ zthe file system codec (z) cannot handle characters z within zdestination z& must not contain the path separator (z,) as this would break the activation scriptsrP   z already exists and is a file)ÚsysÚgetfilesystemencodingr   r.   ÚencodeÚdecodeÚ
ValueErrorr9   Úkeysr   rQ   Úpathsepr	   ÚexistsÚis_filerR   ÚabspathÚresolveÚaccessÚW_OKÚparentÚname)r>   Ú	raw_valuerY   ÚencodingÚrefusedÚkwargsÚcharÚtripÚbadrX   rV   r&   ÚbaseÚ_s                 r   rG   zCreator.validate_desth   sd  € ð	)ð 	)ð 	)õ Ô,Ñ.Ô.ˆÝ‘-”-ˆØ)1°VÒ);Ð);�(˜HÐ%Ð%ÀˆÝ˜	‘N”Nð 	%ð 	%ˆDð%Ø"�t”{ 8Ð6Ð6¨vÐ6Ð6×=Ò=¸hÑGÔG�Ø˜4’<�<ØÝ  Ñ&Ô&Ð&øÝð %ð %ð %Ø $�˜‘��ð%øøøàð 	)Ø—'’'˜'Ÿ,š,™.œ.Ñ)Ô)ˆCØm¨HÐmÐmÐQTÐmÐmÐ`iÐmÐmˆCÝ# CÑ(Ô(Ð(ÝŒ:˜Ð"Ð"ð?˜yð ?ð ?ÕRTÔR\ð ?ð ?ð ?ð õ $ CÑ(Ô(Ð(å�Y‘”ˆØ�<Š<‰>Œ>ð 	)˜eŸmšm™oœoð 	)ØI UÐIÐIÐIˆCÝ# CÑ(Ô(Ð(Ý•B”G—O’O¥C¨¡J¤JÑ/Ô/Ñ0Ô0×8Ò8Ñ:Ô:ˆØˆØð 	Ø�{Š{‰}Œ}ð ,Ý”9�S ™YœY­¬Ñ0Ô0ð ØØ�˜t UÑ+Ô+Ð+Ø”k 4¤9�!ˆDØ�tŠ|ˆ|Ø�˜t UÑ+Ô+Ð+ØˆDð ð 	õ �5‰zŒzÐs   Á'A:Á+A:Á:BÂBc                ó,  — | j                              ¦   «         r5| j        r.t          j        d| j         ¦  «         t          | j         ¦  «         |                      ¦   «          |                      ¦   «          | j        s|  	                    ¦   «          d S d S )Nz	delete %s)
r&   re   r'   ÚloggingÚdebugr   rM   Úset_pyenv_cfgr(   Úsetup_ignore_vcsr   s    r   ÚrunzCreator.runš   s‘   € ØŒ9×ÒÑÔð 	# $¤*ð 	#ÝŒM˜+ t¤yÑ1Ô1Ð1Ý˜œ	Ñ"Ô"Ð"Ø�Š‰ŒˆØ×ÒÑÔÐØÔ!ð 	$Ø×!Ò!Ñ#Ô#Ð#Ð#Ð#ð	$ð 	$r   c                óz  — t          ¦   «         | j        _        t          j                             t          j                             | j        j        ¦  «        ¦  «        | j        d<   | j        j	        | j        d<   d 
                    d„ | j        j        D ¦   «         ¦  «        | j        d<   t          | j        d<   d S )NÚhomeÚimplementationú.c              3  ó4   K  — | ]}t          |¦  «        V — Œd S r   )r.   )r3   Úis     r   r6   z(Creator.set_pyenv_cfg.<locals>.<genexpr>§   s(   è è € Ð1`Ð1`¸Qµ#°a±&´&Ð1`Ð1`Ð1`Ð1`Ð1`Ð1`r   Úversion_infoÚ
virtualenv)r   r*   ÚcontentrQ   rR   Údirnamerg   r$   Úsystem_executabler~   r9   r‚   r   r   s    r   ry   zCreator.set_pyenv_cfg£   s�   € Ý!,¡¤ˆŒÔÝ!#¤§¢µ´·²ÀÔAQÔAcÑ1dÔ1dÑ!eÔ!eˆŒ�vÑØ+/Ô+;Ô+JˆŒÐ'Ñ(Ø),¯ªÐ1`Ð1`À$ÔBRÔB_Ð1`Ñ1`Ô1`Ñ)`Ô)`ˆŒ�~Ñ&Ý'2ˆŒ�|Ñ$Ð$Ð$r   c                ót   — | j         dz  }|                     ¦   «         s|                     dd¬¦  «         dS dS )z9Generate ignore instructions for version control systems.z
.gitignorez(# created by virtualenv automatically
*
zutf-8)rn   N)r&   re   Ú
write_text)r   Ú
git_ignores     r   rz   zCreator.setup_ignore_vcsª   sR   € ð ”Y Ñ-ˆ
Ø× Ò Ñ"Ô"ð 	bØ×!Ò!Ð"NÐY`Ð!ÑaÔaÐaÐaÐað	bð 	br   c                óœ   — | j         €?| j        �8t          | j        |                      ¦   «         | j        | j        ¦  «        | _         | j         S )zb:return: debug information about the virtual environment (only valid after :meth:`create` has run))r%   ÚexeÚget_env_debug_infoÚdebug_scriptr+   r,   r   s    r   rx   zCreator.debug¶   sD   € ð Œ;Ð 4¤8Ð#7Ý,¨T¬X°t×7HÒ7HÑ7JÔ7JÈDÌMÐ[_Ô[cÑdÔdˆDŒKØŒ{Ðr   c                 ó   — t           S r   )ÚDEBUG_SCRIPTr    r   r   r�   zCreator.debug_script½   s   € åÐr   Nr   )r   r.   )r   r   r   Ú__doc__r   r;   r:   Úclassmethodr?   rJ   r   rM   rG   r{   ry   rz   Úpropertyrx   Ústaticmethodr�   r    r   r   r"   r"      s(  € € € € € ØPÐPðð ð ð ð ^ð ^ð ^ð ^ð
ð 
ð 
ð ðð ñ „[ðð ð
ð 
ñ „[ð
ð: ð"ð "ñ „^ð"ð ð/ð /ñ „[ð/ðb$ð $ð $ð3ð 3ð 3ðbð bð bð ðð ñ „Xðð ðð ñ „\ðð ð r   r"   c                ó¤  — |                      ¦   «         }|                     dd ¦  «         |                     |¦  «        5 }t          | ¦  «        t          |¦  «        g}t	          j        dt          |¦  «        ¦  «         t          |¦  «        \  }}}d d d ¦  «         n# 1 swxY w Y   	 |dk    r:|rt          |¦  «        }	n<|dk    rd|v rt          |¦  «        ‚t          |¦  «        ‚t          j        |¦  «        }	|r||	d<   n+# t          $ r}
|||t          |
¦  «        dœcY d }
~
S d }
~
ww xY wd|	v rd	|	d         v r|	d         d	         d= |	S )
NÚ
PYTHONPATHzdebug via %rr   é   ÚfileÚerr)Úoutr˜   Ú
returncodeÚ	exceptionr^   rR   )ÚcopyÚpopÚensure_extractedr.   rw   rx   r
   r   r   ÚOSErrorÚ	ExceptionÚjsonÚloadsÚrepr)Úenv_exer�   r+   r,   Údebug_script_extractedÚcmdÚcoder™   r˜   Úresultr›   s              r   rŒ   rŒ   Â   s±  € Ø
�(Š(‰*Œ*€CØ‡G‚GˆL˜$ÑÔÐà	×	"Ò	" <Ñ	0Ô	0ð &Ð4JÝ�7‰|Œ|�SÐ!7Ñ8Ô8Ð9ˆÝŒ�n¥f¨S¡k¤kÑ2Ô2Ð2Ý  ™œ‰ˆˆc�3ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &ð
ZØ�1Š9ˆ9Øð %Ý% cÑ*Ô*��à˜1’9�9 ¨3  å! #™,œ,Ð&Ý ‘n”nÐ$å”Z ‘_”_ˆFØð 	 ØˆF�5‰MøøÝð Zð Zð ZØ 3°dÍÈiÉÌÐYÐYÐYÐYÐYÐYÐYÐYøøøøðZøøøà�€€˜6 V¨E¤]Ð2Ð2Ø�5ŒM˜&Ô! !Ð$Ø€Ms2   Á AB Â B$Â'B$Â,AD Ä
D0ÄD+Ä%D0Ä+D0)%Ú
__future__r   r¡   rw   rQ   r^   Úabcr   r   Úargparser   Úastr   Úcollectionsr   Úpathlibr	   Ú#virtualenv.discovery.cached_py_infor
   Úvirtualenv.util.pathr   Úvirtualenv.util.subprocessr   Úvirtualenv.versionr   r*   r   rR   rg   Ú__file__rk   ÚHEREr�   r   r"   rŒ   Ú__all__r    r   r   ú<module>r¶      sœ  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø 	€	€	€	Ø 
€
€
€
Ø #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø &Ð &Ð &Ð &Ð &Ð &Ø Ð Ð Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð à 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø .Ð .Ð .Ð .Ð .Ð .Ø *Ð *Ð *Ð *Ð *Ð *à Ð Ð Ð Ð Ð à€tˆBŒG�OŠO˜HÑ%Ô%Ñ&Ô&Ô-€Ø�jÑ €ðð ð ð ð ñ ô ð ð
bð bð bð bð bˆcñ bô bð bðJð ð ð< Øð€€€r   