def initialize_block_converters(self): """ Initialize block converters. Prepare BlockConverters and order them like specified in self.CLASS_ORDER. """ offsets, data_blocks = split_array(self.csv_data) for offset, data in zip(offsets, data_blocks): if len(data) < 2: continue # empty block class_name = data[1][0].strip().lower() object_class = self.exportable.get(class_name) raw_headers, rows = extract_relevant_data(data) block_converter = BlockConverter(self, object_class=object_class, rows=rows, raw_headers=raw_headers, offset=offset, class_name=class_name) block_converter.check_block_restrictions() self.block_converters.append(block_converter) order = defaultdict(int) order.update({c: i for i, c in enumerate(self.CLASS_ORDER)}) order["Person"] = -1 self.block_converters.sort(key=lambda x: order[x.name])
def initialize_block_converters(self): """Initialize block converters.""" offsets_and_data_blocks = split_blocks(self.csv_data) for offset, data in offsets_and_data_blocks: class_name = data[1][0].strip().lower() object_class = self.exportable.get(class_name) raw_headers, rows = extract_relevant_data(data) block_converter = base_block.ImportBlockConverter( self, object_class=object_class, rows=rows, raw_headers=raw_headers, offset=offset, class_name=class_name, ) block_converter.check_block_restrictions() yield block_converter
def initialize_block_converters(self): """Initialize block converters.""" offsets_and_data_blocks = split_blocks(self.csv_data) for offset, data, csv_lines in offsets_and_data_blocks: class_name = data[1][0].strip().lower() object_class = self.exportable.get(class_name) raw_headers, rows = extract_relevant_data(data) block_converter = base_block.ImportBlockConverter( self, object_class=object_class, rows=rows, raw_headers=raw_headers, offset=offset, class_name=class_name, csv_lines=csv_lines[2:], # Skip 2 header lines ) block_converter.check_block_restrictions() yield block_converter
def block_converters_from_csv(self): """Prepare BlockConverters and order them like specified in self.CLASS_ORDER. """ offsets, data_blocks = split_array(self.csv_data) for offset, data in zip(offsets, data_blocks): if len(data) < 2: continue # empty block class_name = data[1][0].strip().lower() object_class = self.exportable.get(class_name) raw_headers, rows = extract_relevant_data(data) block_converter = BlockConverter(self, object_class=object_class, rows=rows, raw_headers=raw_headers, offset=offset, class_name=class_name) block_converter.check_block_restrictions() self.block_converters.append(block_converter) order = defaultdict(int) order.update({c: i for i, c in enumerate(self.CLASS_ORDER)}) order["Person"] = -1 self.block_converters.sort(key=lambda x: order[x.name])