def __init__(self, file, **keywords): """Constructor :param str file: file name :param dict keywords: extra parameters for format specific writer """ if isinstance(file, tuple): self.writer = get_writer(file[1], file[0], **keywords) else: self.writer = get_writer(file, **keywords)
def write_data(self, book): if isinstance(self.file_name, tuple): writer = get_writer(self.file_name[1], self.file_name[0], **self.keywords) else: writer = get_writer(self.file_name, **self.keywords) writer.write(book.to_dict()) writer.close()
def write_data(self, sheet): if isinstance(self.file_name, tuple): writer = get_writer(self.file_name[1], self.file_name[0], single_sheet_in_book=True, **self.keywords) else: writer = get_writer(self.file_name, single_sheet_in_book=True, **self.keywords) raw_sheet = writer.create_sheet(sheet.name) data_table = sheet.to_array() if len(data_table) > 0: rows = len(data_table) columns = len(data_table[0]) raw_sheet.set_size((rows, columns)) raw_sheet.write_array(data_table) raw_sheet.close() writer.close()
def get_writer(self, sheet): headers = sheet.colnames if len(headers) == 0: headers = sheet.rownames models = { sheet.name: (self.model, headers, self.keywords.get(KEYWORD_MAPDICT, None), self.keywords.get(KEYWORD_INITIALIZER, None)) } w = get_writer(DB_DJANGO, single_sheet_in_book=True, models=models, batch_size=self.keywords.get(KEYWORD_BATCH_SIZE, None)) return w
def get_writer(self, sheet): headers = sheet.colnames if len(headers) == 0: headers = sheet.rownames tables = { sheet.name: (self.table, headers, self.keywords.get(KEYWORD_MAPDICT, None), self.keywords.get(KEYWORD_INITIALIZER, None)) } w = get_writer(DB_SQL, single_sheet_in_book=True, session=self.session, tables=tables, **self.keywords) return w
def get_writer(self, sheet): models = { sheet.name: ( self.model, sheet.colnames, self.keywords.get(KEYWORD_MAPDICT, None), self.keywords.get(KEYWORD_INITIALIZER, None) ) } w = get_writer( DB_DJANGO, single_sheet_in_book=True, models=models, batch_size=self.keywords.get(KEYWORD_BATCH_SIZE, None) ) return w
def get_writer(self, sheet): tables = { sheet.name: ( self.table, sheet.colnames, self.keywords.get(KEYWORD_MAPDICT, None), self.keywords.get(KEYWORD_INITIALIZER, None) ) } w = get_writer( DB_SQL, single_sheet_in_book=True, session=self.session, tables=tables, **self.keywords ) return w
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] x = zip(self.tables, colnames_array, mapdicts, initializers) table_dict = dict(zip(book.name_array, x)) writer = get_writer(DB_SQL, session=self.session, tables=table_dict, **self.keywords) _write_book(writer, book)
def write_data(self, book): initializers = self.keywords.get(KEYWORD_INITIALIZERS, None) if initializers is None: initializers = [None] * len(self.tables) mapdicts = self.keywords.get(KEYWORD_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] x = zip(self.tables, colnames_array, mapdicts, initializers) table_dict = dict(zip(book.name_array, x)) writer = get_writer(DB_SQL, session=self.session, tables=table_dict, **self.keywords) _write_book(writer, book)
def write_data(self, book): new_models = [model for model in self.models if model is not None] batch_size = self.keywords.get(KEYWORD_BATCH_SIZE, None) initializers = self.keywords.get(KEYWORD_INITIALIZERS, None) if initializers is None: initializers = [None] * len(new_models) mapdicts = self.keywords.get(KEYWORD_MAPDICTS, None) if mapdicts is None: mapdicts = [None] * len(new_models) for sheet in book: if len(sheet.colnames) == 0: sheet.name_columns_by_row(0) colnames_array = [sheet.colnames for sheet in book] x = zip(new_models, colnames_array, mapdicts, initializers) table_dict = dict(zip(book.name_array, x)) writer = get_writer(DB_DJANGO, models=table_dict, batch_size=batch_size) _write_book(writer, book)
def write_data(self, book): new_models = [model for model in self.models if model is not None] batch_size = self.keywords.get(params.BATCH_SIZE, None) initializers = self.keywords.get(params.INITIALIZERS, None) if initializers is None: initializers = [None] * len(new_models) mapdicts = self.keywords.get(params.MAPDICTS, None) if mapdicts is None: mapdicts = [None] * len(new_models) for sheet in book: if len(sheet.colnames) == 0: sheet.name_columns_by_row(0) colnames_array = [sheet.colnames for sheet in book] x = zip(new_models, colnames_array, mapdicts, initializers) table_dict = dict(zip(book.name_array, x)) writer = get_writer(DB_DJANGO, models=table_dict, batch_size=batch_size) _write_book(writer, book)
def get_writer(self, sheet): headers = sheet.colnames if len(headers) == 0: headers = sheet.rownames models = { sheet.name: ( self.model, headers, self.keywords.get(params.MAPDICT, None), self.keywords.get(params.INITIALIZER, None) ) } w = get_writer( DB_DJANGO, single_sheet_in_book=True, models=models, batch_size=self.keywords.get(params.BATCH_SIZE, None) ) return w
def get_writer(self, sheet): headers = sheet.colnames if len(headers) == 0: headers = sheet.rownames tables = { sheet.name: ( self.table, headers, self.keywords.get(params.MAPDICT, None), self.keywords.get(params.INITIALIZER, None) ) } w = get_writer( DB_SQL, single_sheet_in_book=True, session=self.session, tables=tables, **self.keywords ) return w
def test_writer_csvz_data_from_memory(): if not PY2: io = StringIO() get_writer(io, file_type="csvz") else: raise IOError("pass it")
def test_writer_unknown_data_from_memory2(): io = BytesIO() # mock it BINARY_STREAM_TYPES.append('unknown1') get_writer(io, file_type="unknown1")
def test_writer_xlsm_data_from_memory2(): io = BytesIO() get_writer(io, file_type="xlsm")
def test_write_unknown_data(): get_writer("test.unknown")
def test_write_xlsx_data(): get_writer("test.xlsx")
def test_wrong_parameter_to_get_writer2(): get_writer(1, file_type="csv")
def test_wrong_parameter_to_get_writer(): get_writer(1)