code: def __call__(self, autograd_function, *args, **kwargs):
      # When custom_function_call is done dispatching through functorch,
      # it should just invoke the autograd.Function. This is consistent
      # with the autograd.Function behavior of being invoked before the
      # PyTorch dispatcher.
      #
      # This will lead us into trouble later down the line, but this is
      # pre-existing. There is an invariant that a function traced by
      # make_fx should have the same behavior when provided the same
      # Tensor. However, make_fx sees autograd.Function as a composite
      # (because autograd.Function happens before the Python dispatch key)
      # and only traces the forward pass.
      if torch._C._are_functorch_transforms_active():
          return super().__call__(autograd_function, *args, **kwargs)
      return autograd_function.apply(*args, **kwargs)
  
imports: import torch
  from torch._ops import HigherOrderOperator
  from torch._C._functorch import TransformType
  from torch._functorch.utils import enable_single_level_autograd_function
  import torch.utils._pytree
  from torch._C._functorch import _wrap_for_grad, _unwrap_for_grad, current_level
  from torch._functorch.vmap import wrap_batched, unwrap_batched, restore_vmap, _add_batch_dim
  from torch._functorch.apis import vmap
  from torch._functorch.vmap import _broadcast_to_and_flatten
  from torch.autograd.forward_ad import _set_fwd_grad_enabled
  from typing import Any, NamedTuple, Tuple
label_desc: Use image node_id 2 for calling the CustomFunctionHigherOrderOperator obj's underlying member method code with example usage: obj.__call__(autograd_function) and returns: autograd_function, super