Hello community,
here is the log from the commit of package python-xlwt for openSUSE:Factory checked in at 2018-02-01 21:31:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-xlwt (Old)
and /work/SRC/openSUSE:Factory/.python-xlwt.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-xlwt"
Thu Feb 1 21:31:08 2018 rev:8 rq:571742 version:1.3.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-xlwt/python-xlwt.changes 2017-05-09 18:02:00.302599937 +0200
+++ /work/SRC/openSUSE:Factory/.python-xlwt.new/python-xlwt.changes 2018-02-01 21:31:47.578324589 +0100
@@ -1,0 +2,9 @@
+Tue Jan 30 15:20:15 UTC 2018 - toddrme2178@gmail.com
+
+- Update to version 1.3.0
+ * Officially support Python 3.6, drop support for 2.6.
+ * Fix bytes/string type mismatch in :func:`upack2rt` on python 3.
+ * Packaging and code style tweaks.
+ * Use generator expressions to avoid unnecessary lists in memory.
+
+-------------------------------------------------------------------
Old:
----
xlwt-1.2.0.tar.gz
New:
----
xlwt-1.3.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-xlwt.spec ++++++
--- /var/tmp/diff_new_pack.Dz0hPA/_old 2018-02-01 21:31:48.166297082 +0100
+++ /var/tmp/diff_new_pack.Dz0hPA/_new 2018-02-01 21:31:48.170296895 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-xlwt
#
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -20,7 +20,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-xlwt
-Version: 1.2.0
+Version: 1.3.0
Release: 0
Url: https://secure.simplistix.co.uk/svn/xlwt/trunk
Summary: Library to Create Spreadsheet Files Compatible With MS Excel 97/2000/XP/2003
@@ -33,6 +33,7 @@
BuildRequires: %{python_module devel}
BuildRequires: %{python_module setuptools}
BuildRequires: python3-Sphinx
+BuildRequires: python3-pkginfo
%if %{with tests}
BuildRequires: %{python_module nose}
%endif
++++++ xlwt-1.2.0.tar.gz -> xlwt-1.3.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xlwt-1.2.0/.travis.yml new/xlwt-1.3.0/.travis.yml
--- old/xlwt-1.2.0/.travis.yml 2017-01-04 17:16:40.000000000 +0100
+++ new/xlwt-1.3.0/.travis.yml 2017-08-22 08:46:08.000000000 +0200
@@ -4,14 +4,16 @@
language: python
python:
+ - "3.6"
- "3.5"
- "3.4"
- "3.3"
- "2.7"
- - "2.6"
# command to install dependencies
-install: "pip install -Ur requirements.txt"
+install:
+- "pip install -U pip setuptools"
+- "pip install -Ur requirements.txt"
# command to run tests, e.g. python setup.py test
script: nosetests --with-cov --cov=xlwt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xlwt-1.2.0/PKG-INFO new/xlwt-1.3.0/PKG-INFO
--- old/xlwt-1.2.0/PKG-INFO 2017-01-04 17:17:15.000000000 +0100
+++ new/xlwt-1.3.0/PKG-INFO 2017-08-22 08:47:13.000000000 +0200
@@ -1,12 +1,12 @@
Metadata-Version: 1.1
Name: xlwt
-Version: 1.2.0
+Version: 1.3.0
Summary: Library to create spreadsheet files compatible with MS Excel 97/2000/XP/2003 XLS files, on any platform, with Python 2.6, 2.7, 3.3+
Home-page: http://www.python-excel.org/
Author: John Machin
Author-email: sjmachin@lexicon.net
License: BSD
-Download-URL: http://pypi.python.org/pypi/xlwt
+Download-URL: https://pypi.python.org/pypi/xlwt
Description: |Travis|_ |Coveralls|_ |Docs|_ |PyPI|_
.. |Travis| image:: https://api.travis-ci.org/python-excel/xlwt.svg?branch=master
@@ -16,7 +16,7 @@
.. _Coveralls: https://coveralls.io/r/python-excel/xlwt?branch=master
.. |Docs| image:: https://readthedocs.org/projects/xlwt/badge/?version=latest
- .. _Docs: http://xlwt.readthedocs.org/en/latest/
+ .. _Docs: https://xlwt.readthedocs.org/en/latest/
.. |PyPI| image:: https://badge.fury.io/py/xlwt.svg
.. _PyPI: https://badge.fury.io/py/xlwt
@@ -30,6 +30,9 @@
The package itself is pure Python with no dependencies on modules or packages
outside the standard Python distribution.
+ Please read this before using this package:
+ https://groups.google.com/d/msg/python-excel/P6TjJgFVjMI/g8d0eWxTBQAJ
+
Installation
============
@@ -69,7 +72,7 @@
examples directory and the source code itself.
The latest documentation can also be found at:
- http://xlwt.readthedocs.org/en/latest/
+ https://xlwt.readthedocs.org/en/latest/
Problems?
=========
@@ -77,7 +80,7 @@
- Read the source
- - Ask a question on http://groups.google.com/group/python-excel/
+ - Ask a question on https://groups.google.com/group/python-excel/
Acknowledgements
================
@@ -100,9 +103,9 @@
Classifier: Topic :: Database
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content :: CGI Tools/Libraries
Classifier: Programming Language :: Python :: 2
-Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xlwt-1.2.0/README.rst new/xlwt-1.3.0/README.rst
--- old/xlwt-1.2.0/README.rst 2017-01-04 17:16:40.000000000 +0100
+++ new/xlwt-1.3.0/README.rst 2017-08-22 08:46:08.000000000 +0200
@@ -7,7 +7,7 @@
.. _Coveralls: https://coveralls.io/r/python-excel/xlwt?branch=master
.. |Docs| image:: https://readthedocs.org/projects/xlwt/badge/?version=latest
-.. _Docs: http://xlwt.readthedocs.org/en/latest/
+.. _Docs: https://xlwt.readthedocs.org/en/latest/
.. |PyPI| image:: https://badge.fury.io/py/xlwt.svg
.. _PyPI: https://badge.fury.io/py/xlwt
@@ -21,6 +21,9 @@
The package itself is pure Python with no dependencies on modules or packages
outside the standard Python distribution.
+Please read this before using this package:
+https://groups.google.com/d/msg/python-excel/P6TjJgFVjMI/g8d0eWxTBQAJ
+
Installation
============
@@ -60,7 +63,7 @@
examples directory and the source code itself.
The latest documentation can also be found at:
-http://xlwt.readthedocs.org/en/latest/
+https://xlwt.readthedocs.org/en/latest/
Problems?
=========
@@ -68,7 +71,7 @@
- Read the source
-- Ask a question on http://groups.google.com/group/python-excel/
+- Ask a question on https://groups.google.com/group/python-excel/
Acknowledgements
================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xlwt-1.2.0/docs/changes.rst new/xlwt-1.3.0/docs/changes.rst
--- old/xlwt-1.2.0/docs/changes.rst 2017-01-04 17:16:40.000000000 +0100
+++ new/xlwt-1.3.0/docs/changes.rst 2017-08-22 08:46:08.000000000 +0200
@@ -3,6 +3,22 @@
.. currentmodule:: xlwt
+1.3.0 (22 August 2017)
+----------------------
+
+- Officially support Python 3.6, drop support for 2.6.
+
+- Fix bytes/string type mismatch in :func:`upack2rt` on python 3.
+
+- Packaging and code style tweaks.
+
+- Use generator expressions to avoid unnecessary lists in memory.
+
+Thanks to the following for their contributions to this release:
+
+- Jon Dufresne
+- Bill Adams
+
1.2.0 (4 January 2017)
----------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xlwt-1.2.0/docs/conf.py new/xlwt-1.3.0/docs/conf.py
--- old/xlwt-1.2.0/docs/conf.py 2017-01-04 17:16:40.000000000 +0100
+++ new/xlwt-1.3.0/docs/conf.py 2017-08-22 08:46:08.000000000 +0200
@@ -19,4 +19,4 @@
html_theme = 'classic'
htmlhelp_basename = project+'doc'
-intersphinx_mapping = {'python': ('http://docs.python.org', None)}
+intersphinx_mapping = {'python': ('https://docs.python.org', None)}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xlwt-1.2.0/docs/installation.rst new/xlwt-1.3.0/docs/installation.rst
--- old/xlwt-1.2.0/docs/installation.rst 2017-01-04 17:16:40.000000000 +0100
+++ new/xlwt-1.3.0/docs/installation.rst 2017-08-22 08:46:08.000000000 +0200
@@ -16,8 +16,3 @@
# other stuff here
install_requires=['xlwt'],
)
-
-.. topic:: Python version requirements
-
- This package has been tested with Python 2.6, 2.7, 3.3+ on Linux,
- and is also expected to work on Mac OS X and Windows.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xlwt-1.2.0/docs/licenses.rst new/xlwt-1.3.0/docs/licenses.rst
--- old/xlwt-1.2.0/docs/licenses.rst 2017-01-04 17:16:40.000000000 +0100
+++ new/xlwt-1.3.0/docs/licenses.rst 2017-08-22 08:46:08.000000000 +0200
@@ -108,7 +108,7 @@
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser
General Public License for more details:
- http://www.gnu.org/licenses/lgpl.html
+ https://www.gnu.org/licenses/lgpl.html
pyXLWriter also makes reference to the PERL Spreadsheet::WriteExcel as follows::
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xlwt-1.2.0/examples/hyperlinks.py new/xlwt-1.3.0/examples/hyperlinks.py
--- old/xlwt-1.2.0/examples/hyperlinks.py 2017-01-04 17:16:40.000000000 +0100
+++ new/xlwt-1.3.0/examples/hyperlinks.py 2017-08-22 08:46:08.000000000 +0200
@@ -22,7 +22,7 @@
##############
n = "HYPERLINK"
-ws.write_merge(1, 1, 1, 10, Formula(n + '("http://www.irs.gov/pub/irs-pdf/f1000.pdf";"f1000.pdf")'), h_style)
+ws.write_merge(1, 1, 1, 10, Formula(n + '("https://www.irs.gov/pub/irs-pdf/f1000.pdf";"f1000.pdf")'), h_style)
ws.write_merge(2, 2, 2, 25, Formula(n + '("mailto:roman.kiseliov@gmail.com?subject=pyExcelerator-feedback&Body=Hello,%20Roman!";"pyExcelerator-feedback")'), h_style)
w.save("hyperlinks.xls")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xlwt-1.2.0/examples/image_chg_col_wid.py new/xlwt-1.3.0/examples/image_chg_col_wid.py
--- old/xlwt-1.2.0/examples/image_chg_col_wid.py 2017-01-04 17:16:40.000000000 +0100
+++ new/xlwt-1.3.0/examples/image_chg_col_wid.py 2017-08-22 08:46:08.000000000 +0200
@@ -1,27 +1,27 @@
-# This demonstrates the effect of changing the column width
-# when inserting a picture/image.
-
-import xlwt
-w = xlwt.Workbook()
-ws = w.add_sheet('Image')
-
-ws.write(0, 2, "chg wid: none")
-ws.insert_bitmap('python.bmp', 2, 2)
-
-ws.write(0, 4, "chg wid: after")
-ws.insert_bitmap('python.bmp', 2, 4)
-ws.col(4).width = 20 * 256
-
-ws.write(0, 6, "chg wid: before")
-ws.col(6).width = 20 * 256
-ws.insert_bitmap('python.bmp', 2, 6)
-
-ws.write(0, 8, "chg wid: after")
-ws.insert_bitmap('python.bmp', 2, 8)
-ws.col(5).width = 8 * 256
-
-ws.write(0, 10, "chg wid: before")
-ws.col(10).width = 8 * 256
-ws.insert_bitmap('python.bmp', 2, 10)
-
-w.save('image_chg_col_wid.xls')
+# This demonstrates the effect of changing the column width
+# when inserting a picture/image.
+
+import xlwt
+w = xlwt.Workbook()
+ws = w.add_sheet('Image')
+
+ws.write(0, 2, "chg wid: none")
+ws.insert_bitmap('python.bmp', 2, 2)
+
+ws.write(0, 4, "chg wid: after")
+ws.insert_bitmap('python.bmp', 2, 4)
+ws.col(4).width = 20 * 256
+
+ws.write(0, 6, "chg wid: before")
+ws.col(6).width = 20 * 256
+ws.insert_bitmap('python.bmp', 2, 6)
+
+ws.write(0, 8, "chg wid: after")
+ws.insert_bitmap('python.bmp', 2, 8)
+ws.col(5).width = 8 * 256
+
+ws.write(0, 10, "chg wid: before")
+ws.col(10).width = 8 * 256
+ws.insert_bitmap('python.bmp', 2, 10)
+
+w.save('image_chg_col_wid.xls')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xlwt-1.2.0/examples/numbers_demo.py new/xlwt-1.3.0/examples/numbers_demo.py
--- old/xlwt-1.2.0/examples/numbers_demo.py 2017-01-04 17:16:40.000000000 +0100
+++ new/xlwt-1.3.0/examples/numbers_demo.py 2017-08-22 08:46:08.000000000 +0200
@@ -1,25 +1,25 @@
-#!/usr/bin/env python
-# -*- coding: windows-1251 -*-
-# Copyright (C) 2005 Kiseliov Roman
-
-from xlwt import *
-
-w = Workbook()
-ws = w.add_sheet('Hey, Dude')
-
-ws.write(0, 0, 1)
-ws.write(1, 0, 1.23)
-ws.write(2, 0, 12345678)
-ws.write(3, 0, 123456.78)
-
-ws.write(0, 1, -1)
-ws.write(1, 1, -1.23)
-ws.write(2, 1, -12345678)
-ws.write(3, 1, -123456.78)
-
-ws.write(0, 2, -17867868678687.0)
-ws.write(1, 2, -1.23e-5)
-ws.write(2, 2, -12345678.90780980)
-ws.write(3, 2, -123456.78)
-
-w.save('numbers.xls')
+#!/usr/bin/env python
+# -*- coding: windows-1251 -*-
+# Copyright (C) 2005 Kiseliov Roman
+
+from xlwt import *
+
+w = Workbook()
+ws = w.add_sheet('Hey, Dude')
+
+ws.write(0, 0, 1)
+ws.write(1, 0, 1.23)
+ws.write(2, 0, 12345678)
+ws.write(3, 0, 123456.78)
+
+ws.write(0, 1, -1)
+ws.write(1, 1, -1.23)
+ws.write(2, 1, -12345678)
+ws.write(3, 1, -123456.78)
+
+ws.write(0, 2, -17867868678687.0)
+ws.write(1, 2, -1.23e-5)
+ws.write(2, 2, -12345678.90780980)
+ws.write(3, 2, -123456.78)
+
+w.save('numbers.xls')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xlwt-1.2.0/examples/panes2.py new/xlwt-1.3.0/examples/panes2.py
--- old/xlwt-1.2.0/examples/panes2.py 2017-01-04 17:16:40.000000000 +0100
+++ new/xlwt-1.3.0/examples/panes2.py 2017-08-22 08:46:08.000000000 +0200
@@ -1,60 +1,60 @@
-#!/usr/bin/env python
-# -*- coding: ascii -*-
-# portions Copyright (C) 2005 Kiseliov Roman
-
-import xlwt
-
-w = xlwt.Workbook()
-sheets = [w.add_sheet('sheet ' + str(sheetx+1)) for sheetx in range(7)]
-ws1, ws2, ws3, ws4, ws5, ws6, ws7 = sheets
-for sheet in sheets:
- for i in range(0x100):
- sheet.write(i // 0x10, i % 0x10, i)
-
-H = 1
-V = 2
-HF = H + 2
-VF = V + 2
-
-ws1.panes_frozen = True
-ws1.horz_split_pos = H
-ws1.horz_split_first_visible = HF
-
-ws2.panes_frozen = True
-ws2.vert_split_pos = V
-ws2.vert_split_first_visible = VF
-
-ws3.panes_frozen = True
-ws3.horz_split_pos = H
-ws3.vert_split_pos = V
-ws3.horz_split_first_visible = HF
-ws3.vert_split_first_visible = VF
-
-H = 10
-V = 12
-HF = H + 2
-VF = V + 2
-
-ws4.panes_frozen = False
-ws4.horz_split_pos = H * 12.75 # rows
-ws4.horz_split_first_visible = HF
-
-ws5.panes_frozen = False
-ws5.vert_split_pos = V * 8.43 # rows
-ws5.vert_split_first_visible = VF
-
-ws6.panes_frozen = False
-ws6.horz_split_pos = H * 12.75 # rows
-ws6.horz_split_first_visible = HF
-ws6.vert_split_pos = V * 8.43 # cols
-ws6.vert_split_first_visible = VF
-
-ws7.split_position_units_are_twips = True
-ws7.panes_frozen = False
-ws7.horz_split_pos = H * 250 + 240 # twips
-ws7.horz_split_first_visible = HF
-ws7.vert_split_pos = V * 955 + 410 # twips
-ws7.vert_split_first_visible = VF
-
-w.save('panes2.xls')
-
+#!/usr/bin/env python
+# -*- coding: ascii -*-
+# portions Copyright (C) 2005 Kiseliov Roman
+
+import xlwt
+
+w = xlwt.Workbook()
+sheets = [w.add_sheet('sheet ' + str(sheetx+1)) for sheetx in range(7)]
+ws1, ws2, ws3, ws4, ws5, ws6, ws7 = sheets
+for sheet in sheets:
+ for i in range(0x100):
+ sheet.write(i // 0x10, i % 0x10, i)
+
+H = 1
+V = 2
+HF = H + 2
+VF = V + 2
+
+ws1.panes_frozen = True
+ws1.horz_split_pos = H
+ws1.horz_split_first_visible = HF
+
+ws2.panes_frozen = True
+ws2.vert_split_pos = V
+ws2.vert_split_first_visible = VF
+
+ws3.panes_frozen = True
+ws3.horz_split_pos = H
+ws3.vert_split_pos = V
+ws3.horz_split_first_visible = HF
+ws3.vert_split_first_visible = VF
+
+H = 10
+V = 12
+HF = H + 2
+VF = V + 2
+
+ws4.panes_frozen = False
+ws4.horz_split_pos = H * 12.75 # rows
+ws4.horz_split_first_visible = HF
+
+ws5.panes_frozen = False
+ws5.vert_split_pos = V * 8.43 # rows
+ws5.vert_split_first_visible = VF
+
+ws6.panes_frozen = False
+ws6.horz_split_pos = H * 12.75 # rows
+ws6.horz_split_first_visible = HF
+ws6.vert_split_pos = V * 8.43 # cols
+ws6.vert_split_first_visible = VF
+
+ws7.split_position_units_are_twips = True
+ws7.panes_frozen = False
+ws7.horz_split_pos = H * 250 + 240 # twips
+ws7.horz_split_first_visible = HF
+ws7.vert_split_pos = V * 955 + 410 # twips
+ws7.vert_split_first_visible = VF
+
+w.save('panes2.xls')
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xlwt-1.2.0/examples/zoom_magnification.py new/xlwt-1.3.0/examples/zoom_magnification.py
--- old/xlwt-1.2.0/examples/zoom_magnification.py 2017-01-04 17:16:40.000000000 +0100
+++ new/xlwt-1.3.0/examples/zoom_magnification.py 2017-08-22 08:46:08.000000000 +0200
@@ -1,14 +1,14 @@
-import xlwt
-book = xlwt.Workbook()
-for magn in (0, 60, 100, 75, 150):
- for preview in (False, True):
- sheet = book.add_sheet('magn%d%s' % (magn, "np"[preview]))
- if preview:
- sheet.preview_magn = magn
- else:
- sheet.normal_magn = magn
- sheet.page_preview = preview
- for rowx in range(100):
- sheet.write(rowx, 0, "Some text")
-book.save("zoom_magnification.xls")
-
+import xlwt
+book = xlwt.Workbook()
+for magn in (0, 60, 100, 75, 150):
+ for preview in (False, True):
+ sheet = book.add_sheet('magn%d%s' % (magn, "np"[preview]))
+ if preview:
+ sheet.preview_magn = magn
+ else:
+ sheet.normal_magn = magn
+ sheet.page_preview = preview
+ for rowx in range(100):
+ sheet.write(rowx, 0, "Some text")
+book.save("zoom_magnification.xls")
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xlwt-1.2.0/setup.cfg new/xlwt-1.3.0/setup.cfg
--- old/xlwt-1.2.0/setup.cfg 2017-01-04 17:17:15.000000000 +0100
+++ new/xlwt-1.3.0/setup.cfg 2017-08-22 08:47:13.000000000 +0200
@@ -1,8 +1,7 @@
-[wheel]
+[bdist_wheel]
universal = 1
[egg_info]
tag_build =
tag_date = 0
-tag_svn_revision = 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xlwt-1.2.0/setup.py new/xlwt-1.3.0/setup.py
--- old/xlwt-1.2.0/setup.py 2017-01-04 17:16:40.000000000 +0100
+++ new/xlwt-1.3.0/setup.py 2017-08-22 08:46:08.000000000 +0200
@@ -19,12 +19,12 @@
'Topic :: Database',
'Topic :: Internet :: WWW/HTTP :: Dynamic Content :: CGI Tools/Libraries',
'Programming Language :: Python :: 2',
- 'Programming Language :: Python :: 2.6',
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.3',
'Programming Language :: Python :: 3.4',
'Programming Language :: Python :: 3.5',
+ 'Programming Language :: Python :: 3.6',
]
KEYWORDS = (
@@ -37,7 +37,7 @@
maintainer='John Machin',
maintainer_email='sjmachin@lexicon.net',
url='http://www.python-excel.org/',
- download_url='http://pypi.python.org/pypi/xlwt',
+ download_url='https://pypi.python.org/pypi/xlwt',
description=DESCRIPTION,
long_description=open(os.path.join(
os.path.dirname(__file__), 'README.rst')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xlwt-1.2.0/tests/test_biff_records.py new/xlwt-1.3.0/tests/test_biff_records.py
--- old/xlwt-1.2.0/tests/test_biff_records.py 2017-01-04 17:16:40.000000000 +0100
+++ new/xlwt-1.3.0/tests/test_biff_records.py 2017-08-22 08:46:08.000000000 +0200
@@ -1,24 +1,24 @@
-# coding:utf-8
-
-from io import BytesIO
-import unittest
-
-import xlwt
-
-class TestSharedStringTable(unittest.TestCase):
- def test_shared_string_table(self):
- expected_result = b'\xfc\x00\x11\x00\x01\x00\x00\x00\x01\x00\x00\x00\x03\x00\x01\x1e\x04;\x04O\x04'
- string_record = xlwt.BIFFRecords.SharedStringTable(encoding='cp1251')
- string_record.add_str(u'Оля')
- self.assertEqual(expected_result, string_record.get_biff_record())
-
-class TestIntersheetsRef(unittest.TestCase):
- def test_intersheets_ref(self):
- book = xlwt.Workbook()
- sheet_a = book.add_sheet('A')
- sheet_a.write(0, 0, 'A1')
- sheet_a.write(0, 1, 'A2')
- sheet_b = book.add_sheet('B')
- sheet_b.write(0, 0, xlwt.Formula("'A'!$A$1&'A'!$A$2"))
- out = BytesIO()
- book.save(out)
+# coding:utf-8
+
+from io import BytesIO
+import unittest
+
+import xlwt
+
+class TestSharedStringTable(unittest.TestCase):
+ def test_shared_string_table(self):
+ expected_result = b'\xfc\x00\x11\x00\x01\x00\x00\x00\x01\x00\x00\x00\x03\x00\x01\x1e\x04;\x04O\x04'
+ string_record = xlwt.BIFFRecords.SharedStringTable(encoding='cp1251')
+ string_record.add_str(u'Оля')
+ self.assertEqual(expected_result, string_record.get_biff_record())
+
+class TestIntersheetsRef(unittest.TestCase):
+ def test_intersheets_ref(self):
+ book = xlwt.Workbook()
+ sheet_a = book.add_sheet('A')
+ sheet_a.write(0, 0, 'A1')
+ sheet_a.write(0, 1, 'A2')
+ sheet_b = book.add_sheet('B')
+ sheet_b.write(0, 0, xlwt.Formula("'A'!$A$1&'A'!$A$2"))
+ out = BytesIO()
+ book.save(out)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xlwt-1.2.0/tests/test_bitmaps.py new/xlwt-1.3.0/tests/test_bitmaps.py
--- old/xlwt-1.2.0/tests/test_bitmaps.py 2017-01-04 17:16:40.000000000 +0100
+++ new/xlwt-1.3.0/tests/test_bitmaps.py 2017-08-22 08:46:08.000000000 +0200
@@ -1,41 +1,41 @@
-# -*- coding: utf-8 -*-
-
-import sys
-import os
-import unittest
-import filecmp
-from datetime import datetime
-
-from utils import in_tst_dir, in_tst_output_dir
-
-import xlwt
-
-class TestBitmaps(unittest.TestCase):
- def test_create_bitmap_from_memory(self):
- book = xlwt.Workbook()
- sheet = book.add_sheet('bitmap test')
-
- with open ("tests/python.bmp", "rb") as bmpfile:
- bmpdata = bmpfile.read()
- sheet.insert_bitmap_data(bmpdata, 1, 1)
-
- book.save(in_tst_output_dir('bitmaps.xls'))
-
- self.assertTrue(filecmp.cmp(in_tst_dir('bitmaps.xls'),
- in_tst_output_dir('bitmaps.xls'),
- shallow=False))
-
- def test_create_bitmap_from_file(self):
- book = xlwt.Workbook()
- sheet = book.add_sheet('bitmap test')
-
- sheet.insert_bitmap("tests/python.bmp", 1, 1)
-
- book.save(in_tst_output_dir('bitmaps.xls'))
-
- self.assertTrue(filecmp.cmp(in_tst_dir('bitmaps.xls'),
- in_tst_output_dir('bitmaps.xls'),
- shallow=False))
-
-if __name__=='__main__':
- unittest.main()
+# -*- coding: utf-8 -*-
+
+import sys
+import os
+import unittest
+import filecmp
+from datetime import datetime
+
+from utils import in_tst_dir, in_tst_output_dir
+
+import xlwt
+
+class TestBitmaps(unittest.TestCase):
+ def test_create_bitmap_from_memory(self):
+ book = xlwt.Workbook()
+ sheet = book.add_sheet('bitmap test')
+
+ with open ("tests/python.bmp", "rb") as bmpfile:
+ bmpdata = bmpfile.read()
+ sheet.insert_bitmap_data(bmpdata, 1, 1)
+
+ book.save(in_tst_output_dir('bitmaps.xls'))
+
+ self.assertTrue(filecmp.cmp(in_tst_dir('bitmaps.xls'),
+ in_tst_output_dir('bitmaps.xls'),
+ shallow=False))
+
+ def test_create_bitmap_from_file(self):
+ book = xlwt.Workbook()
+ sheet = book.add_sheet('bitmap test')
+
+ sheet.insert_bitmap("tests/python.bmp", 1, 1)
+
+ book.save(in_tst_output_dir('bitmaps.xls'))
+
+ self.assertTrue(filecmp.cmp(in_tst_dir('bitmaps.xls'),
+ in_tst_output_dir('bitmaps.xls'),
+ shallow=False))
+
+if __name__=='__main__':
+ unittest.main()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xlwt-1.2.0/tests/test_compound_doc.py new/xlwt-1.3.0/tests/test_compound_doc.py
--- old/xlwt-1.2.0/tests/test_compound_doc.py 2017-01-04 17:16:40.000000000 +0100
+++ new/xlwt-1.3.0/tests/test_compound_doc.py 2017-08-22 08:46:08.000000000 +0200
@@ -1,41 +1,41 @@
-import unittest
-
-from xlwt.CompoundDoc import XlsDoc
-
-DIR = b'R\x00o\x00o\x00t\x00 \x00E\x00n\x00t\x00r\x00y\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x00\x05\x01\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00W\x00o\x00r\x00k\x00b\x00o\x00o\x00k\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x02\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00'
-
-PACKED_SAT = b'\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x07\x00\x00\x00\xfe\xff\xff\xff\xfd\xff\xff\xff\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff'
-PACKED_MSAT_1ST = b'\x08\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff'
-PACKED_MSAT_2ND = b""
-BOOK_STREAM_SECT = [0, 1, 2, 3, 4, 5, 6, 7]
-SAT_SECT = [8]
-MSAT_SECT_2ND = []
-
-HEADER = b'\xd0\xcf\x11\xe0\xa1\xb1\x1a\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>\x00\x03\x00\xfe\xff\t\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\t\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\xfe\xff\xff\xff\x00\x00\x00\x00\xfe\xff\xff\xff\x00\x00\x00\x00'
-
-class TestXlsDoc(unittest.TestCase):
- def test_build_directory(self):
- xlsdoc = XlsDoc()
- xlsdoc.book_stream_len = 0x1000
- xlsdoc._build_directory()
- self.assertEqual(DIR, xlsdoc.dir_stream)
-
- def test_build_sat(self):
- xlsdoc = XlsDoc()
- xlsdoc.book_stream_len = 0x1000
- xlsdoc._build_directory()
- xlsdoc._build_sat()
- self.assertEqual(PACKED_SAT, xlsdoc.packed_SAT)
- self.assertEqual(PACKED_MSAT_1ST, xlsdoc.packed_MSAT_1st)
- self.assertEqual(PACKED_MSAT_2ND, xlsdoc.packed_MSAT_2nd)
- self.assertEqual(BOOK_STREAM_SECT, xlsdoc.book_stream_sect)
- self.assertEqual(SAT_SECT, xlsdoc.SAT_sect)
- self.assertEqual(MSAT_SECT_2ND, xlsdoc.MSAT_sect_2nd)
-
- def test_build_header(self):
- xlsdoc = XlsDoc()
- xlsdoc.book_stream_len = 0x1000
- xlsdoc._build_directory()
- xlsdoc._build_sat()
- xlsdoc._build_header()
- self.assertEqual(HEADER, xlsdoc.header)
+import unittest
+
+from xlwt.CompoundDoc import XlsDoc
+
+DIR = b'R\x00o\x00o\x00t\x00 \x00E\x00n\x00t\x00r\x00y\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x00\x05\x01\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00W\x00o\x00r\x00k\x00b\x00o\x00o\x00k\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x02\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00'
+
+PACKED_SAT = b'\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x07\x00\x00\x00\xfe\xff\xff\xff\xfd\xff\xff\xff\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff'
+PACKED_MSAT_1ST = b'\x08\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff'
+PACKED_MSAT_2ND = b""
+BOOK_STREAM_SECT = [0, 1, 2, 3, 4, 5, 6, 7]
+SAT_SECT = [8]
+MSAT_SECT_2ND = []
+
+HEADER = b'\xd0\xcf\x11\xe0\xa1\xb1\x1a\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>\x00\x03\x00\xfe\xff\t\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\t\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\xfe\xff\xff\xff\x00\x00\x00\x00\xfe\xff\xff\xff\x00\x00\x00\x00'
+
+class TestXlsDoc(unittest.TestCase):
+ def test_build_directory(self):
+ xlsdoc = XlsDoc()
+ xlsdoc.book_stream_len = 0x1000
+ xlsdoc._build_directory()
+ self.assertEqual(DIR, xlsdoc.dir_stream)
+
+ def test_build_sat(self):
+ xlsdoc = XlsDoc()
+ xlsdoc.book_stream_len = 0x1000
+ xlsdoc._build_directory()
+ xlsdoc._build_sat()
+ self.assertEqual(PACKED_SAT, xlsdoc.packed_SAT)
+ self.assertEqual(PACKED_MSAT_1ST, xlsdoc.packed_MSAT_1st)
+ self.assertEqual(PACKED_MSAT_2ND, xlsdoc.packed_MSAT_2nd)
+ self.assertEqual(BOOK_STREAM_SECT, xlsdoc.book_stream_sect)
+ self.assertEqual(SAT_SECT, xlsdoc.SAT_sect)
+ self.assertEqual(MSAT_SECT_2ND, xlsdoc.MSAT_sect_2nd)
+
+ def test_build_header(self):
+ xlsdoc = XlsDoc()
+ xlsdoc.book_stream_len = 0x1000
+ xlsdoc._build_directory()
+ xlsdoc._build_sat()
+ xlsdoc._build_header()
+ self.assertEqual(HEADER, xlsdoc.header)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xlwt-1.2.0/tests/test_easyxf.py new/xlwt-1.3.0/tests/test_easyxf.py
--- old/xlwt-1.2.0/tests/test_easyxf.py 2017-01-04 17:16:40.000000000 +0100
+++ new/xlwt-1.3.0/tests/test_easyxf.py 2017-08-22 08:46:08.000000000 +0200
@@ -1,55 +1,55 @@
-import unittest
-import filecmp
-import datetime
-
-from utils import in_tst_dir, in_tst_output_dir
-
-import xlwt as xlwt
-ezxf = xlwt.easyxf
-
-def write_xls(file_name, sheet_name, headings, data, heading_xf, data_xfs):
- book = xlwt.Workbook()
- sheet = book.add_sheet(sheet_name)
- rowx = 0
- for colx, value in enumerate(headings):
- sheet.write(rowx, colx, value, heading_xf)
- sheet.set_panes_frozen(True) # frozen headings instead of split panes
- sheet.set_horz_split_pos(rowx+1) # in general, freeze after last heading row
- sheet.set_remove_splits(True) # if user does unfreeze, don't leave a split there
- for row in data:
- rowx += 1
- for colx, value in enumerate(row):
- sheet.write(rowx, colx, value, data_xfs[colx])
- book.save(file_name)
-
-EXAMPLE_XLS = 'xlwt_easyxf_simple_demo.xls'
-
-class TestUnicode0(unittest.TestCase):
- def create_example_xls(self, filename):
- mkd = datetime.date
- hdngs = ['Date', 'Stock Code', 'Quantity', 'Unit Price', 'Value', 'Message']
- kinds = 'date text int price money text'.split()
- data = [
- [mkd(2007, 7, 1), 'ABC', 1000, 1.234567, 1234.57, ''],
- [mkd(2007, 12, 31), 'XYZ', -100, 4.654321, -465.43, 'Goods returned'],
- ] + [
- [mkd(2008, 6, 30), 'PQRCD', 100, 2.345678, 234.57, ''],
- ] * 100
-
- heading_xf = ezxf('font: bold on; align: wrap on, vert centre, horiz center')
- kind_to_xf_map = {
- 'date': ezxf(num_format_str='yyyy-mm-dd'),
- 'int': ezxf(num_format_str='#,##0'),
- 'money': ezxf('font: italic on; pattern: pattern solid, fore-colour grey25',
- num_format_str='$#,##0.00'),
- 'price': ezxf(num_format_str='#0.000000'),
- 'text': ezxf(),
- }
- data_xfs = [kind_to_xf_map[k] for k in kinds]
- write_xls(filename, 'Demo', hdngs, data, heading_xf, data_xfs)
-
- def test_example_xls(self):
- self.create_example_xls(in_tst_output_dir(EXAMPLE_XLS))
- self.assertTrue(filecmp.cmp(in_tst_dir(EXAMPLE_XLS),
- in_tst_output_dir(EXAMPLE_XLS),
- shallow=False))
+import unittest
+import filecmp
+import datetime
+
+from utils import in_tst_dir, in_tst_output_dir
+
+import xlwt as xlwt
+ezxf = xlwt.easyxf
+
+def write_xls(file_name, sheet_name, headings, data, heading_xf, data_xfs):
+ book = xlwt.Workbook()
+ sheet = book.add_sheet(sheet_name)
+ rowx = 0
+ for colx, value in enumerate(headings):
+ sheet.write(rowx, colx, value, heading_xf)
+ sheet.set_panes_frozen(True) # frozen headings instead of split panes
+ sheet.set_horz_split_pos(rowx+1) # in general, freeze after last heading row
+ sheet.set_remove_splits(True) # if user does unfreeze, don't leave a split there
+ for row in data:
+ rowx += 1
+ for colx, value in enumerate(row):
+ sheet.write(rowx, colx, value, data_xfs[colx])
+ book.save(file_name)
+
+EXAMPLE_XLS = 'xlwt_easyxf_simple_demo.xls'
+
+class TestUnicode0(unittest.TestCase):
+ def create_example_xls(self, filename):
+ mkd = datetime.date
+ hdngs = ['Date', 'Stock Code', 'Quantity', 'Unit Price', 'Value', 'Message']
+ kinds = 'date text int price money text'.split()
+ data = [
+ [mkd(2007, 7, 1), 'ABC', 1000, 1.234567, 1234.57, ''],
+ [mkd(2007, 12, 31), 'XYZ', -100, 4.654321, -465.43, 'Goods returned'],
+ ] + [
+ [mkd(2008, 6, 30), 'PQRCD', 100, 2.345678, 234.57, ''],
+ ] * 100
+
+ heading_xf = ezxf('font: bold on; align: wrap on, vert centre, horiz center')
+ kind_to_xf_map = {
+ 'date': ezxf(num_format_str='yyyy-mm-dd'),
+ 'int': ezxf(num_format_str='#,##0'),
+ 'money': ezxf('font: italic on; pattern: pattern solid, fore-colour grey25',
+ num_format_str='$#,##0.00'),
+ 'price': ezxf(num_format_str='#0.000000'),
+ 'text': ezxf(),
+ }
+ data_xfs = [kind_to_xf_map[k] for k in kinds]
+ write_xls(filename, 'Demo', hdngs, data, heading_xf, data_xfs)
+
+ def test_example_xls(self):
+ self.create_example_xls(in_tst_output_dir(EXAMPLE_XLS))
+ self.assertTrue(filecmp.cmp(in_tst_dir(EXAMPLE_XLS),
+ in_tst_output_dir(EXAMPLE_XLS),
+ shallow=False))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xlwt-1.2.0/tests/test_mini.py new/xlwt-1.3.0/tests/test_mini.py
--- old/xlwt-1.2.0/tests/test_mini.py 2017-01-04 17:16:40.000000000 +0100
+++ new/xlwt-1.3.0/tests/test_mini.py 2017-08-22 08:46:08.000000000 +0200
@@ -1,21 +1,21 @@
-import sys
-import os
-import unittest
-import filecmp
-
-from utils import in_tst_dir, in_tst_output_dir
-
-import xlwt
-
-def from_tst_dir(filename):
- return os.path.join(os.path.dirname(os.path.abspath(__file__)), filename)
-
-class TestMini(unittest.TestCase):
- def test_create_mini_xls(self):
- book = xlwt.Workbook()
- sheet = book.add_sheet('xlwt was here')
- book.save(in_tst_output_dir('mini.xls'))
-
- self.assertTrue(filecmp.cmp(in_tst_dir('mini.xls'),
- in_tst_output_dir('mini.xls'),
- shallow=False))
+import sys
+import os
+import unittest
+import filecmp
+
+from utils import in_tst_dir, in_tst_output_dir
+
+import xlwt
+
+def from_tst_dir(filename):
+ return os.path.join(os.path.dirname(os.path.abspath(__file__)), filename)
+
+class TestMini(unittest.TestCase):
+ def test_create_mini_xls(self):
+ book = xlwt.Workbook()
+ sheet = book.add_sheet('xlwt was here')
+ book.save(in_tst_output_dir('mini.xls'))
+
+ self.assertTrue(filecmp.cmp(in_tst_dir('mini.xls'),
+ in_tst_output_dir('mini.xls'),
+ shallow=False))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xlwt-1.2.0/tests/test_simple.py new/xlwt-1.3.0/tests/test_simple.py
--- old/xlwt-1.2.0/tests/test_simple.py 2017-01-04 17:16:40.000000000 +0100
+++ new/xlwt-1.3.0/tests/test_simple.py 2017-08-22 08:46:08.000000000 +0200
@@ -1,67 +1,67 @@
-# -*- coding: utf-8 -*-
-
-import sys
-import os
-import unittest
-import filecmp
-from datetime import datetime
-
-from utils import in_tst_dir, in_tst_output_dir
-
-import xlwt
-
-LOREM_IPSUM = u'Lorem ipsum dolor sit amet, consectetur adipiscing elit.'
-
-
-class TestSimple(unittest.TestCase):
-
- def create_simple_xls(self, **kw):
- font0 = xlwt.Font()
- font0.name = 'Times New Roman'
- font0.colour_index = 2
- font0.bold = True
-
- style0 = xlwt.XFStyle()
- style0.font = font0
-
- style1 = xlwt.XFStyle()
- style1.num_format_str = 'D-MMM-YY'
-
- wb = xlwt.Workbook(**kw)
- ws = wb.add_sheet('A Test Sheet')
-
- ws.write(0, 0, 'Test', style0)
- ws.write(1, 0, datetime(2010, 12, 5), style1)
- ws.write(2, 0, 1)
- ws.write(2, 1, 1)
- ws.write(2, 2, xlwt.Formula("A3+B3"))
- return wb, ws
-
- def test_create_simple_xls(self):
- wb, _ = self.create_simple_xls()
- wb.save(in_tst_output_dir('simple.xls'))
- self.assertTrue(filecmp.cmp(in_tst_dir('simple.xls'),
- in_tst_output_dir('simple.xls'),
- shallow=False))
-
- def test_create_less_simple_xls(self):
- wb, ws = self.create_simple_xls()
- more_content=[
- [
- u'A{0}'.format(i),
- u'Zażółć gęślą jaźń {0} {1}'.format(i, LOREM_IPSUM),
- ]
- for idx, i in enumerate(range(1000, 1050))
- ]
- for r_idx, content_row in enumerate(more_content, 3):
- for c_idx, cell in enumerate(content_row):
- ws.write(r_idx, c_idx, cell)
- wb.save(in_tst_output_dir('less_simple.xls'))
- self.assertTrue(filecmp.cmp(in_tst_dir('less_simple.xls'),
- in_tst_output_dir('less_simple.xls'),
- shallow=False))
-
- def test_font_compression(self):
- wb, ws = self.create_simple_xls(style_compression = 2)
- wb.save(in_tst_output_dir('simple.xls'), )
-
+# -*- coding: utf-8 -*-
+
+import sys
+import os
+import unittest
+import filecmp
+from datetime import datetime
+
+from utils import in_tst_dir, in_tst_output_dir
+
+import xlwt
+
+LOREM_IPSUM = u'Lorem ipsum dolor sit amet, consectetur adipiscing elit.'
+
+
+class TestSimple(unittest.TestCase):
+
+ def create_simple_xls(self, **kw):
+ font0 = xlwt.Font()
+ font0.name = 'Times New Roman'
+ font0.colour_index = 2
+ font0.bold = True
+
+ style0 = xlwt.XFStyle()
+ style0.font = font0
+
+ style1 = xlwt.XFStyle()
+ style1.num_format_str = 'D-MMM-YY'
+
+ wb = xlwt.Workbook(**kw)
+ ws = wb.add_sheet('A Test Sheet')
+
+ ws.write(0, 0, 'Test', style0)
+ ws.write(1, 0, datetime(2010, 12, 5), style1)
+ ws.write(2, 0, 1)
+ ws.write(2, 1, 1)
+ ws.write(2, 2, xlwt.Formula("A3+B3"))
+ return wb, ws
+
+ def test_create_simple_xls(self):
+ wb, _ = self.create_simple_xls()
+ wb.save(in_tst_output_dir('simple.xls'))
+ self.assertTrue(filecmp.cmp(in_tst_dir('simple.xls'),
+ in_tst_output_dir('simple.xls'),
+ shallow=False))
+
+ def test_create_less_simple_xls(self):
+ wb, ws = self.create_simple_xls()
+ more_content=[
+ [
+ u'A{0}'.format(i),
+ u'Zażółć gęślą jaźń {0} {1}'.format(i, LOREM_IPSUM),
+ ]
+ for idx, i in enumerate(range(1000, 1050))
+ ]
+ for r_idx, content_row in enumerate(more_content, 3):
+ for c_idx, cell in enumerate(content_row):
+ ws.write(r_idx, c_idx, cell)
+ wb.save(in_tst_output_dir('less_simple.xls'))
+ self.assertTrue(filecmp.cmp(in_tst_dir('less_simple.xls'),
+ in_tst_output_dir('less_simple.xls'),
+ shallow=False))
+
+ def test_font_compression(self):
+ wb, ws = self.create_simple_xls(style_compression = 2)
+ wb.save(in_tst_output_dir('simple.xls'), )
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xlwt-1.2.0/tests/test_unicode1.py new/xlwt-1.3.0/tests/test_unicode1.py
--- old/xlwt-1.2.0/tests/test_unicode1.py 2017-01-04 17:16:40.000000000 +0100
+++ new/xlwt-1.3.0/tests/test_unicode1.py 2017-08-22 08:46:08.000000000 +0200
@@ -1,40 +1,40 @@
-import os
-import unittest
-import filecmp
-
-import xlwt
-
-from utils import in_tst_dir, in_tst_output_dir
-
-def create_example_xls(filename):
- w = xlwt.Workbook()
- ws1 = w.add_sheet(u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK SMALL LETTER BETA}\N{GREEK SMALL LETTER GAMMA}')
-
- ws1.write(0, 0, u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK SMALL LETTER BETA}\N{GREEK SMALL LETTER GAMMA}')
- ws1.write(1, 1, u'\N{GREEK SMALL LETTER DELTA}x = 1 + \N{GREEK SMALL LETTER DELTA}')
-
- ws1.write(2,0, u'A\u2262\u0391.') # RFC2152 example
- ws1.write(3,0, u'Hi Mom -\u263a-!') # RFC2152 example
- ws1.write(4,0, u'\u65E5\u672C\u8A9E') # RFC2152 example
- ws1.write(5,0, u'Item 3 is \u00a31.') # RFC2152 example
- ws1.write(8,0, u'\N{INTEGRAL}') # RFC2152 example
-
- w.add_sheet(u'A\u2262\u0391.') # RFC2152 example
- w.add_sheet(u'Hi Mom -\u263a-!') # RFC2152 example
- one_more_ws = w.add_sheet(u'\u65E5\u672C\u8A9E') # RFC2152 example
- w.add_sheet(u'Item 3 is \u00a31.') # RFC2152 example
-
- one_more_ws.write(0, 0, u'\u2665\u2665')
-
- w.add_sheet(u'\N{GREEK SMALL LETTER ETA WITH TONOS}')
- w.save(filename)
-
-EXAMPLE_XLS = 'unicode1.xls'
-
-class TestUnicode1(unittest.TestCase):
-
- def test_example_xls(self):
- create_example_xls(in_tst_output_dir(EXAMPLE_XLS))
- self.assertTrue(filecmp.cmp(in_tst_dir(EXAMPLE_XLS),
- in_tst_output_dir(EXAMPLE_XLS),
- shallow=False))
+import os
+import unittest
+import filecmp
+
+import xlwt
+
+from utils import in_tst_dir, in_tst_output_dir
+
+def create_example_xls(filename):
+ w = xlwt.Workbook()
+ ws1 = w.add_sheet(u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK SMALL LETTER BETA}\N{GREEK SMALL LETTER GAMMA}')
+
+ ws1.write(0, 0, u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK SMALL LETTER BETA}\N{GREEK SMALL LETTER GAMMA}')
+ ws1.write(1, 1, u'\N{GREEK SMALL LETTER DELTA}x = 1 + \N{GREEK SMALL LETTER DELTA}')
+
+ ws1.write(2,0, u'A\u2262\u0391.') # RFC2152 example
+ ws1.write(3,0, u'Hi Mom -\u263a-!') # RFC2152 example
+ ws1.write(4,0, u'\u65E5\u672C\u8A9E') # RFC2152 example
+ ws1.write(5,0, u'Item 3 is \u00a31.') # RFC2152 example
+ ws1.write(8,0, u'\N{INTEGRAL}') # RFC2152 example
+
+ w.add_sheet(u'A\u2262\u0391.') # RFC2152 example
+ w.add_sheet(u'Hi Mom -\u263a-!') # RFC2152 example
+ one_more_ws = w.add_sheet(u'\u65E5\u672C\u8A9E') # RFC2152 example
+ w.add_sheet(u'Item 3 is \u00a31.') # RFC2152 example
+
+ one_more_ws.write(0, 0, u'\u2665\u2665')
+
+ w.add_sheet(u'\N{GREEK SMALL LETTER ETA WITH TONOS}')
+ w.save(filename)
+
+EXAMPLE_XLS = 'unicode1.xls'
+
+class TestUnicode1(unittest.TestCase):
+
+ def test_example_xls(self):
+ create_example_xls(in_tst_output_dir(EXAMPLE_XLS))
+ self.assertTrue(filecmp.cmp(in_tst_dir(EXAMPLE_XLS),
+ in_tst_output_dir(EXAMPLE_XLS),
+ shallow=False))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xlwt-1.2.0/tests/test_unicodeutils.py new/xlwt-1.3.0/tests/test_unicodeutils.py
--- old/xlwt-1.2.0/tests/test_unicodeutils.py 2017-01-04 17:16:40.000000000 +0100
+++ new/xlwt-1.3.0/tests/test_unicodeutils.py 2017-08-22 08:46:08.000000000 +0200
@@ -1,33 +1,37 @@
-# coding:utf-8
-
-import sys
-import unittest
-
-from xlwt.UnicodeUtils import upack1, upack2
-
-class TestUpack(unittest.TestCase):
- def test_upack1(self):
- result = b'\x1d\x00abcdefghijklmnopqrstuvwxyz\xd6\xc4\xdc'
- ustr = upack1(u"abcdefghijklmnopqrstuvwxyzÖÄÜ")
- self.assertEqual(ustr, result)
-
- def test_upack2_ascii(self):
- result = b'\x1d\x00\x00abcdefghijklmnopqrstuvwxyz\xd6\xc4\xdc'
- ustr = upack2(u"abcdefghijklmnopqrstuvwxyzÖÄÜ")
- self.assertEqual(ustr, result)
-
- def test_upack2_latin1(self):
- result = b'\x1d\x00\x00abcdefghijklmnopqrstuvwxyz\xd6\xc4\xdc'
- ustr = upack2(u"abcdefghijklmnopqrstuvwxyzÖÄÜ", encoding='latin1')
- self.assertEqual(ustr, result)
-
- def test_upack2_cp1251(self):
- result = b'\x1d\x00\x00abcdefghijklmnopqrstuvwxyz\xce\xeb\xff'
- ustr = upack2(u"abcdefghijklmnopqrstuvwxyz\xce\xeb\xff", encoding='cp1251')
- self.assertEqual(ustr, result)
-
- def test_unicode(self):
- chr_ = chr if (sys.version_info[0] >= 3) else unichr
- result = b'\x00\x02\x01\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\t\x00\n\x00\x0b\x00\x0c\x00\r\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00 \x00!\x00"\x00#\x00$\x00%\x00&\x00\'\x00(\x00)\x00*\x00+\x00,\x00-\x00.\x00/\x000\x001\x002\x003\x004\x005\x006\x007\x008\x009\x00:\x00;\x00<\x00=\x00>\x00?\x00@\x00A\x00B\x00C\x00D\x00E\x00F\x00G\x00H\x00I\x00J\x00K\x00L\x00M\x00N\x00O\x00P\x00Q\x00R\x00S\x00T\x00U\x00V\x00W\x00X\x00Y\x00Z\x00[\x00\\\x00]\x00^\x00_\x00`\x00a\x00b\x00c\x00d\x00e\x00f\x00g\x00h\x00i\x00j\x00k\x00l\x00m\x00n\x00o\x00p\x00q\x00r\x00s\x00t\x00u\x00v\x00w\x00x\x00y\x00z\x00{\x00|\x00}\x00~\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x00\x01\x01\x01\x02\x01\x03\x01\x04\x01\x05\x01\x06\x01\x07\x01\x08\x01\t\x01\n\x01\x0b\x01\x0c\x01\r\x01\x0e\x01\x0f\x01\x10\x01\x11\x01\x12\x01\x13\x01\x14\x01\x15\x01\x16\x01\x17\x01\x18\x01\x19\x01\x1a\x01\x1b\x01\x1c\x01\x1d\x01\x1e\x01\x1f\x01 \x01!\x01"\x01#\x01$\x01%\x01&\x01\'\x01(\x01)\x01*\x01+\x01,\x01-\x01.\x01/\x010\x011\x012\x013\x014\x015\x016\x017\x018\x019\x01:\x01;\x01<\x01=\x01>\x01?\x01@\x01A\x01B\x01C\x01D\x01E\x01F\x01G\x01H\x01I\x01J\x01K\x01L\x01M\x01N\x01O\x01P\x01Q\x01R\x01S\x01T\x01U\x01V\x01W\x01X\x01Y\x01Z\x01[\x01\\\x01]\x01^\x01_\x01`\x01a\x01b\x01c\x01d\x01e\x01f\x01g\x01h\x01i\x01j\x01k\x01l\x01m\x01n\x01o\x01p\x01q\x01r\x01s\x01t\x01u\x01v\x01w\x01x\x01y\x01z\x01{\x01|\x01}\x01~\x01\x7f\x01\x80\x01\x81\x01\x82\x01\x83\x01\x84\x01\x85\x01\x86\x01\x87\x01\x88\x01\x89\x01\x8a\x01\x8b\x01\x8c\x01\x8d\x01\x8e\x01\x8f\x01\x90\x01\x91\x01\x92\x01\x93\x01\x94\x01\x95\x01\x96\x01\x97\x01\x98\x01\x99\x01\x9a\x01\x9b\x01\x9c\x01\x9d\x01\x9e\x01\x9f\x01\xa0\x01\xa1\x01\xa2\x01\xa3\x01\xa4\x01\xa5\x01\xa6\x01\xa7\x01\xa8\x01\xa9\x01\xaa\x01\xab\x01\xac\x01\xad\x01\xae\x01\xaf\x01\xb0\x01\xb1\x01\xb2\x01\xb3\x01\xb4\x01\xb5\x01\xb6\x01\xb7\x01\xb8\x01\xb9\x01\xba\x01\xbb\x01\xbc\x01\xbd\x01\xbe\x01\xbf\x01\xc0\x01\xc1\x01\xc2\x01\xc3\x01\xc4\x01\xc5\x01\xc6\x01\xc7\x01\xc8\x01\xc9\x01\xca\x01\xcb\x01\xcc\x01\xcd\x01\xce\x01\xcf\x01\xd0\x01\xd1\x01\xd2\x01\xd3\x01\xd4\x01\xd5\x01\xd6\x01\xd7\x01\xd8\x01\xd9\x01\xda\x01\xdb\x01\xdc\x01\xdd\x01\xde\x01\xdf\x01\xe0\x01\xe1\x01\xe2\x01\xe3\x01\xe4\x01\xe5\x01\xe6\x01\xe7\x01\xe8\x01\xe9\x01\xea\x01\xeb\x01\xec\x01\xed\x01\xee\x01\xef\x01\xf0\x01\xf1\x01\xf2\x01\xf3\x01\xf4\x01\xf5\x01\xf6\x01\xf7\x01\xf8\x01\xf9\x01\xfa\x01\xfb\x01\xfc\x01\xfd\x01\xfe\x01\xff\x01'
- unicodestring = ''.join( [chr_(i) for i in range(0x200)])
- self.assertEqual(result, upack2(unicodestring))
+# coding:utf-8
+
+import sys
+import unittest
+
+from xlwt.UnicodeUtils import upack1, upack2, upack2rt
+
+class TestUpack(unittest.TestCase):
+ def test_upack1(self):
+ result = b'\x1d\x00abcdefghijklmnopqrstuvwxyz\xd6\xc4\xdc'
+ ustr = upack1(u"abcdefghijklmnopqrstuvwxyzÖÄÜ")
+ self.assertEqual(ustr, result)
+
+ def test_upack2_ascii(self):
+ result = b'\x1d\x00\x00abcdefghijklmnopqrstuvwxyz\xd6\xc4\xdc'
+ ustr = upack2(u"abcdefghijklmnopqrstuvwxyzÖÄÜ")
+ self.assertEqual(ustr, result)
+
+ def test_upack2_latin1(self):
+ result = b'\x1d\x00\x00abcdefghijklmnopqrstuvwxyz\xd6\xc4\xdc'
+ ustr = upack2(u"abcdefghijklmnopqrstuvwxyzÖÄÜ", encoding='latin1')
+ self.assertEqual(ustr, result)
+
+ def test_upack2_cp1251(self):
+ result = b'\x1d\x00\x00abcdefghijklmnopqrstuvwxyz\xce\xeb\xff'
+ ustr = upack2(u"abcdefghijklmnopqrstuvwxyz\xce\xeb\xff", encoding='cp1251')
+ self.assertEqual(ustr, result)
+
+ def test_unicode(self):
+ chr_ = chr if (sys.version_info[0] >= 3) else unichr
+ result = b'\x00\x02\x01\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\t\x00\n\x00\x0b\x00\x0c\x00\r\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00 \x00!\x00"\x00#\x00$\x00%\x00&\x00\'\x00(\x00)\x00*\x00+\x00,\x00-\x00.\x00/\x000\x001\x002\x003\x004\x005\x006\x007\x008\x009\x00:\x00;\x00<\x00=\x00>\x00?\x00@\x00A\x00B\x00C\x00D\x00E\x00F\x00G\x00H\x00I\x00J\x00K\x00L\x00M\x00N\x00O\x00P\x00Q\x00R\x00S\x00T\x00U\x00V\x00W\x00X\x00Y\x00Z\x00[\x00\\\x00]\x00^\x00_\x00`\x00a\x00b\x00c\x00d\x00e\x00f\x00g\x00h\x00i\x00j\x00k\x00l\x00m\x00n\x00o\x00p\x00q\x00r\x00s\x00t\x00u\x00v\x00w\x00x\x00y\x00z\x00{\x00|\x00}\x00~\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x00\x01\x01\x01\x02\x01\x03\x01\x04\x01\x05\x01\x06\x01\x07\x01\x08\x01\t\x01\n\x01\x0b\x01\x0c\x01\r\x01\x0e\x01\x0f\x01\x10\x01\x11\x01\x12\x01\x13\x01\x14\x01\x15\x01\x16\x01\x17\x01\x18\x01\x19\x01\x1a\x01\x1b\x01\x1c\x01\x1d\x01\x1e\x01\x1f\x01 \x01!\x01"\x01#\x01$\x01%\x01&\x01\'\x01(\x01)\x01*\x01+\x01,\x01-\x01.\x01/\x010\x011\x012\x013\x014\x015\x016\x017\x018\x019\x01:\x01;\x01<\x01=\x01>\x01?\x01@\x01A\x01B\x01C\x01D\x01E\x01F\x01G\x01H\x01I\x01J\x01K\x01L\x01M\x01N\x01O\x01P\x01Q\x01R\x01S\x01T\x01U\x01V\x01W\x01X\x01Y\x01Z\x01[\x01\\\x01]\x01^\x01_\x01`\x01a\x01b\x01c\x01d\x01e\x01f\x01g\x01h\x01i\x01j\x01k\x01l\x01m\x01n\x01o\x01p\x01q\x01r\x01s\x01t\x01u\x01v\x01w\x01x\x01y\x01z\x01{\x01|\x01}\x01~\x01\x7f\x01\x80\x01\x81\x01\x82\x01\x83\x01\x84\x01\x85\x01\x86\x01\x87\x01\x88\x01\x89\x01\x8a\x01\x8b\x01\x8c\x01\x8d\x01\x8e\x01\x8f\x01\x90\x01\x91\x01\x92\x01\x93\x01\x94\x01\x95\x01\x96\x01\x97\x01\x98\x01\x99\x01\x9a\x01\x9b\x01\x9c\x01\x9d\x01\x9e\x01\x9f\x01\xa0\x01\xa1\x01\xa2\x01\xa3\x01\xa4\x01\xa5\x01\xa6\x01\xa7\x01\xa8\x01\xa9\x01\xaa\x01\xab\x01\xac\x01\xad\x01\xae\x01\xaf\x01\xb0\x01\xb1\x01\xb2\x01\xb3\x01\xb4\x01\xb5\x01\xb6\x01\xb7\x01\xb8\x01\xb9\x01\xba\x01\xbb\x01\xbc\x01\xbd\x01\xbe\x01\xbf\x01\xc0\x01\xc1\x01\xc2\x01\xc3\x01\xc4\x01\xc5\x01\xc6\x01\xc7\x01\xc8\x01\xc9\x01\xca\x01\xcb\x01\xcc\x01\xcd\x01\xce\x01\xcf\x01\xd0\x01\xd1\x01\xd2\x01\xd3\x01\xd4\x01\xd5\x01\xd6\x01\xd7\x01\xd8\x01\xd9\x01\xda\x01\xdb\x01\xdc\x01\xdd\x01\xde\x01\xdf\x01\xe0\x01\xe1\x01\xe2\x01\xe3\x01\xe4\x01\xe5\x01\xe6\x01\xe7\x01\xe8\x01\xe9\x01\xea\x01\xeb\x01\xec\x01\xed\x01\xee\x01\xef\x01\xf0\x01\xf1\x01\xf2\x01\xf3\x01\xf4\x01\xf5\x01\xf6\x01\xf7\x01\xf8\x01\xf9\x01\xfa\x01\xfb\x01\xfc\x01\xfd\x01\xfe\x01\xff\x01'
+ unicodestring = ''.join( [chr_(i) for i in range(0x200)])
+ self.assertEqual(result, upack2(unicodestring))
+
+ def test_upack2rt(self):
+ result = b'\x06\x00\x09\x01\x00a\x00b\x00c\x00\x91\x03\x92\x03\x93\x03', b'\x00\x00\x0C\x00'
+ self.assertEqual(result, upack2rt([(u'abcΑΒΓ', 12)]))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xlwt-1.2.0/tox.ini new/xlwt-1.3.0/tox.ini
--- old/xlwt-1.2.0/tox.ini 2017-01-04 17:16:40.000000000 +0100
+++ new/xlwt-1.3.0/tox.ini 2017-08-22 08:46:08.000000000 +0200
@@ -4,7 +4,7 @@
# and then run "tox" from this directory.
[tox]
-envlist = py35, py34, py33, py27, py26
+envlist = py36, py35, py34, py33, py27, py26
[testenv]
commands =
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xlwt-1.2.0/xlwt/BIFFRecords.py new/xlwt-1.3.0/xlwt/BIFFRecords.py
--- old/xlwt-1.2.0/xlwt/BIFFRecords.py 2017-01-04 17:16:40.000000000 +0100
+++ new/xlwt-1.3.0/xlwt/BIFFRecords.py 2017-08-22 08:46:08.000000000 +0200
@@ -68,7 +68,7 @@
self._continues = [None, None]
self._current_piece = pack('