class_docstr: A collection of callbacks added to a Tornado IOLoop that can be removed
  as a group.
class_docstr_tok: ["A","collection","of","callbacks","added","to","a","Tornado","IOLoop","that","can","be","removed","as","a","group","."]
code: def _execute_remover(
      self, callback_id: ID, removers: Removers
  ) -> None:
      try:
          with self._removers_lock:
              remover = removers.pop(callback_id)
              for cb, cb_ids in list(
                  self._get_removers_ids_by_callable(removers).items()
              ):
                  try:
                      cb_ids.remove(callback_id)
                      if not cb_ids:
                          del self._get_removers_ids_by_callable(
                              removers
                          )[cb]
                  except KeyError:
                      pass
      except KeyError:
          raise ValueError(
              "Removing a callback twice (or after it's already been run)"
          )
      remover()
  
imports: from __future__ import annotations
  import logging
  import sys
  import threading
  from collections import defaultdict
  from traceback import format_exception
  from typing import TYPE_CHECKING, Any, Awaitable, Callable, Union
  import tornado
  from tornado import gen
  from ..core.types import ID
label_desc: Use image node_id 5 for calling the _CallbackGroup obj's underlying member method code with example usage: obj._execute_remover(callback_id, removers) without return types