class_docstr: Singleton global entry point for managing active recording contexts.
  
  This class consists purely of class methods. It both maintains a list of
  recording queues and allows communication with the currently active object.
  
  Queueable objects, like :class:`~.operation.Operator` and :class:`~.measurements.MeasurementProcess`, should
  use ``QueuingManager`` as an entry point for accessing the active queue.
  
  See also: :class:`~.AnnotatedQueue`, :class:`~.tape.QuantumTape`, :meth:`~.operation.Operator.queue`.
  
  Recording queues, such as :class:`~.AnnotatedQueue`, must define the following methods:
  
  * ``append``: define an action to perform when an object append
    request is made.
  
  * ``remove``: define an action to perform when an object removal request is made.
  
  * ``get_info``: retrieve the object's metadata
  
  * ``update_info``: Update an object's metadata if it is already queued.
  
  To start and end recording, the recording queue can use the :meth:`add_active_queue` and
  :meth:`remove_active_queue` methods.
docstr: Remove an object from the queue(s) if it is in the queue(s).
  
  Args:
      obj: the object to be removed
docstr_tok: ["Remove","an","object","from","the","queue","(","s",")","if","it","is","in","the","queue","(","s",")",".","Args",":","obj",":","the","object","to","be","removed"]
code: def remove(cls, obj):
      """Remove an object from the queue(s) if it is in the queue(s).
  
      Args:
          obj: the object to be removed
      """
      if cls.recording():
          cls.active_context().remove(obj)
  
imports: import copy
  from collections import OrderedDict
  from contextlib import contextmanager
  from threading import RLock
  from typing import Optional
label_desc: Use image node_id 7 for calling the QueuingManager obj's underlying member method code with example usage: obj.remove(cls, obj) without return types