Source code for labblouin.passToqsub

#!/usr/local/bin/python

# This is adapted from Christian Blouin's
# qscript code and edited in order to have
# a String passed to it from another Python script.

# imports
import os

[docs]def returnScript(command, jobname='default_job', np=1, npmin=1, nomail=True, sync=False): # template, default values scriptDir = os.path.dirname(os.path.realpath(__file__)) template = os.path.join(scriptDir,'template.sh') try: email = open("%s/.qsubemail"%(os.environ["HOME"])).read() except: email = '' nomail = True # Fill in the template script = open(template).read() script = script.replace("#NAME#",jobname) script = script.replace("#EMAIL#",email) script = script.replace("#NPMIN#", str(npmin)) script = script.replace("#NP#", str(np)) if np == 1: script = script.replace("#CMD#", command) else: script = script.replace("#mpirun -np $NSLOTS", "mpirun -np %d %s"%(np,command)) script = script.replace("#CMD#", "") if nomail: script = script.replace('#$ -M', '##$ -M') script = script.replace('#$ -m e', '#$ -m n') # Write to file fout = open("%s.sh"%(jobname),'w') fout.write(script) fout.close() if sync: return 'qsub -sync y %s.sh'%(jobname) return 'qsub %s.sh'%(jobname)