code: def run(click_wrapper):
      """
      Wrapper function for executing click commands and handling exceptions produced from
      click commands with versioning boilerplate
  
      :param click_wrapper: click context
      """
  
      t1 = datetime.now()
      try:
          try:
              dtale_name = "dtale"
              bld_info, ver_info = retrieve_meta_info_and_version(
                  dtale_name
              )
              logger.debug("{} bld: {}".format(dtale_name, bld_info))
              logger.debug("{} ver: {}".format(dtale_name, ver_info))
          except BaseException:
              logger.debug(
                  "failure to retrieve metadata for: {}".format(
                      dtale_name
                  )
              )
  
          args = get_args(click_wrapper)
          click_wrapper(args)
          sys.exit(0)
      except Exception as ex:
          logger.exception("Fatal error: " + str(ex))
          sys.exit(1)
      finally:
          logger.info("Elapsed time: %s" % (datetime.now() - t1))
  
imports: import logging
  import requests
  import socket
  import sys
  from builtins import str
  from datetime import datetime
  import click
  import pkg_resources
  from six import PY3, BytesIO, StringIO, string_types
  from dtale.utils import make_list
label_desc: Use image node_id 8 for calling a global function with example usage: run(click_wrapper) without return types