class_docstr: A ``TorchDispatchMode`` allows you to override the meaning of all
  ``__torch_dispatch__`` overrideable functions within a dynamic scope,
  without having to actually create a tensor subclass or manually
  monkey-patch functions in the PyTorch API.  Some common situations
  where you should use a mode:
  
      * You want to override the meaning of factory functions, or other
        functions that do not otherwise take a tensor as an argument
        (these cannot be overridden with tensor subclasses).
  
      * You want to override the behavior of all functions without needing
        to wrap your inputs in tensor subclasses; e.g., if you are just
        interested in logging intermediate computations.
  
      * You want to control the order of execution of various tensor
        subclasses explicitly, rather than implicitly via the return of
        ``NotImplemented``.
  
  Independent subclasses of :class:`TorchDispatchMode` are compositional:
  modes can be pushed onto a stack using ``with MyMode():``.
  When you call functions in the PyTorch API inside your
  ``__torch_dispatch__`` implementation, by default, they will forward on to
  the next mode on the mode stack.  If you want recursively call back into
  your current ``__torch_dispatch__`` implementation, either explicitly
  invoke ``self.__torch_dispatch__(...)``, or use the context manager
  ``__torch_dispatch__(self)`` to make PyTorch
  API self-referential (beware of infinite loops, in this case!)
code: def push(cls, *args, **kwargs):
      warnings.warn(
          "`Mode.push()` is no longer necessary and can be replaced with just `with Mode()`"
      )
      instance = cls(*args, **kwargs)
      return instance
  
imports: import contextlib
  from typing import Optional, Union, List, Set, Dict, Any
  import warnings
  from dataclasses import dataclass
  import torch
  import torchgen
  from torch._C import _len_torch_dispatch_stack, _get_dispatch_stack_at, _pop_torch_dispatch_stack, _push_on_torch_dispatch_stack, DispatchKey
label_desc: Use image node_id 5 for calling the TorchDispatchMode obj's underlying member method code with example usage: obj.push(cls) and returns: instance