code: def report_nodes_not_run(notrun):
      """List nodes that crashed with crashfile info
  
      Optionally displays dependent nodes that weren't executed as a result of
      the crash.
      """
      if notrun:
          logger.info("***********************************")
          for info in notrun:
              logger.error(
                  "could not run node: %s"
                  % ".".join(
                      (info["node"]._hierarchy, info["node"]._id)
                  )
              )
              logger.info("crashfile: %s" % info["crashfile"])
              logger.debug("The following dependent nodes were not run")
              for subnode in info["dependents"]:
                  logger.debug(subnode._id)
          logger.info("***********************************")
  
file_path: nipype/nipype/pipeline/plugins/tools.py
imports: import os
  import getpass
  from socket import gethostname
  import sys
  import uuid
  from time import strftime
  from traceback import format_exception
  from ...None import logging
  from ...utils.filemanip import savepkl, crash2txt
label_desc: Use image node_id 2 for calling a global function with example usage: report_nodes_not_run(notrun) without return types