1
0
mirror of https://github.com/scrapy/scrapy.git synced 2025-02-25 09:03:57 +00:00

change csv exporter to check flag inmediately instead of calling another function

This commit is contained in:
Daniel Grana 2009-09-03 16:26:05 -03:00
parent 5ff8ed8686
commit 8b4304d5eb

View File

@ -105,24 +105,23 @@ class CsvItemExporter(BaseItemExporter):
self._configure(kwargs, dont_fail=True)
self.include_headers_line = include_headers_line
self.csv_writer = csv.writer(file, **kwargs)
self._headers_written = False
self._headers_not_written = True
def export_item(self, item):
self._write_headers_and_set_fields_to_export(item)
if self._headers_not_written:
self._headers_not_written = False
self._write_headers_and_set_fields_to_export(item)
fields = self._get_serialized_fields(item, default_value='', \
include_empty=True)
values = [x[1] for x in fields]
self.csv_writer.writerow(values)
def _write_headers_and_set_fields_to_export(self, item):
if self._headers_written:
return
self._headers_written = True
if not self.include_headers_line:
return
if not self.fields_to_export:
self.fields_to_export = item.fields.keys()
self.csv_writer.writerow(self.fields_to_export)
if self.include_headers_line:
if not self.fields_to_export:
self.fields_to_export = item.fields.keys()
self.csv_writer.writerow(self.fields_to_export)
class PickleItemExporter(BaseItemExporter):