def write_data(self, book): initializers = self.keywords.get(params.INITIALIZERS, None) if initializers is None: initializers = [None] * len(self.tables) mapdicts = self.keywords.get(params.MAPDICTS, None) if mapdicts is None: mapdicts = [None] * len(self.tables) for sheet in book: if len(sheet.colnames) == 0: sheet.name_columns_by_row(0) colnames_array = [sheet.colnames for sheet in book] scattered = zip(self.tables, colnames_array, mapdicts, initializers) importer = SQLTableImporter(self.session) for each_table in scattered: adapter = SQLTableImportAdapter(each_table[0]) adapter.column_names = each_table[1] adapter.row_initializer = each_table[2] adapter.column_name_mapping_dict = each_table[3] importer.append(adapter) to_store = OrderedDict() for sheet_name in book.sheet_names(): # due book.to_dict() brings in column_names # which corrupts the data to_store[sheet_name] = book[sheet_name].array save_data(importer, to_store, file_type=DB_SQL)
def write_data(self, book): initializers = self.keywords.get(params.INITIALIZERS, None) if initializers is None: initializers = [None] * len(self.tables) mapdicts = self.keywords.get(params.MAPDICTS, None) if mapdicts is None: mapdicts = [None] * len(self.tables) for sheet in book: if len(sheet.colnames) == 0: sheet.name_columns_by_row(0) colnames_array = [sheet.colnames for sheet in book] scattered = zip(self.tables, colnames_array, mapdicts, initializers) importer = SQLTableImporter(self.session) for each_table in scattered: adapter = SQLTableImportAdapter(each_table[0]) adapter.column_names = each_table[1] adapter.column_name_mapping_dict = each_table[2] adapter.row_initializer = each_table[3] importer.append(adapter) to_store = OrderedDict() for sheet_name in book.sheet_names(): # due book.to_dict() brings in column_names # which corrupts the data to_store[sheet_name] = book[sheet_name].array save_data(importer, to_store, file_type=DB_SQL, **self.keywords)
def write_data(self, sheet): headers = sheet.colnames if len(headers) == 0: headers = sheet.rownames importer = SQLTableImporter(self.session) adapter = SQLTableImportAdapter(self.table) adapter.column_names = headers adapter.row_initializer = self.keywords.get(params.INITIALIZER, None) adapter.column_name_mapping_dict = self.keywords.get(params.MAPDICT, None) importer.append(adapter) save_data(importer, {adapter.get_name(): sheet.array}, file_type=DB_SQL, **self.keywords)
def setUp(self): Base.metadata.drop_all(engine) Base.metadata.create_all(engine) self.session = Session() data = { "Category": [ ["id", "name"], [1, "News"], [2, "Sports"] ], "Post": [ ["id", "title", "body", "pub_date", "category"], [1, "Title A", "formal", datetime.datetime(2015, 1, 20, 23, 28, 29), "News"], [2, "Title B", "informal", datetime.datetime(2015, 1, 20, 23, 28, 30), "Sports"] ] } def category_init_func(row): c = Category(row['name']) c.id = row['id'] return c def post_init_func(row): c = self.session.query(Category).filter_by( name=row['category']).first() p = Post(row['title'], row['body'], c, row['pub_date']) return p importer = SQLTableImporter(self.session) category_adapter = SQLTableImportAdapter(Category) category_adapter.column_names = data['Category'][0] category_adapter.row_initializer = category_init_func importer.append(category_adapter) post_adapter = SQLTableImportAdapter(Post) post_adapter.column_names = data['Post'][0] post_adapter.row_initializer = post_init_func importer.append(post_adapter) writer = SQLBookWriter() writer.open_content(importer) to_store = OrderedDict() to_store.update({category_adapter.get_name(): data['Category'][1:]}) to_store.update({post_adapter.get_name(): data['Post'][1:]}) writer.write(to_store) writer.close()
def write_data(self, sheet): headers = sheet.colnames if len(headers) == 0: headers = sheet.rownames importer = SQLTableImporter(self.session) adapter = SQLTableImportAdapter(self.table) adapter.column_names = headers adapter.row_initializer = self.keywords.get(params.INITIALIZER, None) adapter.column_name_mapping_dict = self.keywords.get( params.MAPDICT, None) importer.append(adapter) save_data(importer, {adapter.get_name(): sheet.array}, file_type=DB_SQL)