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