3 šig›ã@sˆddlZddlZddlZddlmZddlmZmZddlm Z m Z ddgZ e e dœdd „Z e ee dœd d„Ze ee dœd d„ZdS) éN)ÚOptional)Ú site_packagesÚ user_site)Úrunning_under_virtualenvÚvirtualenv_no_globalÚegg_link_path_from_sys_pathÚegg_link_path_from_location)Úraw_nameÚreturncCstjdd|ƒdS)zÕ Convert a Name metadata value to a .egg-link name, by applying the same substitution as pkg_resources's safe_name function. Note: we cannot use canonicalize_name because it has a different logic. z[^A-Za-z0-9.]+ú-z .egg-link)ÚreÚsub)r ©rú;/tmp/pip-build-88gy_88q/pip/pip/_internal/utils/egg_link.pyÚ_egg_link_namesrcCs:t|ƒ}x,tjD]"}tjj||ƒ}tjj|ƒr|SqWdS)zJ Look for a .egg-link file for project name, by walking sys.path. N)rÚsysÚpathÚosÚjoinÚisfile)r Ú egg_link_nameÚ path_itemÚegg_linkrrrrs   cCs|g}tƒr,|jtƒtƒ rDtrD|jtƒntr:|jtƒ|jtƒt|ƒ}x*|D]"}tjj||ƒ}tjj |ƒrR|SqRWdS)a Return the path for the .egg-link file if it exists, otherwise, None. There's 3 scenarios: 1) not in a virtualenv try to find in site.USER_SITE, then site_packages 2) in a no-global virtualenv try to find in site_packages 3) in a yes-global virtualenv try to find in site_packages, then site.USER_SITE (don't look in global location) For #1 and #3, there could be odd cases, where there's an egg-link in 2 locations. This method will just return the first one found. N) rÚappendrrrrrrrr)r ÚsitesrÚsiteÚegglinkrrrr*s       )rr rZtypingrZpip._internal.locationsrrZpip._internal.utils.virtualenvrrÚ__all__ÚstrrrrrrrrÚs