+ stream.write('#!/usr/bin/env python\n')
+ stream.write('#PBS -l walltime:%s\n' % self._walltime)
+ #stream.write('#PBS -l minwclimit:...')
+ if len(job.blocks_on) > 0:
+ blockers = [self._jobs.get(id, None) for id in job.blocks_on]
+ stream.write(
+ '#PBS -w afterok:%s\n'
+ % ':'.join([j._pbs_id for j in blockers if j != None]))
+ stream.write('from __future__ import with_statement\n')
+ stream.write('import os\n')
+ stream.write('import pickle\n')
+ stream.write('import sys\n')
+ stream.write('sys.path = [%s]\n' % ', '.join(
+ ["'%s'" % p for p in sys.path]))
+ stream.write("os.chdir(os.environ['PBS_O_WORKDIR'])\n")
+ stream.write("with open('%s', 'r') as f:\n" % job._pbs_paths['job'])
+ stream.write(' job = pickle.load(f)\n')
+ stream.write('job.run()\n')
+ stream.write("with open('%s', 'w') as f:\n" % job._pbs_paths['data'])
+ stream.write(' pickle.dump(job.data, f)\n')
+ stream.write('sys.exit(job.status)\n')
+ _write_script.__doc__ = """