Mercurial > repos > fubar > rglasso_1_9_8
comparison rgToolFactory.py @ 7:ef0297b352d8 draft
Uploaded
author | fubar |
---|---|
date | Fri, 19 Dec 2014 18:22:38 -0500 |
parents | 42637d352d09 |
children | 4b62ea84c318 |
comparison
equal
deleted
inserted
replaced
6:42637d352d09 | 7:ef0297b352d8 |
---|---|
151 artifact.close() | 151 artifact.close() |
152 self.cl = [] | 152 self.cl = [] |
153 self.html = [] | 153 self.html = [] |
154 a = self.cl.append | 154 a = self.cl.append |
155 a(opts.interpreter) | 155 a(opts.interpreter) |
156 if self.treatbashSpecial and opts.interpreter in ['bash','sh']: | 156 # cannot use pipe input on test - change so always eg Rscript myscript.R |
157 a(self.sfile) | 157 #if self.treatbashSpecial and opts.interpreter in ['bash','sh']: |
158 else: | 158 # a(self.sfile) |
159 a('-') # stdin | 159 #else: |
160 a(opts.input_tab) | 160 # a('-') # stdin |
161 a(opts.output_tab) | 161 #a(opts.input_tab) |
162 #a(opts.output_tab) | |
163 a(self.sfile) | |
162 self.outFormats = 'tabular' # TODO make this an option at tool generation time | 164 self.outFormats = 'tabular' # TODO make this an option at tool generation time |
163 self.inputFormats = 'tabular' # TODO make this an option at tool generation time | 165 self.inputFormats = 'tabular' # TODO make this an option at tool generation time |
164 self.test1Input = '%s_test1_input.xls' % self.toolname | 166 self.test1Input = '%s_test1_input.xls' % self.toolname |
165 self.test1Output = '%s_test1_output.xls' % self.toolname | 167 self.test1Output = '%s_test1_output.xls' % self.toolname |
166 self.test1HTML = '%s_test1_output.html' % self.toolname | 168 self.test1HTML = '%s_test1_output.html' % self.toolname |
536 htmlf.write('\n'.join(html)) | 538 htmlf.write('\n'.join(html)) |
537 htmlf.write('\n') | 539 htmlf.write('\n') |
538 htmlf.close() | 540 htmlf.close() |
539 self.html = html | 541 self.html = html |
540 | 542 |
541 | |
542 def run(self): | 543 def run(self): |
543 """ | 544 """ |
544 scripts must be small enough not to fill the pipe! | 545 scripts must be small enough not to fill the pipe! |
545 """ | 546 """ |
546 my_env = os.environ.copy() | 547 my_env = os.environ.copy() |
547 if self.treatbashSpecial and self.opts.interpreter in ['bash','sh']: | 548 if self.treatbashSpecial and self.opts.interpreter in ['bash','sh']: |
548 retval = self.runBash(pth) | 549 retval = self.runBash() |
550 else: | |
551 if self.opts.output_dir: | |
552 ste = open(self.elog,'w') | |
553 sto = open(self.tlog,'w') | |
554 sto.write('## Toolfactory running %s as %s script\n' % (self.toolname,self.opts.interpreter)) | |
555 sto.flush() | |
556 p = subprocess.Popen(self.cl,shell=False,stdout=sto,stderr=ste,cwd=self.opts.output_dir,env=my_env) | |
557 else: | |
558 p = subprocess.Popen(self.cl,shell=False,cwd=self.opts.output_dir,env=my_env) | |
559 # p.stdin.write(self.script) | |
560 #print >> p.stdin, self.script | |
561 #p.stdin.close() | |
562 retval = p.wait() | |
563 if self.opts.output_dir: | |
564 sto.close() | |
565 ste.close() | |
566 # get stderr, allowing for case where it's very large | |
567 tmp_stderr = open( self.elog, 'rb' ) | |
568 stderr = '' | |
569 try: | |
570 while True: | |
571 stderr += tmp_stderr.read( buffsize ) | |
572 if not stderr or len( stderr ) % buffsize != 0: | |
573 break | |
574 except OverflowError: | |
575 pass | |
576 tmp_stderr.close() | |
577 if self.opts.make_HTML: | |
578 self.makeHtml() | |
579 return retval | |
580 | |
581 def old_run(self): | |
582 """ | |
583 can't use pipe as stdin on test. go figure | |
584 scripts must be small enough not to fill the pipe! | |
585 """ | |
586 my_env = os.environ.copy() | |
587 if self.treatbashSpecial and self.opts.interpreter in ['bash','sh']: | |
588 retval = self.runBash() | |
549 else: | 589 else: |
550 if self.opts.output_dir: | 590 if self.opts.output_dir: |
551 ste = open(self.elog,'w') | 591 ste = open(self.elog,'w') |
552 sto = open(self.tlog,'w') | 592 sto = open(self.tlog,'w') |
553 sto.write('## Toolfactory running %s as %s script\n' % (self.toolname,self.opts.interpreter)) | 593 sto.write('## Toolfactory running %s as %s script\n' % (self.toolname,self.opts.interpreter)) |