nodes: 0, module; 1, function_definition; 2, function_name:setup; 3, parameters; 4, block; 5, identifier:job; 6, identifier:input_file_id; 7, identifier:n; 8, identifier:down_checkpoints; 9, expression_statement; 10, comment:# Write the input file to the file store; 11, expression_statement; 12, return_statement; 13, comment:"""Sets up the sort.
      Returns the FileID of the sorted file
      """; 14, call; 15, call; 16, attribute; 17, argument_list; 18, attribute; 19, argument_list; 20, attribute; 21, identifier:logToMaster; 22, string:"Starting the merge sort"; 23, call; 24, identifier:rv; 25, identifier:job; 26, identifier:fileStore; 27, attribute; 28, argument_list; 29, identifier:job; 30, identifier:addChildJobFn; 31, identifier:down; 32, identifier:input_file_id; 33, identifier:n; 34, keyword_argument; 35, keyword_argument; 36, identifier:down_checkpoints; 37, identifier:down_checkpoints; 38, identifier:memory; 39, string; 40, string_content:600M
code: def setup(job, input_file_id, n, down_checkpoints):
      """Sets up the sort.
      Returns the FileID of the sorted file
      """
      # Write the input file to the file store
      job.fileStore.logToMaster("Starting the merge sort")
      return job.addChildJobFn(down,
                               input_file_id, n,
                               down_checkpoints=down_checkpoints,
                               memory='600M').rv()