code: def indented_str(self, indent=None):
      if indent is None:
          indent = ""
      s = (
          indent
          + self.name
          + "("
          + ", ".join([str(var) for var in self._block_inputs])
      )
      s += ") {\n"
      for op in self.operations:
          s += op.indented_str(indent + SPACES * 1)
      s += indent + "} -> ("
      if self._outputs is not None:
          s += ", ".join(["%" + v.name for v in self._outputs])
      s += ")\n"
      return s
  
imports: import copy
  from collections import Counter, OrderedDict
  from typing import Tuple
  from coremltools import _OPSET
  from coremltools import _logger
  from coremltools.converters.mil._deployment_compatibility import AvailableTarget
  from .None import SPACES, types
  from .operation import Operation
  from .types.symbolic import is_symbolic, k_used_symbols
  from .var import ComplexVar, InternalVar, Var
  from .visitors.dot_visitor import DotVisitor
label_desc: Use image node_id 22 for calling the Block obj's underlying member method code with example usage: obj.indented_str(indent) and returns: s