def openoutputstream(self, jarfilename, filename): """opens a file for writing (possibly inside a jarfile as a StringIO""" if jarfilename is None: def onclose(contents): self.overwritestr(filename, contents) else: if jarfilename in self.jarfiles: jarfile = self.jarfiles[jarfilename] else: jarstream = self.openoutputstream(None, jarfilename) jarfile = ZipFileCatcher(jarstream, "w") self.jarfiles[jarfilename] = jarfile self.addcatcher(jarstream.slam) def onclose(contents): jarfile.overwritestr(filename, contents) outputstream = wStringIO.CatchStringOutput(onclose) outputstream.name = "%s %s" % (jarfilename, filename) if jarfilename is None: self.addcatcher(outputstream.slam) else: jarfile.addcatcher(outputstream.slam) return outputstream
def openoutputfile(self, subfile): """returns a pseudo-file object for the given subfile""" def onclose(contents): self.multifile.write(contents) self.multifile.flush() outputfile = wStringIO.CatchStringOutput(onclose) outputfile.filename = subfile return outputfile
def openoutputfile(self, subfile): """returns a pseudo-file object for the given subfile""" def onclose(contents): pass outputfile = wStringIO.CatchStringOutput(onclose) outputfile.filename = subfile outputfile.wffile = self.wffile return outputfile
def openoutputfile(self, subfile): """returns a pseudo-file object for the given subfile""" def onclose(contents): if isinstance(contents, bytes): contents = contents.decode(self.encoding) self.multifile.write(contents) self.multifile.flush() outputfile = wStringIO.CatchStringOutput(onclose) outputfile.filename = subfile return outputfile