def args_to_job_params(envs, labels, inputs, inputs_recursive, outputs,<EOL>outputs_recursive, mounts, input_file_param_util,<EOL>output_file_param_util, mount_param_util):
<EOL>env_data = parse_pair_args(envs, job_model.EnvParam)<EOL>label_data = parse_pair_args(labels, job_model.LabelParam)<EOL>input_data = set()<EOL>for (recursive, args) in ((False, inputs), (True, inputs_recursive)):<EOL><INDENT>for arg in args:<EOL><INDENT>name, value = split_pair(arg, '<STR_LIT:=>', nullable_idx=<NUM_LIT:0>)<EOL>name = input_file_param_util.get_variable_name(name)<EOL>input_data.add(input_file_param_util.make_param(name, value, recursive))<EOL><DEDENT><DEDENT>output_data = set()<EOL>for (recursive, args) in ((False, outputs), (True, outputs_recursive)):<EOL><INDENT>for arg in args:<EOL><INDENT>name, value = split_pair(arg, '<STR_LIT:=>', <NUM_LIT:0>)<EOL>name = output_file_param_util.get_variable_name(name)<EOL>output_data.add(output_file_param_util.make_param(name, value, recursive))<EOL><DEDENT><DEDENT>mount_data = set()<EOL>for arg in mounts:<EOL><INDENT>if '<STR_LIT:U+0020>' in arg:<EOL><INDENT>key_value_pair, disk_size = arg.split('<STR_LIT:U+0020>')<EOL>name, value = split_pair(key_value_pair, '<STR_LIT:=>', <NUM_LIT:1>)<EOL>mount_data.add(mount_param_util.make_param(name, value, disk_size))<EOL><DEDENT>else:<EOL><INDENT>name, value = split_pair(arg, '<STR_LIT:=>', <NUM_LIT:1>)<EOL>mount_data.add(mount_param_util.make_param(name, value, disk_size=None))<EOL><DEDENT><DEDENT>return {<EOL>'<STR_LIT>': env_data,<EOL>'<STR_LIT>': input_data,<EOL>'<STR_LIT>': output_data,<EOL>'<STR_LIT>': label_data,<EOL>'<STR_LIT>': mount_data,<EOL>}<EOL>
Parse env, input, and output parameters into a job parameters and data.

    Passing arguments on the command-line allows for launching a single job.
    The env, input, and output arguments encode both the definition of the
    job as well as the single job's values.

    Env arguments are simple name=value pairs.
    Input and output file arguments can contain name=value pairs or just values.
    Either of the following is valid:

      uri
      myfile=uri

    Args:
      envs: list of environment variable job parameters
      labels: list of labels to attach to the tasks
      inputs: list of file input parameters
      inputs_recursive: list of recursive directory input parameters
      outputs: list of file output parameters
      outputs_recursive: list of recursive directory output parameters
      mounts: list of gcs buckets to mount
      input_file_param_util: Utility for producing InputFileParam objects.
      output_file_param_util: Utility for producing OutputFileParam objects.
      mount_param_util: Utility for producing MountParam objects.

    Returns:
      job_params: a dictionary of 'envs', 'inputs', and 'outputs' that defines the
      set of parameters and data for a job.