class_docstr: A node in the inference signal type hierarchy.
  
  This class can be used to assemble a type hierarchy tree. It can be used by heuristics
  to check whether signals produced by rules are conflicting or complementary, relying
  on the property that sibling nodes are mutually exclusive in the hierarchy.
class_docstr_tok: ["A","node","in","the","inference","signal","type","hierarchy",".","This","class","can","be","used","to","assemble","a","type","hierarchy","tree",".","It","can","be","used","by","heuristics","to","check","whether","signals","produced","by","rules","are","conflicting","or","complementary",",","relying","on","the","property","that","sibling","nodes","are","mutually","exclusive","in","the","hierarchy","."]
docstr: The list of all supertypes for this type node, from the root to the direct parent.
docstr_tok: ["The","list","of","all","supertypes","for","this","type","node",",","from","the","root","to","the","direct","parent","."]
code: def supertypes(self) -> List[InferenceSignalNode]:
      """The list of all supertypes for this type node, from the root to the direct parent."""
      if self.parent is None:
          return []
  
      return self.parent.supertypes + [self.parent]
  
file_path: metricflow/metricflow/inference/models.py
imports: from __future__ import annotations
  from abc import ABC
  from dataclasses import dataclass
  from enum import Enum
  from typing import List, Optional
  from metricflow.dataflow.sql_column import SqlColumn
label_desc: Use image node_id 3 for calling the InferenceSignalNode obj's underlying member method code with example usage: obj.supertypes() and returns: unknown, list