1from contextlib import contextmanager 2import os 3import tempfile 4 5 6def cleanFile(filename): 7 try: 8 os.remove(filename) 9 except OSError: 10 pass 11 12 13@contextmanager 14def guardedTempFilename(suffix='', prefix='', dir=None): 15 # Creates and yeilds a temporary filename within a with statement. The file 16 # is removed upon scope exit. 17 handle, name = tempfile.mkstemp(suffix=suffix, prefix=prefix, dir=dir) 18 os.close(handle) 19 yield name 20 cleanFile(name) 21 22 23@contextmanager 24def guardedFilename(name): 25 # yeilds a filename within a with statement. The file is removed upon scope 26 # exit. 27 yield name 28 cleanFile(name) 29 30 31@contextmanager 32def nullContext(value): 33 # yeilds a variable within a with statement. No action is taken upon scope 34 # exit. 35 yield value 36 37 38def makeReport(cmd, out, err, rc): 39 report = "Command: %s\n" % cmd 40 report += "Exit Code: %d\n" % rc 41 if out: 42 report += "Standard Output:\n--\n%s--\n" % out 43 if err: 44 report += "Standard Error:\n--\n%s--\n" % err 45 report += '\n' 46 return report 47