From 8b4304d5eb80e8506aa19dc412c0c5bade993eea Mon Sep 17 00:00:00 2001 From: Daniel Grana Date: Thu, 3 Sep 2009 16:26:05 -0300 Subject: [PATCH] change csv exporter to check flag inmediately instead of calling another function --- scrapy/contrib/exporter/__init__.py | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/scrapy/contrib/exporter/__init__.py b/scrapy/contrib/exporter/__init__.py index 6b3d2bcda..c230e6822 100644 --- a/scrapy/contrib/exporter/__init__.py +++ b/scrapy/contrib/exporter/__init__.py @@ -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):