code: def makeRequests(callable_, args_list, callback=None,
                   exc_callback=_handle_thread_exception):
      
      requests = []
      for item in args_list:
          if isinstance(item, tuple):
              requests.append(
                  WorkRequest(callable_, item[0], item[1], callback=callback,
                              exc_callback=exc_callback)
              )
          else:
              requests.append(
                  WorkRequest(callable_, [item], None, callback=callback,
                              exc_callback=exc_callback)
              )
      return requests
docs: Create several work requests for same callable with different arguments.
  
      Convenience function for creating several work requests for the same
      callable where each invocation of the callable receives different values
      for its arguments.
  
      ``args_list`` contains the parameters for each invocation of callable.
      Each item in ``args_list`` should be either a 2-item tuple of the list of
      positional arguments and a dictionary of keyword arguments or a single,
      non-tuple argument.
  
      See docstring for ``WorkRequest`` for info on ``callback`` and
      ``exc_callback``.