class_docstr: Subclass of the base Node class, used for metric purposes. It is immutable so that
  hashing can be done on the class.
  
  Attributes:
      label (str): Label of the node.
      span (Span): Span of the node.
      children (:obj:`frozenset` of :obj:`Node`): frozenset of the node's children,
          left empty when computing bracketing metrics.
      text (str): Text the node covers (=utterance[span.start:span.end])
code: def __setattr__(self, name: str, value: Any) -> None:
      raise AttributeError("Node class is immutable.")
  
imports: from collections import Counter, defaultdict
  from copy import deepcopy
  from typing import AbstractSet, Any, Callable, Counter, Dict, List, NamedTuple, Optional, Sequence, Tuple
  from pytext.data.data_structures.annotation import INVALID_TREE_INTENT
  from pytext.data.data_structures.node import Node, Span
  from .None import AllConfusions, Confusions, PerLabelConfusions, PRF1Metrics, PRF1Scores, safe_division
label_desc: Use image node_id 2 for calling the Node obj's underlying member method code with example usage: obj.__setattr__(name, value) without return types