class_docstr: The base class to store all profiling and static graph analysis information
  needed for a ``Node`` in FX.Graph
class_docstr_tok: ["The","base","class","to","store","all","profiling","and","static","graph","analysis","information","needed","for","a","``","Node","``","in","FX.Graph"]
code: def __new__(cls, node: Node, **kwargs):
      orig_init = cls.__init__
  
      # if initialized, return the existing one
      # should disable the __init__ function
      if node.meta.get("info", None) is not None:
  
          def _dummy(self, *args, **kwargs):
              if getattr(self, "_is_init", False):
                  self._is_init = True
                  orig_init(self, *args, **kwargs)
              cls.__init__ = orig_init
  
          cls.__init__ = _dummy
          return node.meta["info"]
      return super().__new__(cls)
  
imports: from typing import Any, Callable, Dict, List, Tuple, Optional, Union
  from dataclasses import dataclass, field
  import torch
  import torch.fx
  from torch.fx import Interpreter
  from torch.fx.node import Argument, Node
  from .flop_utils import flop_count
label_desc: Use image node_id 1 for calling the NInfo obj's underlying member method code with example usage: obj.__new__(cls, node) and returns: super, node