docs: def data_worker(**kwargs):
      """
      Function to be spawned concurrently,
      consume data keys from input queue, and push the resulting dataframes to output map
      """
      if kwargs is not None:
          if "function" in kwargs:
              function = kwargs["function"]
          else:
              Exception("Invalid arguments, no function specified")
          if "input" in kwargs:
              input_queue = kwargs["input"]
          else:
              Exception("Invalid Arguments, no input queue")
          if "output" in kwargs:
              output_map = kwargs["output"]
          else:
              Exception("Invalid Arguments, no output map")
          if "token" in kwargs:
              argsdict = {"quandl_token": kwargs["token"]}
  
          else:
              if "Quandl" in function.__module__:
                  Exception("Invalid Arguments, no Quandl token")
          if ("source" and "begin" and "end") in kwargs:
              argsdict = {"data_source": kwargs["source"], "begin": kwargs["begin"], "end": kwargs["end"]}
          else:
              if "pandas.io.data" in function.__module__:
                  Exception("Invalid Arguments, no pandas data source specified")
          if ("source" in kwargs) and (("begin" and "end") not in kwargs):
              argsdict = {"data_source": kwargs["source"]}
          else:
              if "pandas.io.data" in function.__module__:
                  Exception("Invalid Arguments, no pandas data source specified")
      else:
          Exception("Invalid Arguments")
  
      retries = 5
      while not input_queue.empty():
          data_key = input_queue.get()
          get_data(function, data_key, output_map, retries, argsdict)