'Purge an index from the index cache.
If `index_name` is None purge an entire collection.
If `collection_name` is None purge an entire database.'

def _purge_index(self, database_name, collection_name=None, index_name=None):

    with self.__index_cache_lock:
        if (not (database_name in self.__index_cache)):
            return
        if (collection_name is None):
            del self.__index_cache[database_name]
            return
        if (not (collection_name in self.__index_cache[database_name])):
            return
        if (index_name is None):
            del self.__index_cache[database_name][collection_name]
            return
        if (index_name in self.__index_cache[database_name][collection_name]):
            del self.__index_cache[database_name][collection_name][index_name]
