docs: def _remove_entry(self, source_file, key):
          """Remove an entry from the cache.
  
          source_file is the name of the header and key is its corresponding
          cache key (obtained by a call to :meth:_create_cache_key ).
          The entry is removed from the index table, any referenced file
          name is released and the cache file is deleted.
  
          If key references a non-existing entry, the method returns
          immediately.
  
          :param source_file: Header file name
          :type source_file: str
          :param key: Key value for the specified header file
          :type key: hash table object
          """
  
          entry = self.__index.get(key)
          if entry is None:
              return
  
          # Release the referenced files...
          for id_, _ in entry.filesigs:
              self.__filename_rep.release_filename(id_)
  
          # Remove the cache entry...
          del self.__index[key]
          self.__modified_flag = True
  
          # Delete the corresponding cache file...
          cachefilename = self._create_cache_filename(source_file)
          try:
              os.remove(cachefilename)
          except OSError as e:
              print("Could not remove cache file (%s)" % e)