code: def extra_args_from_config(cp, section, skip_args=None, dtypes=None):
          
          kwargs = {}
          if dtypes is None:
              dtypes = {}
          if skip_args is None:
              skip_args = []
          read_args = [opt for opt in cp.options(section)
                       if opt not in skip_args]
          for opt in read_args:
              val = cp.get(section, opt)
              # try to cast the value if a datatype was specified for this opt
              try:
                  val = dtypes[opt](val)
              except KeyError:
                  pass
              kwargs[opt] = val
          return kwargs
docs: Gets any additional keyword in the given config file.
  
          Parameters
          ----------
          cp : WorkflowConfigParser
              Config file parser to read.
          section : str
              The name of the section to read.
          skip_args : list of str, optional
              Names of arguments to skip.
          dtypes : dict, optional
              A dictionary of arguments -> data types. If an argument is found
              in the dict, it will be cast to the given datatype. Otherwise, the
              argument's value will just be read from the config file (and thus
              be a string).
  
          Returns
          -------
          dict
              Dictionary of keyword arguments read from the config file.