def dump_table(table, filename, con, std=None, delimiter=',', format=None, encoding='utf-8', inspector=None): from uliweb.utils.common import str_value from StringIO import StringIO import csv if not std: if isinstance(filename, (str, unicode)): std = open(filename, 'w') else: std = filename else: std = sys.stdout #add inspector table columns process, will not use model fields but database fields if inspector: meta = MetaData() table = Table(table.name, meta) inspector.reflecttable(table, None) result = do_(table.select()) fields = [x.name for x in table.c] if not format: print >>std, '#' + ' '.join(fields) elif format == 'txt': print >>std, '#' + ','.join(fields) for r in result: if not format: print >>std, r elif format == 'txt': buf = StringIO() fw = csv.writer(buf, delimiter=delimiter) fw.writerow([str_value(x, encoding=encoding) for x in r]) print >>std, buf.getvalue().rstrip() else: raise Exception, "Can't support the text format %s" % format
def dump_table(table, filename, con, std=None, delimiter=',', format=None, encoding='utf-8', inspector=None, engine_name=None): from uliweb.utils.common import str_value from StringIO import StringIO import csv b = time() if not std: if isinstance(filename, (str, unicode)): std = open(filename, 'w') else: std = filename else: std = sys.stdout #add inspector table columns process, will not use model fields but database fields if inspector: meta = MetaData() table = Table(table.name, meta) inspector.reflecttable(table, None) result = do_(table.select(), engine_name) fields = [x.name for x in table.c] if not format: print >> std, ' '.join(fields) elif format == 'txt': print >> std, ','.join(fields) n = 0 if format == 'txt': fw = csv.writer(std, delimiter=delimiter) for r in result: n += 1 if not format: print >> std, r elif format == 'txt': fw.writerow([ str_value(x, encoding=encoding, newline_escape=True) for x in r ]) else: raise Exception, "Can't support the text format %s" % format return 'OK (%d/%lfs)' % (n, time() - b)
def dump_table(table, filename, con, std=None, delimiter=',', format=None, encoding='utf-8', inspector=None, engine_name=None): from uliweb.utils.common import str_value from StringIO import StringIO import csv b = time() if not std: if isinstance(filename, (str, unicode)): std = open(filename, 'w') else: std = filename else: std = sys.stdout #add inspector table columns process, will not use model fields but database fields if inspector: meta = MetaData() table = Table(table.name, meta) inspector.reflecttable(table, None) result = do_(table.select(), engine_name) fields = [x.name for x in table.c] if not format: print >>std, ' '.join(fields) elif format == 'txt': print >>std, ','.join(fields) n = 0 if format == 'txt': fw = csv.writer(std, delimiter=delimiter) for r in result: n += 1 if not format: print >>std, r elif format == 'txt': fw.writerow([str_value(x, encoding=encoding, newline_escape=True) for x in r]) else: raise Exception, "Can't support the text format %s" % format return 'OK (%d/%lfs)' % (n, time()-b)
def dump_table(table, filename, con, std=None, delimiter=',', format=None, encoding='utf-8'): from uliweb.utils.common import str_value from StringIO import StringIO import csv if not std: std = open(filename, 'w') else: std = sys.stdout result = con.execute(table.select()) print >>std, '#', for c in table.c: print >>std, c.name, print >>std for r in result: if not format: print >>std, r elif format == 'txt': buf = StringIO() fw = csv.writer(buf, delimiter=delimiter) fw.writerow([str_value(x, encoding=encoding) for x in r]) print >>std, buf.getvalue().rstrip() else: raise Exception, "Can't support the text format %s" % format