def dumps(self, fields=None, options={}): rows = self.data(fields) if fields is None: fields = commands.getFieldTypes(self._db, self._table).keys() columnwidths = [0 for i in range(len(fields))] if options.get('columns'): rows.insert(0, fields) for row in iter(rows): for i, val in enumerate(row): columnwidths[i] = max(len(str(val)), columnwidths[i]) if options.get('columns'): dashes = [] for i, header in enumerate(fields): dashes.append(unicode('-' * (columnwidths[i]))) rows.insert(1, dashes) s = u'' for row in iter(rows): for i, val in enumerate(row): s += unicode(val).ljust(columnwidths[i] + 2) s += '\n' return s
def dumps(self, fields=None, options={}): rows = self.data(fields) if options.get('columns'): if fields is None: fields = commands.getFieldTypes(self._db, self._table).keys() rows.insert(0, fields) delimiter = options.get('delimeter', ',') escapechar = options.get('escapechar', '\\\\') lineterminator = options.get('lineterminator', '\\r\\n') quotechar = options.get('quotechar', '"') s = StringIO.StringIO() w = csv.writer( s, delimiter=delimiter.decode('string-escape'), escapechar=escapechar.decode('string-escape'), lineterminator=lineterminator.decode('string-escape'), quotechar=quotechar.decode('string-escape'), ) w.writerows(rows) s.seek(0) return s.read()
def dumps(self, fields=None, options={}): rows = self.data(fields) indent = options.get('indent', 4) if options.get('columns'): if fields is None: fields = commands.getFieldTypes(self._db, self._table).keys() rows.insert(0, fields) return json.dumps(rows, indent=indent)
def reload(self): self._model.clear() dbfields = OrderedDict() for table in self._db.tables(): item = QtGui.QStandardItem(self._tableicon, table) self._model.appendRow(item) fields = commands.getFieldTypes(self._db, table) columns = QtGui.QStandardItem('Columns') item.appendRow(columns) for field, type_ in fields.iteritems(): fielditem = QtGui.QStandardItem(self._columnicon, '%s (%s)' % (field, type_)) columns.appendRow(fielditem) columns.setText('Columns (%i)' % len(fields.keys())) dbfields[table] = fields self._db.setFields(dbfields)
def __init__(self, db, table, parent=None): super(ExportDataDialog, self).__init__(parent) self._ui = form_class() self._ui.setupUi(self) self._db = db self._table = table self._file = None fields = commands.getFieldTypes(self._db, self._table).keys() model = QtGui.QStringListModel(fields) self._ui.lvFields.setModel(model) self._ui.lvFields.selectAll() self._ui.bBrowse.clicked.connect(self.setFile) self._ui.buttonBox.accepted.connect(self.export) self._ui.bSelectAll.clicked.connect(self._ui.lvFields.selectAll) self._ui.bDeselectAll.clicked.connect(self._ui.lvFields.clearSelection) self._ui.eFile.textChanged.connect(self.__enableSave) self.__enableSave()
def dumps(self, fields=None, options={}): rows = self.data(fields) queries = [] if fields is None: fields = commands.getFieldTypes(self._db, self._table).keys() if options.get('columns'): queries.append(commands.tableCreateScript(self._db, self._table)) if options.get('data'): for row in rows: for i, v in enumerate(row): if isinstance(v, (str, unicode)): row[i] = "'%s'" % repr(v)[2:-1] else: row[i] = str(v) query = "INSERT INTO {table} ({fields}) VALUES ({values});".format( table=self._table, fields=','.join(fields), values=','.join(row)) queries.append(query) return '\n'.join(queries)