示例#1
0
    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)
示例#2
0
    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)
示例#3
0
 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)
示例#4
0
 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)
    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()
示例#6
0
    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()