ó
    Ñ]jƒ  ã                  ó  • S SK Jr  S SKrS SKrS SKJr  S SKJr  S SKJ	r	  S SK
JrJr  S SKJr  \	(       a  S SKJr  S S	KJr  S S
KJr  S SKJr  S SKJr  \R0                  " \5      r " S S\5      r " S S\\5      rSS/rg)é    )ÚannotationsN)ÚABC)ÚPath)ÚTYPE_CHECKING)ÚCreatorÚCreatorMeta)Úfs_supports_symlink)ÚArgumentParser)ÚAny)Ú
PythonInfo)ÚAppData)ÚVirtualEnvOptionsc                  óT   ^ • \ rS rSrSU 4S jjr\SS j5       r\SS j5       rSrU =r	$ )ÚViaGlobalRefMetaé   c                ól   >• [         TU ]  5         S U l        S U l        [	        5       (       d  SU l        g g )Nz(the filesystem does not supports symlink)ÚsuperÚ__init__Ú
copy_errorÚsymlink_errorr	   ©ÚselfÚ	__class__s    €Úa/home/mande/repo/quber/.venv/lib/python3.13/site-packages/virtualenv/create/via_global_ref/api.pyr   ÚViaGlobalRefMeta.__init__   s3   ø€ Ü‰ÑÔØˆŒØ!ˆÔÜ"×$Ñ$Ø!KˆDÕð %ó    c                ó$   • U R                   (       + $ ©N)r   ©r   s    r   Úcan_copyÚViaGlobalRefMeta.can_copy    s   € à—?‘?Ô"Ð"r   c                ó$   • U R                   (       + $ r   )r   r   s    r   Úcan_symlinkÚViaGlobalRefMeta.can_symlink$   s   € à×%Ñ%Ô%Ð%r   )r   r   ©ÚreturnÚNone)r&   Úbool)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   Úpropertyr    r#   Ú__static_attributes__Ú__classcell__©r   s   @r   r   r      s1   ø† ÷Lð ó#ó ð#ð ó&ó ö&r   r   c                  óâ   ^ • \ rS rSrSU 4S jjr\(       a  \SS j5       r\SS j5       r\	SS j5       r
\          SU 4S jj5       rSS jrSS jrSS	 jrSU 4S
 jjrSU 4S jjrSrU =r$ )ÚViaGlobalRefApié)   c                ór   >• [         TU ]  X5        U R                  U5      U l        UR                  U l        g r   )r   r   Ú_should_symlinkÚsymlinksÚsystem_siteÚenable_system_site_package)r   ÚoptionsÚinterpreterr   s      €r   r   ÚViaGlobalRefApi.__init__*   s0   ø€ Ü‰Ñ˜Ô.Ø×,Ñ,¨WÓ5ˆŒØ*1×*=Ñ*=ˆÕ'r   c                ó   • g r   © r   s    r   ÚpurelibÚViaGlobalRefApi.purelib1   s   € Ø#&r   c                ó   • g r   r=   r   s    r   Ú
