code: def find_missing(message, all_params, given_opts, default_opts, header=None, prompt_missing=True):
      
  
      # are we missing anything?
      missing_params = list(set(all_params) - set(given_opts))
  
      num_prompted = 0
  
      if not missing_params:
          return given_opts, missing_params, num_prompted
  
      if not prompt_missing:
          # count the number missing, and go with defaults
          missing_values = set(default_opts) - set(given_opts)
          num_prompted = len(missing_values)
          given_opts.update(default_opts)
  
      else:
          if header is not None:
              print('-' * len(header))
              print(header)
  
          missing_values = interactive_prompt(message, missing_params, default_opts)
          num_prompted = len(missing_values)
          given_opts.update(missing_values)
  
      return given_opts, missing_params, num_prompted
docs: Find and interactively prompt the user for missing parameters,
      given the list of all valid parameters and a dict of known options.
  
      Return the (updated dict of known options, missing, num_prompted), with the user's input.