Exemple #1
0
 def append(self, f):
     with closing(urllib2.urlopen(self.url)) as socket:
         wb = Workbook.from_file(socket)
     rdr0 = enumerate(wb.sheet_iter(self.mapping.sheet))
     if not self.mapping.header:
         rdr0 = chain(
             [(0, None)],
             ((rownum + 1, row) for (rownum, row) in rdr0))
     rfp = FM.File.m.get_file(f._id)
     wfp = FM.File.m.new_file(
         f.filename + '-appended.csv',
         contentType='text/csv')
     self.appended_file_id = wfp._id
     with rfp, wfp:
         rdr1 = csv.reader(util.Linereader(rfp))
         wr = csv.writer(wfp)
         key0 = operator.itemgetter(0)
         key1 = lambda row: int(row[0])
         for val0, val1 in util.right_join(rdr0, rdr1, key0, key1):
             if val0 is None:
                 row0 = []
             else:
                 row0 = val0[1]
             if val1 is None:
                 row1 = []
             else:
                 row1 = val1
             if row0 is None:
                 row0 = []
             if row1 is None:
                 row1 = []
             wr.writerow(row1 + row0)
Exemple #2
0
def import_list(event_id):

    ev = EM.event.m.get(_id=event_id)
    lst = M.List.query.get(_id=ev.properties.list_id)

    # read file associated with list and get spreadsheet contents

    with closing(urllib2.urlopen(lst.url)) as socket:
        wb = Workbook.from_file(socket)
Exemple #3
0
 def subscriber_iter(self):
     with closing(urllib2.urlopen(self.url)) as socket:
         wb = Workbook.from_file(socket)
     rdr = enumerate(wb.sheet_iter(self.mapping.sheet))
     if self.mapping.header:
         rdr.next()
     else:
         rdr = ((rownum + 1, row) for (rownum, row) in rdr)
     for rows in util.chunk(rdr, 100):
         fp = StringIO()
         wr = csv.writer(fp)
         for rownum, row in rows:
             wr.writerow([rownum, row[self.mapping.email]])
         yield fp.getvalue()