docs: def collect_argument(self, step, message):
          '''given a key in the configuration, collect the runtime argument if
             provided. Otherwise, prompt the user for the value.
  
             Parameters
             ==========
             step: the name of the step, should be 'runtime_arg_<name>'
             message: the content of the step, the message to show the user if the
                      argument <name> is not found under args.
  
          '''
          if step not in self.data:
              self.data[step] = regexp_prompt(message)