def initialize(self): self.handle, self.close_file = base.open_resource(self.resource, "w") if self.html_header: self.handle.write(self.html_header) attr_string = u"" if self.table_attributes: for attr_value in self.table_attributes.items(): attr_string += u' %s="%s"\n' % attr_value string = u"<table%s>\n" % attr_string if self.write_headers: string += u"<tr>" for field in self.fields: if field.label: header = field.label else: header = field.name string += u" <th>%s</th>\n" % header string += u"</tr>\n" self.handle.write(string)
def initialize(self): mode = "w" if self.truncate else "a" self.file, self.close_file = base.open_resource(self.resource, mode) self.writer = UnicodeWriter(self.file, encoding=self.encoding, dialect=self.dialect, **self.kwds) if self.write_headers: self.writer.writerow(self.fields.names())
def initialize(self): """Initialize CSV source stream: #. perform autodetection if required: #. detect encoding from a sample data (if requested) #. detect whether CSV has headers from a sample data (if requested) #. create CSV reader object #. read CSV headers if requested and initialize stream fields """ self.file, self.close_file = base.open_resource(self.resource) handle = None if self._autodetection: sample = self.file.read(self.sample_size) # Encoding test if self.detect_encoding and type(sample) == unicode: self.encoding = "utf-8" if self.detect_header: sample = sample.encode('utf-8') sniffer = csv.Sniffer() self.read_header = sniffer.has_header(sample) self.file.seek(0) if self.dialect: if type(self.dialect) == str: dialect = csv.get_dialect(self.dialect) else: dialect = self.dialect self.reader_args["dialect"] = dialect # self.reader = csv.reader(handle, **self.reader_args) self.reader = UnicodeReader(self.file, encoding = self.encoding, **self.reader_args) if self.skip_rows: for i in range(0, self.skip_rows): self.reader.next() # Initialize field list if self.read_header: field_names = self.reader.next() fields = [ (name, "string", "default") for name in field_names] self._fields = brewery.metadata.FieldList(fields)
def initialize(self): mode = "w" if self.truncate else "a" self.file, self.close_file = base.open_resource(self.resource, mode) self.writer = UnicodeWriter(self.file, encoding = self.encoding, dialect = self.dialect, **self.kwds) if self.write_headers: self.writer.writerow(self.fields.names()) self.field_names = self.fields.names()
def initialize(self): """Initialize CSV source stream: #. perform autodetection if required: #. detect encoding from a sample data (if requested) #. detect whether CSV has headers from a sample data (if requested) #. create CSV reader object #. read CSV headers if requested and initialize stream fields """ self.file, self.close_file = base.open_resource(self.resource) handle = None if self._autodetection: sample = self.file.read(self.sample_size) # Encoding test if self.detect_encoding: if type(sample) == unicode: handle = UTF8Recoder(self.file, None) else: sample = sample.decode(self.encoding) handle = UTF8Recoder(self.file, self.encoding) if self.detect_header: sample = sample.encode('utf-8') sniffer = csv.Sniffer() self.read_header = sniffer.has_header(sample) self.file.seek(0) if not handle: handle = UTF8Recoder(self.file, self.encoding) if self.dialect: if type(self.dialect) == str: dialect = csv.get_dialect(self.dialect) else: dialect = self.dialect self.reader_args["dialect"] = dialect self.reader = csv.reader(handle, **self.reader_args) # Initialize field list if self.read_header: fields = self.reader.next() self._fields = base.fieldlist(fields)
def initialize(self): """Initialize XLS source stream: """ self.file, self.close_file = base.open_resource(self.resource) self.workbook = xlrd.open_workbook(file_contents=self.file.read()) if not self.sheet_reference: self.sheet_reference = 0 if type(self.sheet_reference) == int: self.sheet = self.workbook.sheet_by_index(self.sheet_reference) else: self.sheet = self.workbook.sheet_by_name(self.sheet_reference) self.row_count = self.sheet.nrows self._read_fields()
def initialize(self): """Initialize XLS source stream: """ self.file, self.close_file = base.open_resource(self.resource) self.workbook = xlrd.open_workbook(file_contents=self.file.read(), encoding_override=self.encoding, ### causes a blank read! formatting_info=False) if not self.sheet_reference: self.sheet_reference = 0 if type(self.sheet_reference) == int: self.sheet = self.workbook.sheet_by_index(self.sheet_reference) else: self.sheet = self.workbook.sheet_by_name(self.sheet_reference) self.row_count = self.sheet.nrows self._read_fields()
def initialize(self): """Initialize CSV source stream: #. perform autodetection if required: #. detect encoding from a sample data (if requested) #. detect whether CSV has headers from a sample data (if requested) #. create CSV reader object #. read CSV headers if requested and initialize stream fields If fields are explicitly set prior to initialization, and header reading is requested, then the header row is just skipped and fields that were set before are used. Do not set fields if you want to read the header. All fields are set to `storage_type` = ``string`` and `analytical_type` = ``unknown``. """ self.file, self.close_file = base.open_resource(self.resource) handle = None if self._autodetection: sample = self.file.read(self.sample_size) # Encoding test if self.detect_encoding and type(sample) == unicode: self.encoding = "utf-8" if self.detect_header: sample = sample.encode('utf-8') sniffer = csv.Sniffer() self.read_header = sniffer.has_header(sample) self.file.seek(0) if self.dialect: if type(self.dialect) == str: dialect = csv.get_dialect(self.dialect) else: dialect = self.dialect self.reader_args["dialect"] = dialect # self.reader = csv.reader(handle, **self.reader_args) self.reader = UnicodeReader(self.file, encoding=self.encoding, empty_as_null=self.empty_as_null, **self.reader_args) if self.skip_rows: for i in range(0, self.skip_rows): self.reader.next() # Initialize field list if self.read_header: field_names = self.reader.next() # Fields set explicitly take priority over what is read from the # header. (Issue #17 might be somehow related) if not self.fields: fields = [(name, "string", "default") for name in field_names] self.fields = brewery.metadata.FieldList(fields) self.reader.set_fields(self.fields)
def initialize(self): """Initialize CSV source stream: #. perform autodetection if required: #. detect encoding from a sample data (if requested) #. detect whether CSV has headers from a sample data (if requested) #. create CSV reader object #. read CSV headers if requested and initialize stream fields If fields are explicitly set prior to initialization, and header reading is requested, then the header row is just skipped and fields that were set before are used. Do not set fields if you want to read the header. All fields are set to `storage_type` = ``string`` and `analytical_type` = ``unknown``. """ self.file, self.close_file = base.open_resource(self.resource) handle = None if self.detect_header: sample = self.file.read(self.sample_size) # Encoding test sample = sample.encode('utf-8') sniffer = csv.Sniffer() self.read_header = sniffer.has_header(sample) self.file.seek(0) if self.dialect: if type(self.dialect) == str: dialect = csv.get_dialect(self.dialect) else: dialect = self.dialect self.reader_args["dialect"] = dialect # self.reader = csv.reader(handle, **self.reader_args) self.reader = UnicodeReader(self.file, encoding=self.encoding, empty_as_null=self.empty_as_null, **self.reader_args) if self.skip_rows: for i in range(0, self.skip_rows): self.reader.next() # Initialize field list if self.read_header: field_names = self.reader.next() # Fields set explicitly take priority over what is read from the # header. (Issue #17 might be somehow related) if not self.fields: fields = [ (name, "string", "default") for name in field_names] self.fields = brewery.metadata.FieldList(fields) self.reader.set_fields(self.fields)