class_docstr: Converts the given node and parents (recursively) to a text representation.
  
  The text representation should be similar to the XML format:
  
  <FilterElementsNode>
    ...
  </>
code: def visit_node(self, node: DagNode) -> str:  # noqa: D
      parent_node_descriptions = []
      for parent_node in node.parent_nodes:
          parent_node_descriptions.append(
              parent_node.accept_dag_node_visitor(self)
          )
  
      return self._format_to_text(
          node=node, inner_contents="\n".join(parent_node_descriptions)
      )
  
file_path: metricflow/metricflow/dag/dag_to_text.py
imports: from __future__ import annotations
  import logging
  import textwrap
  from typing import TypeVar
  import jinja2
  from dbt_semantic_interfaces.pretty_print import pformat_big_objects
  from metricflow.dag.mf_dag import DagNode, DagNodeVisitor, MetricFlowDag
label_desc: Use image node_id 2 for calling the MetricFlowDagToText obj's underlying member method code with example usage: obj.visit_node(node) and returns: self