@@ -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