class_docstr: Function metaclass.
  
  This metaclass sets up the following properties:
      _backward_cls: The Function class corresponding to the differentiated
          version of this function (which is generated on the fly by this
          metaclass).
class_docstr_tok: ["Function","metaclass",".","This","metaclass","sets","up","the","following","properties",":","_backward_cls",":","The","Function","class","corresponding","to","the","differentiated","version","of","this","function","(","which","is","generated","on","the","fly","by","this","metaclass",")","."]
code: def __init__(cls, name, bases, attrs):
      backward_fn = type(
          name + "Backward", (BackwardCFunction,), {"_forward_cls": cls}
      )
      backward_fn._autograd_function_id = next(AUTOGRAD_FUNCTION_COUNTER)  # type: ignore[attr-defined]
      backward_fn._compiled_autograd_should_lift = attrs.get(  # type: ignore[attr-defined]
          "_compiled_autograd_should_lift", True
      )
      cls._backward_cls = backward_fn
  
      super().__init__(name, bases, attrs)
  
imports: import functools
  import inspect
  import itertools
  import warnings
  from collections import OrderedDict
  from typing import Any, List, Optional, Tuple
  import torch
  import torch._C
  import torch._functorch
  import torch.utils.hooks
  from torch._C import _functions
  from torch._functorch.autograd_function import custom_function_call
label_desc: Use image node_id 1 to create a new FunctionMeta object from inherited base classes: type with example: obj = FunctionMeta(cls, name, bases, attrs)