code: def install():
      """set the tornado IOLoop instance with the pyzmq IOLoop.
  
      After calling this function, tornado's IOLoop.instance() and pyzmq's
      IOLoop.instance() will return the same object.
  
      An assertion error will be raised if tornado's IOLoop has been initialized
      prior to calling this function.
      """
      from tornado import ioloop
  
      # check if tornado's IOLoop is already initialized to something other
      # than the pyzmq IOLoop instance:
      assert (
          not ioloop.IOLoop.initialized()
      ) or ioloop.IOLoop.instance() is IOLoop.instance(), (
          "tornado IOLoop already initialized"
      )
  
      if tornado_version >= (3,):
          # tornado 3 has an official API for registering new defaults, yay!
          ioloop.IOLoop.configure(ZMQIOLoop)
      else:
          # we have to set the global instance explicitly
          ioloop.IOLoop._instance = IOLoop.instance()
  
imports: import time
  import warnings
  from typing import Tuple
  from zmq import ETERM, POLLERR, POLLIN, POLLOUT, Poller, ZMQError
  from .minitornado.ioloop import PeriodicCallback, PollIOLoop
  from .minitornado.log import gen_log
label_desc: Use image node_id 1 for calling a global function with example usage: install() without return types