code: def _tf_lstm_to_core_lstm_block(block: Block):
      # shallow copy hides changes on f.operations during the loop
      for op in block.operations:
          for b in op.blocks:
              _tf_lstm_to_core_lstm_block(b)
  
          if op.op_type in SUPPORTED_TF_LSTM_OPS:
              if _try_replace_with_core_lstm(op):
                  logger.info(
                      "Successfully map {} to lstm".format(op.op_type)
                  )
              else:
                  logger.info(
                      "Unable to map {} to lstm".format(op.op_type)
                  )
  
file_path: coremltools/coremltools/converters/mil/frontend/tensorflow/ssa_passes/tf_lstm_to_core_lstm.py
imports: import numpy
  from coremltools import _logger
  from coremltools.converters.mil.mil import Block, Builder, Operation, Var
  from coremltools.converters.mil.mil.passes.graph_pass import AbstractGraphPass
  from coremltools.converters.mil.mil.passes.helper import block_context_manager
  from coremltools.converters.mil.mil.passes.pass_registry import register_pass
  from coremltools.converters.mil.mil.types.symbolic import is_symbolic
label_desc: Use image node_id 1 for calling a global function with example usage: _tf_lstm_to_core_lstm_block(block) without return types