From 58e541c464ea358a9b89ba2b145958c4552ae7a3 Mon Sep 17 00:00:00 2001 From: chfw Date: Wed, 21 Dec 2016 16:05:29 +0000 Subject: [PATCH] back port the fix for #24 to 0.2.6 --- CHANGELOG.rst | 33 +++++++++++++++++++++++++-------- docs/source/conf.py | 4 ++-- pyexcel_io.yaml | 4 ++-- pyexcel_io/database/django.py | 5 ++++- setup.py | 2 +- tests/test_django_book.py | 5 ++++- 6 files changed, 38 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index e592615..286e469 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,6 +1,15 @@ Change log ================================================================================ +0.26 - 21.12.2016 +-------------------------------------------------------------------------------- + +Updated +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +#. `#24 `__, pass on batch_size + + 0.25 - 20.12.2016 -------------------------------------------------------------------------------- @@ -25,8 +34,10 @@ Updated Added ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -#. `#21 `__, choose subset from data base tables for export -#. `#22 `__, custom renderer if given `row_renderer` as parameter. +#. `#21 `__, choose subset from + data base tables for export +#. `#22 `__, custom renderer if + given `row_renderer` as parameter. 0.22 - 31.08.2016 -------------------------------------------------------------------------------- @@ -34,8 +45,8 @@ Added Added ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -#. support pagination. two pairs: start_row, row_limit and start_column, column_limit - help you deal with large files. +#. support pagination. two pairs: start_row, row_limit and start_column, + column_limit help you deal with large files. #. `skip_empty_rows=True` was introduced. To include empty rows, put it to False. Updated @@ -52,15 +63,21 @@ Updated Added ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -#. csv format: handle utf-16 encoded csv files. Potentially being able to decode other formats if correct "encoding" is provided -#. csv format: write utf-16 encoded files. Potentially other encoding is also supported +#. csv format: handle utf-16 encoded csv files. Potentially being able to decode + other formats if correct "encoding" is provided +#. csv format: write utf-16 encoded files. Potentially other encoding is also + supported #. support stdin as input stream and stdout as output stream Updated ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -#. Attention, user of pyexcel-io! No longer io stream validation is performed in python 3. The guideline is: io.StringIO for csv, tsv only, otherwise BytesIO for xlsx, xls, ods. You can use RWManager.get_io to produce a correct stream type for you. -#. `#15 `__, support foreign django/sql foreign key +#. Attention, user of pyexcel-io! No longer io stream validation is performed + in python 3. The guideline is: io.StringIO for csv, tsv only, otherwise + BytesIO for xlsx, xls, ods. You can use RWManager.get_io to produce a correct + stream type for you. +#. `#15 `__, support foreign + django/sql foreign key 0.2.0 - 01.06.2016 -------------------------------------------------------------------------------- diff --git a/docs/source/conf.py b/docs/source/conf.py index 8d31666..015e0fb 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -17,8 +17,8 @@ project = u'pyexcel-io' copyright = u'2015-2016 Onni Software Ltd.' -version = '0.2.4' -release = '0.2.5' +version = '0.2.5' +release = '0.2.6' exclude_patterns = [] pygments_style = 'sphinx' html_theme = 'default' diff --git a/pyexcel_io.yaml b/pyexcel_io.yaml index ddeeb12..01db5cb 100644 --- a/pyexcel_io.yaml +++ b/pyexcel_io.yaml @@ -1,8 +1,8 @@ overrides: "pyexcel.yaml" name: "pyexcel-io" nick_name: io -version: 0.2.5 -release: 0.2.4 +version: 0.2.6 +release: 0.2.5 dependencies: - ordereddict;python_version<"2.7" extra_dependencies: diff --git a/pyexcel_io/database/django.py b/pyexcel_io/database/django.py index 9df9030..1155eef 100644 --- a/pyexcel_io/database/django.py +++ b/pyexcel_io/database/django.py @@ -218,12 +218,15 @@ class DjangoBookWriter(BookWriter): def open_content(self, file_content, **keywords): self.importer = file_content + self.keywords = keywords def create_sheet(self, sheet_name): sheet_writer = None model = self.importer.get(sheet_name) if model: - sheet_writer = DjangoModelWriterNew(model) + sheet_writer = DjangoModelWriterNew( + model, + batch_size=self.keywords.get('batch_size', None)) return sheet_writer diff --git a/setup.py b/setup.py index 16bbce4..0360ea6 100644 --- a/setup.py +++ b/setup.py @@ -10,7 +10,7 @@ NAME = 'pyexcel-io' AUTHOR = 'C.W.' -VERSION = '0.2.5' +VERSION = '0.2.6' EMAIL = 'wangc_2011 (at) hotmail.com' LICENSE = 'New BSD' DESCRIPTION = ( diff --git a/tests/test_django_book.py b/tests/test_django_book.py index 737d9f5..23f736f 100644 --- a/tests/test_django_book.py +++ b/tests/test_django_book.py @@ -263,6 +263,7 @@ def setUp(self): {'B': 6, 'A': 3, 'C': 9}] def test_save_to_more_models(self): + sample_batch_size = 10 model1 = FakeDjangoModel() model2 = FakeDjangoModel() importer = DjangoModelImporter() @@ -277,11 +278,13 @@ def test_save_to_more_models(self): adapter2.get_name(): self.content['Sheet2'][1:] } writer = DjangoBookWriter() - writer.open_content(importer) + writer.open_content(importer, batch_size=sample_batch_size) writer.write(to_store) writer.close() assert model1.objects.objs == self.result1 assert model2.objects.objs == self.result2 + assert model1.objects.batch_size == sample_batch_size + assert model2.objects.batch_size == sample_batch_size def test_reading_from_more_models(self): model1 = FakeDjangoModel()