@@ -179,24 +179,34 @@ def remove_cache_items(self, options, args):
179179
180180 files = self ._find_wheels (options , args [0 ])
181181
182- # Only fetch http files if no specific pattern given
183- if args [0 ] == '*' :
184- files += self ._find_http_files (options )
185-
186182 if not files :
187183 raise CommandError ('No matching packages' )
188184
189185 for filename in files :
190186 os .unlink (filename )
191187 logger .debug ('Removed %s' , filename )
188+
189+ dirs = filesystem .list_empty_subdirs (self ._cache_dir (options , 'http' )) + \
190+ filesystem .list_empty_subdirs (self ._cache_dir (options , 'wheels' ))
191+ for dirname in dirs :
192+ os .rmdir (dirname )
193+
192194 logger .info ('Files removed: %s' , len (files ))
195+ logger .info ('Empty directories removed: %s' , len (dirs ))
193196
194197 def purge_cache (self , options , args ):
195198 # type: (Values, List[Any]) -> None
196199 if args :
197200 raise CommandError ('Too many arguments' )
198201
199- return self .remove_cache_items (options , ['*' ])
202+ # Remove everything in the "http" and "wheels" cache directories.
203+ filesystem .remove_subdirs (self ._cache_dir (options , 'http' ))
204+ filesystem .remove_subdirs (self ._cache_dir (options , 'wheels' ))
205+
206+ # selfcheck.json is no longer used by pip.
207+ selfcheck_json = self ._cache_dir (options , 'selfcheck.json' )
208+ if os .path .isfile (selfcheck_json ):
209+ os .remove (selfcheck_json )
200210
201211 def _cache_dir (self , options , subdir ):
202212 # type: (Values, str) -> str
0 commit comments