12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- """
- This code wraps the vendored appdirs module to so the return values are
- compatible for the current pip code base.
- The intention is to rewrite current usages gradually, keeping the tests pass,
- and eventually drop this after all usages are changed.
- """
- import os
- import sys
- from typing import List
- from pip._vendor import platformdirs as _appdirs
- def user_cache_dir(appname: str) -> str:
- return _appdirs.user_cache_dir(appname, appauthor=False)
- def _macos_user_config_dir(appname: str, roaming: bool = True) -> str:
- # Use ~/Application Support/pip, if the directory exists.
- path = _appdirs.user_data_dir(appname, appauthor=False, roaming=roaming)
- if os.path.isdir(path):
- return path
- # Use a Linux-like ~/.config/pip, by default.
- linux_like_path = "~/.config/"
- if appname:
- linux_like_path = os.path.join(linux_like_path, appname)
- return os.path.expanduser(linux_like_path)
- def user_config_dir(appname: str, roaming: bool = True) -> str:
- if sys.platform == "darwin":
- return _macos_user_config_dir(appname, roaming)
- return _appdirs.user_config_dir(appname, appauthor=False, roaming=roaming)
- # for the discussion regarding site_config_dir locations
- # see <https://github.com/pypa/pip/issues/1733>
- def site_config_dirs(appname: str) -> List[str]:
- if sys.platform == "darwin":
- return [_appdirs.site_data_dir(appname, appauthor=False, multipath=True)]
- dirval = _appdirs.site_config_dir(appname, appauthor=False, multipath=True)
- if sys.platform == "win32":
- return [dirval]
- # Unix-y system. Look in /etc as well.
- return dirval.split(os.pathsep) + ["/etc"]
|