def __writeDSMl(self, file): """Write the export list to DSML format. """ with open(file, 'w') as f: # DSML need some header info. header = StringIO.StringIO() dsmlWriter = dsml.DSMLWriter(header) dsmlWriter.writeHeader() f.write(header.getvalue()) header.close() # Write the actuall export entries for x in self.exportList: try: f.write(x.convertToDsml()) except IOError, e: msg = 'Could not export {0}. Reason\n{1}' self.__logger.error(msg.format((str(x), str(e)))) # DSML need additional footer info, to close the format footer = StringIO.StringIO() dsmlWriter = dsml.DSMLWriter(footer) dsmlWriter.writeFooter() f.write(footer.getvalue()) footer.close()
def export(self): """Slot for the export button. Exports all checked items to the file defined in the outputEdit widget. """ # Iterate through the modelitems and remove unchekced items # from the export dictionary, which will be used later. for i in xrange(self.model.rowCount()): item = self.model.itemFromIndex(self.model.index(i, 0)) if item.checkState() != QtCore.Qt.Checked: del self.exportDict[self.__utf8(item.text())] # Map the dictionary keys # itemList = map(lambda x: self.exportDict[x][0], self.exportDict.keys()) itemList.sort() try: filename = self.outputEdit.text() fileHandler = open(filename, 'w') format = self.__utf8(self.formatBox.currentText()) # DSML need some header info. if format == 'DSML': tmp = StringIO.StringIO() dsmlWriter = dsml.DSMLWriter(tmp) dsmlWriter.writeHeader() fileHandler.write(tmp.getvalue()) # Write the LDAP entries to file for x in itemList: try: if format == 'LDIF': fileHandler.write(x.convertToLdif()) elif format == 'DSML': fileHandler.write(x.convertToDsml()) except IOError, e: msg = 'Could not export %s. Reason\n%s' % (str(x), str(e)) self.__logger.error(msg) # DSML need additional footer info, to close the format if format == 'DSML': print 'footer' tmp = StringIO.StringIO() dsmlWriter = dsml.DSMLWriter(tmp) dsmlWriter.writeFooter() fileHandler.write(tmp.getvalue()) fileHandler.close()
def __init__(self,l,writer_obj,headerStr='',footerStr=''): import dsml if isinstance(writer_obj,dsml.DSMLWriter): self._dsml_writer = writer_obj else: self._dsml_writer = dsml.DSMLWriter(writer_obj) FileWriter.__init__(self,l,self._dsml_writer._output_file,headerStr,footerStr)
def __init__(self,l,writer_obj,headerStr='',footerStr=''): """ Initialize a StreamResultHandler Parameters: l LDAPObject instance writer_obj Either a file-like object or a ldif.DSMLWriter instance used for output """ import dsml if isinstance(writer_obj,dsml.DSMLWriter): self._dsml_writer = writer_obj else: self._dsml_writer = dsml.DSMLWriter(writer_obj) FileWriter.__init__(self,l,self._dsml_writer._output_file,headerStr,footerStr)