def _is_library_file(filename): return (filename is None or path_startswith(filename, sys.prefix) or hasattr(sys, "base_prefix") and path_startswith(filename, sys.base_prefix) or hasattr(sys, "real_prefix") and path_startswith(filename, getattr(sys, "real_prefix")) or site.ENABLE_USER_SITE and path_startswith(filename, site.getusersitepackages()))
def get_site_packages(self): # NB! site.sitepackages may not be present in virtualenv for d in self._sys_path: if ("site-packages" in d or "dist-packages" in d) and path_startswith(d, self._sys_prefix): return d return None
def _get_target_directory(self): if self._use_user_install(): import site assert hasattr(site, "getusersitepackages") os.makedirs(site.getusersitepackages(), exist_ok=True) return normpath_with_actual_case(site.getusersitepackages()) else: for d in sys.path: if ("site-packages" in d or "dist-packages" in d) and path_startswith(d, sys.prefix): return normpath_with_actual_case(d) return None
def test_path_startswith(): assert path_startswith("/kala/pala", "/kala") assert path_startswith("/kala/pala", "/kala/") assert not path_startswith("/kala/pala", "/pala") assert not path_startswith("/kalapala/pala", "/kala") if os.name == "nt": assert path_startswith("/kala/pala", "/KALA") else: assert not path_startswith("/kala/pala", "/KALA") if os.name == "nt": assert path_startswith("C:\\foo\\bar", "C:\\foo") assert path_startswith("C:\\foo", "C:\\") assert path_startswith("C:/foo", "C:\\") assert path_startswith("C:\\foo", "C:/") assert path_startswith("C:\\foo\\dir\\file", "C:\\foo") assert path_startswith("C:/foo\\dir\\file", "c:\\FOO") assert path_startswith("c:\\FOO\\dir\\file", "C:/foo") assert path_startswith("C:\\FOO\\dir\\dir2\\..\\ee", "C:/foo/dir/ee") assert path_startswith("c:\\foo\\bar.txt/kala\\pala", "C:\\foo\\bar.txt/kala") assert path_startswith("c:\\foo\\bar.txt/kala\\pala", "C:\\") assert not path_startswith("C:\\kalapala\\pala", "C:\\kala")