class CsvDump(Download): ext = 'csv' def __init__(self, model, pkg, fields=None, **kw): """fields can be a list of column names or a dictionary mapping model attribute names to csv column names. """ super(CsvDump, self).__init__(model, pkg, **kw) self.fields = fields self.writer = None def get_fields(self, req): if not self.fields: self.fields = ['id', 'name'] return self.fields def before(self, req, fp): self.writer = UnicodeCsvWriter(fp) self.writer.writerow( [f if isinstance(f, basestring) else f[1] for f in self.get_fields(req)]) def row(self, req, fp, item, index): return [getattr(item, f if isinstance(f, basestring) else f[0]) for f in self.get_fields(req)] def dump(self, req, fp, item, index): self.writer.writerow(self.row(req, fp, item, index))
class CsvDump(Download): ext = 'csv' def __init__(self, model, pkg, fields=None, **kw): """fields can be a list of column names or a dictionary mapping model attribute names to csv column names. """ super(CsvDump, self).__init__(model, pkg, **kw) self.fields = fields self.writer = None def get_fields(self, req): if not self.fields: self.fields = ['id', 'name'] return self.fields def before(self, req, fp): self.writer = UnicodeCsvWriter(fp) self.writer.writerow([ f if isinstance(f, basestring) else f[1] for f in self.get_fields(req) ]) def row(self, req, fp, item, index): return [ getattr(item, f if isinstance(f, basestring) else f[0]) for f in self.get_fields(req) ] def dump(self, req, fp, item, index): self.writer.writerow(self.row(req, fp, item, index))
class CsvDump(Download): ext = 'csv' def __init__(self, model, pkg, fields=None, **kw): kw['fields'] = fields or ['id', 'name'] super(CsvDump, self).__init__(model, pkg, **kw) self.writer = None def before(self, req, fp): self.writer = UnicodeCsvWriter(fp) self.writer.writerow( [f if isinstance(f, basestring) else f[1] for f in self.fields]) def row(self, req, fp, item, index): return [getattr(item, f if isinstance(f, basestring) else f[0]) for f in self.fields] def dump(self, req, fp, item, index): self.writer.writerow(self.row(req, fp, item, index))
def before(self, req, fp): self.writer = UnicodeCsvWriter(fp) self.writer.writerow( [f if isinstance(f, basestring) else f[1] for f in self.fields])
def before(self, req, fp): self.writer = UnicodeCsvWriter(fp) self.writer.writerow( [f if isinstance(f, basestring) else f[1] for f in self.get_fields(req)])