Ignore:
Timestamp:
15 Mar 2013, 00:58:05 (12 years ago)
Author:
uli
Message:

Support unicode-aware CSV ops. New buildout run required (new dependency package).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • main/waeup.kofa/trunk/src/waeup/kofa/utils/batching.py

    r9823 r10027  
    2222"""
    2323import grok
    24 import csv
    2524import datetime
    2625import os
     
    2827import tempfile
    2928import time
     29import unicodecsv
    3030import zc.async.interfaces
    3131from cStringIO import StringIO
     
    142142        """
    143143        result = dict()
    144         reader = csv.reader(open(path, 'rb'))
     144        reader = unicodecsv.reader(open(path, 'rb'))
    145145        raw_header = reader.next()
    146146        for num, field in enumerate(headerfields):
     
    279279        self.checkHeaders(headerfields, mode)
    280280        mapping = self.getMapping(path, headerfields, mode)
    281         reader = csv.DictReader(open(path, 'rb'))
     281        reader = unicodecsv.DictReader(open(path, 'rb'))
    282282
    283283        temp_dir = tempfile.mkdtemp()
     
    288288        failed_headers = mapping.values()
    289289        failed_headers.append('--ERRORS--')
    290         failed_writer = csv.DictWriter(open(failed_path, 'wb'),
    291                                        failed_headers)
     290        failed_writer = unicodecsv.DictWriter(open(failed_path, 'wb'),
     291                                              failed_headers)
    292292        os.chmod(failed_path, 0664)
    293293        failed_writer.writerow(dict([(x,x) for x in failed_headers]))
     
    295295        finished_path = os.path.join(temp_dir, "%s.finished%s" % (base, ext))
    296296        finished_headers = mapping.values()
    297         finished_writer = csv.DictWriter(open(finished_path, 'wb'),
    298                                          finished_headers)
     297        finished_writer = unicodecsv.DictWriter(open(finished_path, 'wb'),
     298                                                finished_headers)
    299299        os.chmod(finished_path, 0664)
    300300        finished_writer.writerow(dict([(x,x) for x in finished_headers]))
     
    398398        """
    399399        outfile = StringIO()
    400         writer = csv.DictWriter(outfile, self.available_fields)
     400        writer = unicodecsv.DictWriter(outfile, self.available_fields)
    401401        writer.writerow(
    402402            dict(zip(self.available_fields, self.available_fields))) # header
     
    455455        else:
    456456            outfile = open(filepath, 'wb')
    457         writer = csv.DictWriter(outfile, self.fields)
     457        writer = unicodecsv.DictWriter(outfile, self.fields)
    458458        writer.writerow(dict(zip(self.fields, self.fields))) # header
    459459        return writer, outfile
Note: See TracChangeset for help on using the changeset viewer.