@@ -181,24 +181,34 @@ def remove_cache_items(self, options, args):
181181
182182 files = self ._find_wheels (options , args [0 ])
183183
184- # Only fetch http files if no specific pattern given
185- if args [0 ] == '*' :
186- files += self ._find_http_files (options )
187-
188184 if not files :
189185 raise CommandError ('No matching packages' )
190186
191187 for filename in files :
192188 os .unlink (filename )
193189 logger .debug ('Removed %s' , filename )
190+
191+ dirs = filesystem .list_empty_subdirs (self ._cache_dir (options , 'http' )) + \
192+ filesystem .list_empty_subdirs (self ._cache_dir (options , 'wheels' ))
193+ for dirname in dirs :
194+ os .rmdir (dirname )
195+
194196 logger .info ('Files removed: %s' , len (files ))
197+ logger .info ('Empty directories removed: %s' , len (dirs ))
195198
196199 def purge_cache (self , options , args ):
197200 # type: (Values, List[Any]) -> None
198201 if args :
199202 raise CommandError ('Too many arguments' )
200203
201- return self .remove_cache_items (options , ['*' ])
204+ # Remove everything in the "http" and "wheels" cache directories.
205+ filesystem .remove_subdirs (self ._cache_dir (options , 'http' ))
206+ filesystem .remove_subdirs (self ._cache_dir (options , 'wheels' ))
207+
208+ # selfcheck.json is no longer used by pip.
209+ selfcheck_json = self ._cache_dir (options , 'selfcheck.json' )
210+ if os .path .isfile (selfcheck_json ):
211+ os .remove (selfcheck_json )
202212
203213 def _cache_dir (self , options , subdir ):
204214 # type: (Values, str) -> str
0 commit comments