a :iT@stddlZddlZddlmZddlmZddlmZddlm Z m Z Gddde Z Gd d d e ed Z dd gZ dS) N)ABCMeta)Path)fs_supports_symlink)Creator CreatorMetacs4eZdZfddZeddZeddZZS)ViaGlobalRefMetacs&td|_d|_ts"d|_dS)Nz(the filesystem does not supports symlink)super__init__ copy_error symlink_errorrself __class__H/usr/lib/python3.9/site-packages/virtualenv/create/via_global_ref/api.pyr s  zViaGlobalRefMeta.__init__cCs|j SN)r r rrrcan_copyszViaGlobalRefMeta.can_copycCs|j Sr)r r rrr can_symlinkszViaGlobalRefMeta.can_symlink)__name__ __module__ __qualname__r propertyrr __classcell__rrrrr s   rcsheZdZfddZeddZefddZddZd d Z d d Z fd dZ fddZ Z S)ViaGlobalRefApics&t|||||_|j|_dSr)r r _should_symlinksymlinks system_siteenable_system_site_package)roptions interpreterrrrr s zViaGlobalRefApi.__init__cCst|ddt|dd}}|d|d}}dD]V}||krD|nd}||krT|nd}|durn|durndS|dur|dS|dur4dSq4dS)NcopiesFr)Zclizenv varfiledefaultT)getattr get_source)r r"rZcopy_srcZsym_srclevelZs_optZc_optrrrr"szViaGlobalRefApi._should_symlinkcst|||||jdddddd|}|jsB|jsBtd|jr\|jdd dd d d|jr||jd d |j dddddS)Nz--system-site-packagesF store_truerzCgive the virtual environment access to the system site-packages dir)r$actiondesthelpz(neither symlink or copy method supportedz --symlinksTrzZtry to use symlinks rather than copies, when symlinks are not the default for the platformz--copiesz --always-copyr"z[try to use copies rather than symlinks, even when symlinks are the default for the platform)r add_parser_arguments add_argumentadd_mutually_exclusive_grouprr RuntimeError)clsparserr!metaapp_datagrouprrrr,3s8 z$ViaGlobalRefApi.add_parser_argumentscCs |dSr) install_patchr rrrcreateRszViaGlobalRefApi.createcCsX|}|rT|jd}td||jddd|jd}td||j|dddS)Nz_virtualenv.pthz%create virtualenv import hook file %szimport _virtualenvutf-8encoding_virtualenv.pyz create %s)env_patch_textpurelibloggingdebug write_text)rtextZpthZ dest_pathrrrr5Us    zViaGlobalRefApi.install_patchc Csl|jttjdB}|jdd}|dttj t |j t |j WdS1s^0YdS)zIPatch the distutils package to not be derailed by its configuration filesr:r7r8z"__SCRIPT_DIR__"N)r3Zensure_extractedr__file__parent read_textreplacereprospathrelpathstrZ script_dirr<)r resolved_pathr@rrrr;_s zViaGlobalRefApi.env_patch_textcstd|jfgS)Nglobal)r _argsrr rrrrLeszViaGlobalRefApi._argscs"t|jrdnd|jd<dS)NtrueZfalsezinclude-system-site-packages)r set_pyenv_cfgrZ pyenv_cfgr rrrrNhs zViaGlobalRefApi.set_pyenv_cfg)rrrr staticmethodr classmethodr,r6r5r;rLrNrrrrrrs    r) metaclass)r=rFabcrpathlibrZvirtualenv.inforZcreatorrrrr__all__rrrrs   R