def _validate_job_and_task_arguments(job_params, task_descriptors):
if not task_descriptors:<EOL><INDENT>return<EOL><DEDENT>task_params = task_descriptors[<NUM_LIT:0>].task_params<EOL>from_jobs = {label.name for label in job_params['<STR_LIT>']}<EOL>from_tasks = {label.name for label in task_params['<STR_LIT>']}<EOL>intersect = from_jobs & from_tasks<EOL>if intersect:<EOL><INDENT>raise ValueError(<EOL>'<STR_LIT>'<EOL>'<STR_LIT>'.format('<STR_LIT:U+002C>'.join(intersect)))<EOL><DEDENT>from_jobs = {<EOL>item.name<EOL>for item in job_params['<STR_LIT>'] | job_params['<STR_LIT>']<EOL>| job_params['<STR_LIT>']<EOL>}<EOL>from_tasks = {<EOL>item.name<EOL>for item in task_params['<STR_LIT>'] | task_params['<STR_LIT>']<EOL>| task_params['<STR_LIT>']<EOL>}<EOL>intersect = from_jobs & from_tasks<EOL>if intersect:<EOL><INDENT>raise ValueError(<EOL>'<STR_LIT>'<EOL>'<STR_LIT>'.format('<STR_LIT:U+002C>'.join(intersect)))<EOL><DEDENT>
Validates that job and task argument names do not overlap.