Skip to content

Commit

Permalink
Add 'pip cache dir' command to show the path to pip's cache directory
Browse files Browse the repository at this point in the history
  • Loading branch information
hugovk committed Apr 20, 2020
1 parent e40d267 commit cebac6a
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 0 deletions.
1 change: 1 addition & 0 deletions news/7350.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Add ``pip cache dir`` to show the cache directory.
10 changes: 10 additions & 0 deletions src/pip/_internal/commands/cache.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand All @@ -33,6 +34,7 @@ class CacheCommand(Command):
"""

usage = """
%prog dir
%prog info
%prog list [<pattern>]
%prog remove <pattern>
Expand All @@ -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,
Expand All @@ -66,6 +69,13 @@ def run(self, options, args):

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:
Expand Down
6 changes: 6 additions & 0 deletions tests/functional/test_cache.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,12 @@ def _remove_matches_wheel(wheel_name, result):
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')
Expand Down

0 comments on commit cebac6a

Please sign in to comment.