Add 'pip cache dir' command to show the path to pip's cache directory

This commit is contained in:
Hugo 2020-04-14 13:36:33 +03:00
parent e40d2670fa
commit cebac6aa6c
3 changed files with 17 additions and 0 deletions

1
news/7350.feature Normal file
View File

@ -0,0 +1 @@
Add ``pip cache dir`` to show the cache directory.

View File

@ -24,6 +24,7 @@ class CacheCommand(Command):
Subcommands:
dir: Show the cache directory.
info: Show information about the cache.
list: List filenames of packages stored in the cache.
remove: Remove one or more package from the cache.
@ -33,6 +34,7 @@ class CacheCommand(Command):
"""
usage = """
%prog dir
%prog info
%prog list [<pattern>]
%prog remove <pattern>
@ -42,6 +44,7 @@ class CacheCommand(Command):
def run(self, options, args):
# type: (Values, List[Any]) -> int
handlers = {
"dir": self.get_cache_dir,
"info": self.get_cache_info,
"list": self.list_cache_items,
"remove": self.remove_cache_items,
@ -66,6 +69,13 @@ class CacheCommand(Command):
return SUCCESS
def get_cache_dir(self, options, args):
# type: (Values, List[Any]) -> None
if args:
raise CommandError('Too many arguments')
logger.info(options.cache_dir)
def get_cache_info(self, options, args):
# type: (Values, List[Any]) -> None
if args:

View File

@ -95,6 +95,12 @@ def remove_matches_wheel(wheel_cache_dir):
return _remove_matches_wheel
def test_cache_dir(script, cache_dir):
result = script.pip('cache', 'dir')
assert os.path.normcase(cache_dir) == result.stdout.strip()
@pytest.mark.usefixtures("populate_wheel_cache")
def test_cache_info(script, wheel_cache_dir, wheel_cache_files):
result = script.pip('cache', 'info')