script_dirÚViaGlobalRefApi.script_dir4   s   € Ø&)r   c                óâ   • [        U SS5      [        U SS5      p!U R                  S5      U R                  S5      pCS H/  nXE:X  a  UOS nX5:X  a  UOS nUSL a  USL a    gUSL a    gUSL d  M/    g   g)NÚcopiesFr6   )Úclizenv varÚfileÚdefaultT)ÚgetattrÚ
get_source)r9   rD   r6   Úcopy_srcÚsym_srcÚlevelÚs_optÚc_opts           r   r5   ÚViaGlobalRefApi._should_symlink7   s†   € ô # 7¨H°eÓ<¼gÀgÈzÐ[`Ó>a�Ø#×.Ñ.¨xÓ8¸'×:LÑ:LÈZÓ:X�'Û:ˆEØ 'Ó 0‘H°dˆEØ&Ó/‘F°TˆEØ˜Š} ¨$¢ÙØ˜Š}ÙØ˜Œ}Ùñ ;ð r   c           	     ó`  >• [         TU ]  XX45        UR                  SSSSSS9  UR                  (       d�  UR                  (       d  / nUR
                  (       a  UR                  SUR
                   35        UR                  (       a  UR                  SUR                   35        S	S
R                  U5       3n[        U5      eUR                  5       nUR                  (       a  UR                  SSSSSS9  UR                  (       a$  UR                  SSUR                  (       + SSSS9  g g )Nz--system-site-packagesFÚ
store_truer7   zCgive the virtual environment access to the system site-packages dir)rG   ÚactionÚdestÚhelpz	symlink: zcopy: z*neither symlink or copy method supported: z, z
--symlinksTr6   zZtry to use symlinks rather than copies, when symlinks are not the default for the platformz--copiesz--always-copyrD   z[try to use copies rather than symlinks, even when symlinks are the default for the platform)r   Úadd_parser_argumentsÚadd_argumentr#   r    r   Úappendr   ÚjoinÚRuntimeErrorÚadd_mutually_exclusive_group)	ÚclsÚparserr:   ÚmetaÚapp_dataÚerrorsÚmsgÚgroupr   s	           €r   rU   Ú$ViaGlobalRefApi.add_parser_argumentsH   s$  ø€ ô 	‰Ñ$ V¸$ÔIØ×ÑØ$ØØØØVð 	ñ 	
ð ××¨¯¯ØˆFØ×!×!Ø—‘ 	¨$×*<Ñ*<Ð)=Ð>Ô?Ø��Ø—‘  t§¡Ð&7Ð8Ô9Ø>¸t¿y¹yÈÓ?PÐ>QÐRˆCÜ˜sÓ#Ð#Ø×3Ñ3Ó5ˆØ××Ø×ÑØØØ#ØØqð ñ ð �=�=Ø×ÑØØØ ×,Ñ,Ô,Ø#ØØrð ò ð r   c                ó$   • U R                  5         g r   )Úinstall_patchr   s    r   ÚcreateÚViaGlobalRefApi.createo   s   € Ø×ÑÕr   c                ó  • U R                  5       nU(       ak  U R                  S-  n[        R                  SU5        UR	                  SSS9  U R                  S-  n[        R                  SU5        UR	                  USS9  g g )Nz_virtualenv.pthz%create virtualenv import hook file %szimport _virtualenvúutf-8©Úencodingú_virtualenv.pyz	create %s)Úenv_patch_textr>   ÚLOGGERÚdebugÚ
write_text)r   ÚtextÚpthÚ	dest_paths       r   rd   ÚViaGlobalRefApi.install_patchr   sw   € Ø×"Ñ"Ó$ˆÞØ—,‘,Ð!2Ñ2ˆCÜ�L‰LÐ@À#ÔFØ�N‰NÐ/¸'ˆNÑBØŸ™Ð'7Ñ7ˆIÜ�L‰L˜ iÔ0Ø× Ñ  °Ð Ò8ð r   c                ó~  • U R                   R                  [        [        5      R                  S-  5       nUR                  SS9nUR                  S[        [        R                  R                  [        U R                  5      [        U R                  5      5      5      5      sSSS5        $ ! , (       d  f       g= f)zJPatch the distutils package to not be derailed by its configuration files.rk   rh   ri   z"__SCRIPT_DIR__"N)r^   Úensure_extractedr   Ú__file__ÚparentÚ	read_textÚreplaceÚreprÚosÚpathÚrelpathÚstrrA   r>   )r   Úresolved_pathrp   s      r   rl   ÚViaGlobalRefApi.env_patch_text|   s€   € à�]‰]×+Ñ+¬D´«N×,AÑ,AÐDTÑ,TÔUÐYfØ ×*Ñ*°GÐ*Ð<ˆDà—<‘<Ð 2´D¼¿¹¿¹ÌÈTÏ_É_ÓI]Ô_bÐcg×coÑcoÓ_pÓ9qÓ4rÓs÷ V×U×Uús   ¶A.B.Â.
B<c                ó@   >• / [         TU ]  5       QSU R                  4P$ )NÚglobal)r   Ú_argsr8   r   s    €r   rƒ   ÚViaGlobalRefApi._argsƒ   s$   ø€ ØN”‘‘“ÐN 8¨T×-LÑ-LÐ"MÐNÐNr   c                óf   >• [         TU ]  5         U R                  (       a  SOSU R                  S'   g )NÚtrueÚfalsezinclude-system-site-packages)r   Úset_pyenv_cfgr8   Ú	pyenv_cfgr   s    €r   rˆ   ÚViaGlobalRefApi.set_pyenv_cfg†   s(   ø€ Ü‰ÑÔØCG×Cb×Cb¹Ðhoˆ�‰Ð5Ò6r   )r8   r6   )r9   r   r:   r   r&   r'   )r&   r   )r9   r   r&   r(   )
r\   r
   r:   r   r]   r   r^   r   r&   r'   r%   )r&   r~   )r&   zlist[tuple[str, Any]])r)   r*   r+   r,   r   r   r-   r>   rA   Ústaticmethodr5   ÚclassmethodrU   re   rd   rl   rƒ   rˆ   r.   r/   r0   s   @r   r2   r2   )   sš   ø† ÷>ö
 à	Û&ó 
Ø&à	Û)ó 
Ø)àóó ðð  ð$Ø#ð$Ø2<ð$ØDTð$Ø`gð$à	ö$ó ð$ôLô9ôt÷O÷põ pr   r2   )Ú
__future__r   Úloggingr{   Úabcr   Úpathlibr   Útypingr   Úvirtualenv.create.creatorr   r   Úvirtualenv.infor	   Úargparser
   r   Úpython_discoveryr   Úvirtualenv.app_data.baser   Úvirtualenv.config.cli.parserr   Ú	getLoggerr)   rm   r   r2   Ú__all__r=   r   r   Ú<module>rš      sm   ðÝ "ã Û 	Ý Ý Ý  ç :Ý /æÝ'Ýå+å0Ý>à	×	Ò	˜8Ó	$€ô&�{ô &ô"_p�g˜sô _pðF Øð�r   