Compare commits

...

17 Commits

Author SHA1 Message Date
Timo Furrer 3c66697280 Merge pull request #315 from cls1991/develop
DataBook().load function params error.
2019-03-02 12:13:11 +01:00
cls1991 13334b7996 DataBook().load function params error 2017-10-24 19:33:35 +08:00
kennethreitz 77a5c8d3fb Merge pull request #309 from cristiano2lopes/delegate-type-coercion-to-openpyxl
Delegate type coercion to openpyxl
2017-09-11 11:51:53 -04:00
Cristiano Lopes 79d66cd250 Handle raised exceptions while setting the value on the cell
Convert the value to unicode, if not enough i think the bubbling of the
exception is the best thing to do
2017-09-11 13:05:31 +01:00
Cristiano Lopes 77469ef655 Delegate type coercion to openpyxl 2017-09-11 12:47:51 +01:00
kennethreitz e21676d3bd Merge pull request #302 from kirsn/patch-2
`Nose` link corrected
2017-08-29 22:58:35 -04:00
Kiran Subbaraman 7c59e1ae86 Nose link corrected
It now points to https://github.com/nose-devs/nose
2017-08-28 13:41:10 +05:30
kennethreitz 2814fbc381 v0.11.3 2016-02-16 08:49:28 -05:00
kennethreitz 9ca1d4ec54 Merge pull request #220 from kennethreitz/master
Master
2016-02-16 08:46:37 -05:00
kennethreitz abbb4e32d8 update footer in docs 2016-02-16 08:29:17 -05:00
kennethreitz f6e757d569 v0.11.2 2016-02-16 08:27:59 -05:00
kennethreitz 9ba0451843 Merge pull request #219 from timofurrer/bugfix/export-only
Fix export only formats
2016-02-16 08:17:56 -05:00
Timo Furrer d99db57d75 Fix export only formats
Formats like LaTeX could have never been exported because
`setattr(cls, set_%s % fmt.title, fmt.import_set)` always failed
for export-only formats and with that the exception was caught in the
outer try/except and the format tuple was set to (None, None) with
`cls._formats[fmt.title] = (None, None)`
2016-02-15 19:29:46 -08:00
kennethreitz 2299c00883 Merge pull request #216 from cmhofer/develop
Error: frzn_col_idx not defined
2016-02-08 18:27:39 -05:00
Claudio Mike Hofer 5ba6f5d91a frzn_col_idx not defined
As in #53 already solved. Freeze panes set to A2 again.
2016-02-08 17:30:33 +01:00
kennethreitz bbdf5f11ab v0.11.1, fix packaging error 2016-02-07 13:46:03 -05:00
kennethreitz 851ba25702 Update README.rst 2016-02-07 11:00:14 -05:00
8 changed files with 64 additions and 47 deletions
+21
View File
@@ -1,6 +1,27 @@
History
-------
0.11.3 (2016-02-16)
+++++++++++++++++++
- Release fix.
0.11.2 (2016-02-16)
+++++++++++++++++++
**Bugfixes**
- Fix export only formats.
- Fix for xlsx output.
0.11.1 (2016-02-07)
+++++++++++++++++++
**Bugfixes**
- Fixed packaging error on Python 3.
0.11.0 (2016-02-07)
+++++++++++++++++++
+1 -1
View File
@@ -3,4 +3,4 @@ test:
publish:
python setup.py register
python setup.py sdist upload
python setup.py bdist_wheel upload --universal
python setup.py bdist_wheel --universal upload
+2
View File
@@ -142,6 +142,8 @@ To install tablib, simply: ::
$ pip install tablib
Make sure to check out `Tablib on PyPi <https://pypi.python.org/pypi/tablib/>`_!
Contribute
----------
+1 -1
View File
@@ -41,7 +41,7 @@ master_doc = 'index'
# General information about the project.
project = u'Tablib'
copyright = u'2011. A <a href="http://kennethreitz.com/pages/open-projects.html">Kenneth Reitz</a> Project'
copyright = u'2016. A <a href="http://kennethreitz.org/">Kenneth Reitz</a> Project'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
+1 -1
View File
@@ -155,7 +155,7 @@ Once installed, we can generate our xUnit report with a single command. ::
This will generate a **nosetests.xml** file, which can then be analyzed.
.. _Nose: http://somethingaboutorange.com/mrl/projects/nose/
.. _Nose: https://github.com/nose-devs/nose
+19 -25
View File
@@ -40,32 +40,26 @@ packages = [
'tablib', 'tablib.formats',
'tablib.packages',
'tablib.packages.omnijson',
'tablib.packages.unicodecsv'
'tablib.packages.unicodecsv',
'tablib.packages.xlwt',
'tablib.packages.xlrd',
'tablib.packages.odf',
'tablib.packages.openpyxl',
'tablib.packages.openpyxl.shared',
'tablib.packages.openpyxl.reader',
'tablib.packages.openpyxl.writer',
'tablib.packages.yaml',
'tablib.packages.dbfpy',
'tablib.packages.xlwt3',
'tablib.packages.xlrd3',
'tablib.packages.odf3',
'tablib.packages.openpyxl3',
'tablib.packages.openpyxl3.shared',
'tablib.packages.openpyxl3.reader',
'tablib.packages.openpyxl3.writer',
'tablib.packages.yaml3',
'tablib.packages.dbfpy3'
]
if sys.version_info[0] == 2:
packages.extend([
'tablib.packages.xlwt',
'tablib.packages.xlrd',
'tablib.packages.odf',
'tablib.packages.openpyxl',
'tablib.packages.openpyxl.shared',
'tablib.packages.openpyxl.reader',
'tablib.packages.openpyxl.writer',
'tablib.packages.yaml',
'tablib.packages.dbfpy'
])
else:
packages.extend([
'tablib.packages.xlwt3',
'tablib.packages.xlrd3',
'tablib.packages.odf3',
'tablib.packages.openpyxl3',
'tablib.packages.openpyxl3.shared',
'tablib.packages.openpyxl3.reader',
'tablib.packages.openpyxl3.writer',
'tablib.packages.yaml3',
'tablib.packages.dbfpy3'
])
setup(
+6 -5
View File
@@ -18,8 +18,8 @@ from tablib.compat import OrderedDict, unicode
__title__ = 'tablib'
__version__ = '0.11.0'
__build__ = 0x001100
__version__ = '0.11.3'
__build__ = 0x001103
__author__ = 'Kenneth Reitz'
__license__ = 'MIT'
__copyright__ = 'Copyright 2016 Kenneth Reitz'
@@ -252,12 +252,13 @@ class Dataset(object):
try:
try:
setattr(cls, fmt.title, property(fmt.export_set, fmt.import_set))
setattr(cls, 'get_%s' % fmt.title, fmt.export_set)
setattr(cls, 'set_%s' % fmt.title, fmt.import_set)
cls._formats[fmt.title] = (fmt.export_set, fmt.import_set)
except AttributeError:
setattr(cls, fmt.title, property(fmt.export_set))
setattr(cls, 'get_%s' % fmt.title, fmt.export_set)
cls._formats[fmt.title] = (fmt.export_set, None)
setattr(cls, 'get_%s' % fmt.title, fmt.export_set)
setattr(cls, 'set_%s' % fmt.title, fmt.import_set)
except AttributeError:
cls._formats[fmt.title] = (None, None)
@@ -1104,7 +1105,7 @@ class Databook(object):
"""The number of the :class:`Dataset` objects within :class:`Databook`."""
return len(self._datasets)
def load(self, format, in_stream, **kwargs):
def load(self, in_stream, format, **kwargs):
"""
Import `in_stream` to the :class:`Databook` object using the `format`.
+13 -14
View File
@@ -17,6 +17,7 @@ import tablib
Workbook = openpyxl.workbook.Workbook
ExcelWriter = openpyxl.writer.excel.ExcelWriter
get_column_letter = openpyxl.cell.get_column_letter
DataTypeException = openpyxl.shared.exc.DataTypeException
from tablib.compat import unicode
@@ -120,32 +121,30 @@ def dset_sheet(dataset, ws, freeze_panes=True):
if (row_number == 1) and dataset.headers:
# ws.cell('%s%s'%(col_idx, row_number)).value = unicode(
# '%s' % col, errors='ignore')
ws.cell('%s%s'%(col_idx, row_number)).value = unicode(col)
style = ws.get_style('%s%s' % (col_idx, row_number))
style.font.bold = True
if freeze_panes:
# We want to freeze the column after the last column
ws.freeze_panes = '%s%s' % (frzn_col_idx, row_number)
# As already done in #53, but after Merge lost:
# Export Freeze only after first Line
ws.freeze_panes = 'A2'
# bold separators
elif len(row) < dataset.width:
ws.cell('%s%s'%(col_idx, row_number)).value = unicode(
'%s' % col, errors='ignore')
style = ws.get_style('%s%s' % (col_idx, row_number))
style.font.bold = True
# wrap the rest
else:
try:
if '\n' in col:
ws.cell('%s%s'%(col_idx, row_number)).value = unicode(
'%s' % col, errors='ignore')
str_col_value = unicode(col)
except TypeError:
str_col_value = ''
if '\n' in str_col_value:
style = ws.get_style('%s%s' % (col_idx, row_number))
style.alignment.wrap_text
else:
ws.cell('%s%s'%(col_idx, row_number)).value = unicode(
'%s' % col, errors='ignore')
except TypeError:
ws.cell('%s%s'%(col_idx, row_number)).value = unicode(col)
try:
ws.cell('%s%s' % (col_idx, row_number)).value = col
except (ValueError, TypeError, DataTypeException):
ws.cell('%s%s' % (col_idx, row_number)).value = unicode(col)