🔨 black and isort now rules the coding style

This commit is contained in:
chfw 2018-11-10 22:29:42 +00:00
parent aa7222de61
commit 6af34ace26
14 changed files with 240 additions and 179 deletions

View File

@ -1,4 +1,4 @@
{% extends 'tests/base.py.jj2' %}
{%block ods_types%}
{%endblock%}
{%endblock%}

View File

@ -11,17 +11,21 @@
# this line has to be place above all else
# because of dynamic import
from pyexcel_io.plugins import IOPluginInfoChain
from pyexcel_io.io import get_data as read_data, isstream, save_data as write_data
from pyexcel_io.io import (
get_data as read_data,
isstream,
save_data as write_data,
)
__FILE_TYPE__ = 'xls'
__FILE_TYPE__ = "xls"
IOPluginInfoChain(__name__).add_a_reader(
relative_plugin_class_path='xlsr.XLSBook',
file_types=[__FILE_TYPE__, 'xlsx', 'xlsm'],
stream_type='binary'
relative_plugin_class_path="xlsr.XLSBook",
file_types=[__FILE_TYPE__, "xlsx", "xlsm"],
stream_type="binary",
).add_a_writer(
relative_plugin_class_path='xlsw.XLSWriter',
relative_plugin_class_path="xlsw.XLSWriter",
file_types=[__FILE_TYPE__],
stream_type='binary'
stream_type="binary",
)

View File

@ -8,20 +8,26 @@
:license: New BSD License
"""
import datetime
import xlrd
from pyexcel_io.book import BookReader
from pyexcel_io.sheet import SheetReader
from pyexcel_io._compact import OrderedDict, irange
from pyexcel_io.service import has_no_digits_in_float
from pyexcel_io._compact import OrderedDict, irange
XLS_KEYWORDS = [
'filename', 'logfile', 'verbosity', 'use_mmap',
'file_contents', 'encoding_override', 'formatting_info',
'on_demand', 'ragged_rows'
"filename",
"logfile",
"verbosity",
"use_mmap",
"file_contents",
"encoding_override",
"formatting_info",
"on_demand",
"ragged_rows",
]
DEFAULT_ERROR_VALUE = '#N/A'
DEFAULT_ERROR_VALUE = "#N/A"
class MergedCell(object):
@ -45,6 +51,7 @@ class XLSheet(SheetReader):
Currently only support first sheet in the file
"""
def __init__(self, sheet, auto_detect_int=True, date_mode=0, **keywords):
SheetReader.__init__(self, sheet, **keywords)
self.__auto_detect_int = auto_detect_int
@ -52,11 +59,11 @@ class XLSheet(SheetReader):
self.__hidden_rows = []
self.__merged_cells = {}
self._book_date_mode = date_mode
if keywords.get('detect_merged_cells') is True:
if keywords.get("detect_merged_cells") is True:
for merged_cell_ranges in sheet.merged_cells:
merged_cells = MergedCell(*merged_cell_ranges)
merged_cells.register_cells(self.__merged_cells)
if keywords.get('skip_hidden_row_and_column') is True:
if keywords.get("skip_hidden_row_and_column") is True:
for col_index, info in self._native_sheet.colinfo_map.items():
if info.hidden == 1:
self.__hidden_cols.append(col_index)
@ -84,7 +91,7 @@ class XLSheet(SheetReader):
"""
Random access to the xls cells
"""
if self._keywords.get('skip_hidden_row_and_column') is True:
if self._keywords.get("skip_hidden_row_and_column") is True:
row, column = self._offset_hidden_indices(row, column)
cell_type = self._native_sheet.cell_type(row, column)
value = self._native_sheet.cell_value(row, column)
@ -126,6 +133,7 @@ class XLSBook(BookReader):
It reads xls, xlsm, xlsx work book
"""
def __init__(self):
BookReader.__init__(self)
self._file_content = None
@ -147,10 +155,11 @@ class XLSBook(BookReader):
self._file_content = file_content
def __parse_keywords(self, **keywords):
self.__skip_hidden_sheets = keywords.get('skip_hidden_sheets', True)
self.__skip_hidden_sheets = keywords.get("skip_hidden_sheets", True)
self.__skip_hidden_row_column = keywords.get(
'skip_hidden_row_and_column', True)
self.__detect_merged_cells = keywords.get('detect_merged_cells', False)
"skip_hidden_row_and_column", True
)
self.__detect_merged_cells = keywords.get("detect_merged_cells", False)
def close(self):
if self._native_book:
@ -181,27 +190,30 @@ class XLSBook(BookReader):
return result
def read_sheet(self, native_sheet):
sheet = XLSheet(native_sheet, date_mode=self._native_book.datemode,
**self._keywords)
sheet = XLSheet(
native_sheet,
date_mode=self._native_book.datemode,
**self._keywords
)
return {sheet.name: sheet.to_array()}
def _get_book(self, on_demand=False):
xlrd_params = self._extract_xlrd_params()
xlrd_params['on_demand'] = on_demand
xlrd_params["on_demand"] = on_demand
if self._file_name:
xlrd_params['filename'] = self._file_name
xlrd_params["filename"] = self._file_name
elif self._file_stream:
file_content = self._file_stream.read()
xlrd_params['file_contents'] = file_content
xlrd_params["file_contents"] = file_content
elif self._file_content is not None:
xlrd_params['file_contents'] = self._file_content
xlrd_params["file_contents"] = self._file_content
else:
raise IOError("No valid file name or file content found.")
if self.__skip_hidden_row_column and self._file_type == 'xls':
xlrd_params['formatting_info'] = True
if self.__skip_hidden_row_column and self._file_type == "xls":
xlrd_params["formatting_info"] = True
if self.__detect_merged_cells:
xlrd_params['formatting_info'] = True
xlrd_params["formatting_info"] = True
xls_book = xlrd.open_workbook(**xlrd_params)
return xls_book
@ -224,13 +236,9 @@ def xldate_to_python_date(value, date_mode):
if date_tuple == (0, 0, 0, 0, 0, 0):
ret = datetime.datetime(1900, 1, 1, 0, 0, 0)
elif date_tuple[0:3] == (0, 0, 0):
ret = datetime.time(date_tuple[3],
date_tuple[4],
date_tuple[5])
ret = datetime.time(date_tuple[3], date_tuple[4], date_tuple[5])
elif date_tuple[3:6] == (0, 0, 0):
ret = datetime.date(date_tuple[0],
date_tuple[1],
date_tuple[2])
ret = datetime.date(date_tuple[0], date_tuple[1], date_tuple[2])
else:
ret = datetime.datetime(
date_tuple[0],
@ -238,6 +246,6 @@ def xldate_to_python_date(value, date_mode):
date_tuple[2],
date_tuple[3],
date_tuple[4],
date_tuple[5]
date_tuple[5],
)
return ret

View File

@ -8,13 +8,13 @@
:license: New BSD License
"""
import datetime
import xlrd
from xlwt import Workbook, XFStyle
from xlwt import XFStyle, Workbook
from pyexcel_io.book import BookWriter
from pyexcel_io.sheet import SheetWriter
DEFAULT_DATE_FORMAT = "DD/MM/YY"
DEFAULT_TIME_FORMAT = "HH:MM:SS"
DEFAULT_DATETIME_FORMAT = "%s %s" % (DEFAULT_DATE_FORMAT, DEFAULT_TIME_FORMAT)
@ -25,6 +25,7 @@ class XLSheetWriter(SheetWriter):
"""
xls sheet writer
"""
def set_sheet_name(self, name):
"""Create a sheet
"""
@ -40,8 +41,12 @@ class XLSheetWriter(SheetWriter):
tmp_array = []
if isinstance(value, datetime.datetime):
tmp_array = [
value.year, value.month, value.day,
value.hour, value.minute, value.second
value.year,
value.month,
value.day,
value.hour,
value.minute,
value.second,
]
value = xlrd.xldate.xldate_from_datetime_tuple(tmp_array, 0)
style = XFStyle()
@ -67,15 +72,18 @@ class XLSWriter(BookWriter):
"""
xls writer
"""
def __init__(self):
BookWriter.__init__(self)
self.work_book = None
def open(self, file_name,
encoding='ascii', style_compression=2, **keywords):
def open(
self, file_name, encoding="ascii", style_compression=2, **keywords
):
BookWriter.open(self, file_name, **keywords)
self.work_book = Workbook(style_compression=style_compression,
encoding=encoding)
self.work_book = Workbook(
style_compression=style_compression, encoding=encoding
)
def write(self, incoming_dict):
if incoming_dict:

View File

@ -1,7 +1,6 @@
# flake8: noqa
import sys
if sys.version_info[0] == 2 and sys.version_info[1] < 7:
from ordereddict import OrderedDict
else:

View File

@ -1,11 +1,13 @@
import os # noqa
import pyexcel
import datetime # noqa
from nose.tools import raises, eq_ # noqa
import pyexcel
from nose.tools import eq_, raises # noqa
def create_sample_file1(file):
data = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 1.1, 1]
data = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", 1.1, 1]
table = []
table.append(data[:4])
table.append(data[4:8])
@ -17,10 +19,11 @@ class PyexcelHatWriterBase:
"""
Abstract functional test for hat writers
"""
content = {
"X": [1, 2, 3, 4, 5],
"Y": [6, 7, 8, 9, 10],
"Z": [11, 12, 13, 14, 15]
"Z": [11, 12, 13, 14, 15],
}
def test_series_table(self):
@ -36,11 +39,12 @@ class PyexcelWriterBase:
testfile and testfile2 have to be initialized before
it is used for testing
"""
content = [
[1, 2, 3, 4, 5],
[1, 2, 3, 4, 5],
[1, 2, 3, 4, 5],
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5],
]
def _create_a_file(self, file):
@ -54,7 +58,6 @@ class PyexcelWriterBase:
class PyexcelMultipleSheetBase:
def _write_test_file(self, filename):
pyexcel.save_book_as(bookdict=self.content, dest_file_name=filename)
@ -80,7 +83,7 @@ class PyexcelMultipleSheetBase:
expected = [[4, 4, 4, 4], [5, 5, 5, 5], [6, 6, 6, 6]]
assert data == expected
data = list(b["Sheet3"].rows())
expected = [[u'X', u'Y', u'Z'], [1, 4, 7], [2, 5, 8], [3, 6, 9]]
expected = [[u"X", u"Y", u"Z"], [1, 4, 7], [2, 5, 8], [3, 6, 9]]
assert data == expected
sheet3 = b["Sheet3"]
sheet3.name_columns_by_row(0)

View File

@ -5,17 +5,19 @@
"""
import os
import datetime
import pyexcel as pe
from _compact import OrderedDict
from mock import patch
from nose import SkipTest
from nose.tools import eq_, raises
from pyexcel_xls import save_data
from pyexcel_xls.xlsr import xldate_to_python_date
from pyexcel_xls.xlsw import XLSWriter as Writer
from _compact import OrderedDict
from nose.tools import eq_, raises
from nose import SkipTest
import datetime
from mock import patch
IN_TRAVIS = 'TRAVIS' in os.environ
IN_TRAVIS = "TRAVIS" in os.environ
def test_pyexcel_issue_5():
@ -41,16 +43,15 @@ def test_issue_9_hidden_sheet():
test_file = get_fixture("hidden_sheets.xls")
book_dict = pe.get_book_dict(file_name=test_file)
assert "hidden" not in book_dict
eq_(book_dict['shown'], [['A', 'B']])
eq_(book_dict["shown"], [["A", "B"]])
def test_issue_9_hidden_sheet_2():
test_file = get_fixture("hidden_sheets.xls")
book_dict = pe.get_book_dict(file_name=test_file,
skip_hidden_sheets=False)
book_dict = pe.get_book_dict(file_name=test_file, skip_hidden_sheets=False)
assert "hidden" in book_dict
eq_(book_dict['shown'], [['A', 'B']])
eq_(book_dict['hidden'], [['a', 'b']])
eq_(book_dict["shown"], [["A", "B"]])
eq_(book_dict["hidden"], [["a", "b"]])
def test_issue_10_generator_as_content():
@ -58,46 +59,52 @@ def test_issue_10_generator_as_content():
def custom_row_renderer(row):
for e in row:
yield e
for i in range(2):
yield custom_row_renderer([1, 2])
save_data("test.xls", {"sheet": data_gen()})
@raises(IOError)
def test_issue_13_empty_file_content():
pe.get_sheet(file_content='', file_type='xls')
pe.get_sheet(file_content="", file_type="xls")
def test_issue_16_file_stream_has_no_getvalue():
test_file = get_fixture("hidden_sheets.xls")
with open(test_file, 'rb') as f:
pe.get_sheet(file_stream=f, file_type='xls')
with open(test_file, "rb") as f:
pe.get_sheet(file_stream=f, file_type="xls")
@patch('xlrd.open_workbook')
@patch("xlrd.open_workbook")
def test_issue_18_encoding_override_isnt_passed(fake_open):
fake_open.return_value = None
test_encoding = 'utf-32'
test_encoding = "utf-32"
from pyexcel_xls.xlsr import XLSBook
book = XLSBook()
book.open('fake_file.xls', encoding_override=test_encoding)
book.open("fake_file.xls", encoding_override=test_encoding)
book._get_book()
keywords = fake_open.call_args[1]
assert keywords['encoding_override'] == test_encoding
assert keywords["encoding_override"] == test_encoding
def test_issue_20():
if not IN_TRAVIS:
raise SkipTest()
pe.get_book(url="https://github.com/pyexcel/pyexcel-xls/raw/master/tests/fixtures/file_with_an_empty_sheet.xls") # noqa: E501
pe.get_book(
url="https://github.com/pyexcel/pyexcel-xls/raw/master/tests/fixtures/file_with_an_empty_sheet.xls" # noqa: E501
)
def test_issue_151():
s = pe.get_sheet(
file_name=get_fixture('pyexcel_issue_151.xlsx'),
file_name=get_fixture("pyexcel_issue_151.xlsx"),
skip_hidden_row_and_column=False,
library='pyexcel-xls')
eq_('#N/A', s[0, 0])
library="pyexcel-xls",
)
eq_("#N/A", s[0, 0])
@raises(NotImplementedError)

View File

@ -1,7 +1,7 @@
import os
from pyexcel_io import get_data, save_data
from nose.tools import eq_
from pyexcel_io import get_data, save_data
class TestFilter:
@ -13,49 +13,58 @@ class TestFilter:
[3, 23, 33],
[4, 24, 34],
[5, 25, 35],
[6, 26, 36]
[6, 26, 36],
]
save_data(self.test_file, sample)
self.sheet_name = "pyexcel_sheet1"
def test_filter_row(self):
filtered_data = get_data(self.test_file, start_row=3,
library="pyexcel-xls")
filtered_data = get_data(
self.test_file, start_row=3, library="pyexcel-xls"
)
expected = [[4, 24, 34], [5, 25, 35], [6, 26, 36]]
eq_(filtered_data[self.sheet_name], expected)
def test_filter_row_2(self):
filtered_data = get_data(self.test_file, start_row=3, row_limit=1,
library="pyexcel-xls")
filtered_data = get_data(
self.test_file, start_row=3, row_limit=1, library="pyexcel-xls"
)
expected = [[4, 24, 34]]
eq_(filtered_data[self.sheet_name], expected)
def test_filter_column(self):
filtered_data = get_data(self.test_file, start_column=1,
library="pyexcel-xls")
expected = [[21, 31], [22, 32], [23, 33],
[24, 34], [25, 35], [26, 36]]
filtered_data = get_data(
self.test_file, start_column=1, library="pyexcel-xls"
)
expected = [[21, 31], [22, 32], [23, 33], [24, 34], [25, 35], [26, 36]]
eq_(filtered_data[self.sheet_name], expected)
def test_filter_column_2(self):
filtered_data = get_data(self.test_file,
start_column=1, column_limit=1,
library="pyexcel-xls")
filtered_data = get_data(
self.test_file,
start_column=1,
column_limit=1,
library="pyexcel-xls",
)
expected = [[21], [22], [23], [24], [25], [26]]
eq_(filtered_data[self.sheet_name], expected)
def test_filter_both_ways(self):
filtered_data = get_data(self.test_file,
start_column=1, start_row=3,
library="pyexcel-xls")
filtered_data = get_data(
self.test_file, start_column=1, start_row=3, library="pyexcel-xls"
)
expected = [[24, 34], [25, 35], [26, 36]]
eq_(filtered_data[self.sheet_name], expected)
def test_filter_both_ways_2(self):
filtered_data = get_data(self.test_file,
start_column=1, column_limit=1,
start_row=3, row_limit=1,
library="pyexcel-xls")
filtered_data = get_data(
self.test_file,
start_column=1,
column_limit=1,
start_row=3,
row_limit=1,
library="pyexcel-xls",
)
expected = [[24]]
eq_(filtered_data[self.sheet_name], expected)

View File

@ -1,9 +1,10 @@
import os
from textwrap import dedent
from nose.tools import eq_
import pyexcel as pe
from nose.tools import eq_
class TestDateFormat:
def test_reading_date_format(self):
@ -15,9 +16,11 @@ class TestDateFormat:
0.0 0.0
"""
import datetime
r = pe.get_sheet(file_name=os.path.join("tests", "fixtures",
"date_field.xls"),
library='pyexcel-xls')
r = pe.get_sheet(
file_name=os.path.join("tests", "fixtures", "date_field.xls"),
library="pyexcel-xls",
)
assert isinstance(r[1, 0], datetime.date)
eq_(r[1, 0].strftime("%d/%m/%y"), "25/12/14")
assert isinstance(r[1, 1], datetime.time) is True
@ -27,12 +30,17 @@ class TestDateFormat:
def test_writing_date_format(self):
import datetime
excel_filename = "testdateformat.xls"
data = [[datetime.date(2014, 12, 25),
data = [
[
datetime.date(2014, 12, 25),
datetime.time(11, 11, 11),
datetime.datetime(2014, 12, 25, 11, 11, 11)]]
datetime.datetime(2014, 12, 25, 11, 11, 11),
]
]
pe.save_as(dest_file_name=excel_filename, array=data)
r = pe.get_sheet(file_name=excel_filename, library='pyexcel-xls')
r = pe.get_sheet(file_name=excel_filename, library="pyexcel-xls")
assert isinstance(r[0, 0], datetime.date) is True
assert r[0, 0].strftime("%d/%m/%y") == "25/12/14"
assert isinstance(r[0, 1], datetime.time) is True
@ -46,46 +54,58 @@ class TestAutoDetectInt:
def setUp(self):
self.content = [[1, 2, 3.1]]
self.test_file = "test_auto_detect_init.xls"
pe.save_as(
array=self.content, dest_file_name=self.test_file
)
pe.save_as(array=self.content, dest_file_name=self.test_file)
def test_auto_detect_int(self):
sheet = pe.get_sheet(file_name=self.test_file, library="pyexcel-xls")
expected = dedent("""
expected = dedent(
"""
pyexcel_sheet1:
+---+---+-----+
| 1 | 2 | 3.1 |
+---+---+-----+""").strip()
+---+---+-----+"""
).strip()
eq_(str(sheet), expected)
def test_get_book_auto_detect_int(self):
book = pe.get_book(file_name=self.test_file, library="pyexcel-xls")
expected = dedent("""
expected = dedent(
"""
pyexcel_sheet1:
+---+---+-----+
| 1 | 2 | 3.1 |
+---+---+-----+""").strip()
+---+---+-----+"""
).strip()
eq_(str(book), expected)
def test_auto_detect_int_false(self):
sheet = pe.get_sheet(file_name=self.test_file, auto_detect_int=False,
library="pyexcel-xls")
expected = dedent("""
sheet = pe.get_sheet(
file_name=self.test_file,
auto_detect_int=False,
library="pyexcel-xls",
)
expected = dedent(
"""
pyexcel_sheet1:
+-----+-----+-----+
| 1.0 | 2.0 | 3.1 |
+-----+-----+-----+""").strip()
+-----+-----+-----+"""
).strip()
eq_(str(sheet), expected)
def test_get_book_auto_detect_int_false(self):
book = pe.get_book(file_name=self.test_file, auto_detect_int=False,
library="pyexcel-xls")
expected = dedent("""
book = pe.get_book(
file_name=self.test_file,
auto_detect_int=False,
library="pyexcel-xls",
)
expected = dedent(
"""
pyexcel_sheet1:
+-----+-----+-----+
| 1.0 | 2.0 | 3.1 |
+-----+-----+-----+""").strip()
+-----+-----+-----+"""
).strip()
eq_(str(book), expected)
def tearDown(self):

View File

@ -1,18 +1,22 @@
import os
from nose.tools import eq_
from pyexcel_xls import get_data
def test_simple_hidden_sheets():
data = get_data(os.path.join("tests", "fixtures", "hidden.xls"),
skip_hidden_row_and_column=True)
data = get_data(
os.path.join("tests", "fixtures", "hidden.xls"),
skip_hidden_row_and_column=True,
)
expected = [[1, 3], [7, 9]]
eq_(data['Sheet1'], expected)
eq_(data["Sheet1"], expected)
def test_complex_hidden_sheets():
data = get_data(
os.path.join("tests", "fixtures", "complex_hidden_sheets.xls"),
skip_hidden_row_and_column=True)
skip_hidden_row_and_column=True,
)
expected = [[1, 3, 5, 7, 9], [31, 33, 35, 37, 39], [61, 63, 65, 67]]
eq_(data['Sheet1'], expected)
eq_(data["Sheet1"], expected)

View File

@ -1,23 +1,26 @@
import os
from nose.tools import eq_
from pyexcel_xls import get_data
from pyexcel_xls.xlsr import MergedCell
from nose.tools import eq_
def test_merged_cells():
data = get_data(
get_fixture("merged-cell-sheet.xls"),
detect_merged_cells=True,
library="pyexcel-xls")
library="pyexcel-xls",
)
expected = [[1, 2, 3], [1, 5, 6], [1, 8, 9], [10, 11, 11]]
eq_(data['Sheet1'], expected)
eq_(data["Sheet1"], expected)
def test_complex_merged_cells():
data = get_data(
get_fixture("complex-merged-cells-sheet.xls"),
detect_merged_cells=True,
library="pyexcel-xls")
library="pyexcel-xls",
)
expected = [
[1, 1, 2, 3, 15, 16, 22, 22, 24, 24],
[1, 1, 4, 5, 15, 17, 22, 22, 24, 24],
@ -26,16 +29,17 @@ def test_complex_merged_cells():
[13, 11, 11, 14, 20, 20, 23, 23, 24, 24],
[21, 21, 21, 21, 21, 21, 23, 23, 24, 24],
[25, 25, 25, 25, 25, 25, 25, 25, 25, 25],
[25, 25, 25, 25, 25, 25, 25, 25, 25, 25]
[25, 25, 25, 25, 25, 25, 25, 25, 25, 25],
]
eq_(data['Sheet1'], expected)
eq_(data["Sheet1"], expected)
def test_exploration():
data = get_data(
get_fixture("merged-sheet-exploration.xls"),
detect_merged_cells=True,
library="pyexcel-xls")
library="pyexcel-xls",
)
expected_sheet1 = [
[1, 1, 1, 1, 1, 1],
[2],
@ -46,28 +50,23 @@ def test_exploration():
[2],
[2],
[2],
[2]]
eq_(data['Sheet1'], expected_sheet1)
expected_sheet2 = [
[3],
[3],
[3],
[3, 4, 4, 4, 4, 4, 4],
[3],
[3],
[3]]
eq_(data['Sheet2'], expected_sheet2)
[2],
]
eq_(data["Sheet1"], expected_sheet1)
expected_sheet2 = [[3], [3], [3], [3, 4, 4, 4, 4, 4, 4], [3], [3], [3]]
eq_(data["Sheet2"], expected_sheet2)
expected_sheet3 = [
['', '', '', '', '', 2, 2, 2],
["", "", "", "", "", 2, 2, 2],
[],
[],
[],
['', '', '', 5],
['', '', '', 5],
['', '', '', 5],
['', '', '', 5],
['', '', '', 5]]
eq_(data['Sheet3'], expected_sheet3)
["", "", "", 5],
["", "", "", 5],
["", "", "", 5],
["", "", "", 5],
["", "", "", 5],
]
eq_(data["Sheet3"], expected_sheet3)
def test_merged_cell_class():
@ -75,10 +74,9 @@ def test_merged_cell_class():
merged_cell = MergedCell(1, 4, 1, 4)
merged_cell.register_cells(test_dict)
keys = sorted(list(test_dict.keys()))
expected = ['1-1', '1-2', '1-3', '2-1',
'2-2', '2-3', '3-1', '3-2', '3-3']
expected = ["1-1", "1-2", "1-3", "2-1", "2-2", "2-3", "3-1", "3-2", "3-3"]
eq_(keys, expected)
eq_(merged_cell, test_dict['3-1'])
eq_(merged_cell, test_dict["3-1"])
def get_fixture(file_name):

View File

@ -1,9 +1,11 @@
import os
import sys
import pyexcel
from nose.tools import raises
from base import PyexcelMultipleSheetBase
from nose.tools import raises
if sys.version_info[0] == 2 and sys.version_info[1] < 7:
from ordereddict import OrderedDict
else:
@ -31,8 +33,7 @@ class TestAddBooks:
3,3,3,3
"""
self.rows = 3
pyexcel.save_book_as(bookdict=self.content,
dest_file_name=file)
pyexcel.save_book_as(bookdict=self.content, dest_file_name=file)
def setUp(self):
self.testfile = "multiple1.xls"
@ -45,12 +46,12 @@ class TestAddBooks:
def test_load_a_single_sheet(self):
b1 = pyexcel.get_book(file_name=self.testfile, sheet_name="Sheet1")
assert len(b1.sheet_names()) == 1
assert b1['Sheet1'].to_array() == self.content['Sheet1']
assert b1["Sheet1"].to_array() == self.content["Sheet1"]
def test_load_a_single_sheet2(self):
b1 = pyexcel.load_book(self.testfile, sheet_index=0)
assert len(b1.sheet_names()) == 1
assert b1['Sheet1'].to_array() == self.content['Sheet1']
assert b1["Sheet1"].to_array() == self.content["Sheet1"]
@raises(IndexError)
def test_load_a_single_sheet3(self):
@ -219,18 +220,17 @@ class TestMultiSheetReader:
self.testfile = "file_with_an_empty_sheet.xls"
def test_reader_with_correct_sheets(self):
r = pyexcel.BookReader(os.path.join("tests",
"fixtures",
self.testfile))
r = pyexcel.BookReader(
os.path.join("tests", "fixtures", self.testfile)
)
assert r.number_of_sheets() == 3
def _produce_ordered_dict():
data_dict = OrderedDict()
data_dict.update({
"Sheet1": [[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3]]})
data_dict.update({
"Sheet2": [[4, 4, 4, 4], [5, 5, 5, 5], [6, 6, 6, 6]]})
data_dict.update({
"Sheet3": [[u'X', u'Y', u'Z'], [1, 4, 7], [2, 5, 8], [3, 6, 9]]})
data_dict.update({"Sheet1": [[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3]]})
data_dict.update({"Sheet2": [[4, 4, 4, 4], [5, 5, 5, 5], [6, 6, 6, 6]]})
data_dict.update(
{"Sheet3": [[u"X", u"Y", u"Z"], [1, 4, 7], [2, 5, 8], [3, 6, 9]]}
)
return data_dict

View File

@ -1,33 +1,32 @@
import os
import pyexcel
from nose.tools import eq_
from base import create_sample_file1
from nose.tools import eq_
class TestStringIO:
def test_xls_stringio(self):
testfile = "cute.xls"
create_sample_file1(testfile)
with open(testfile, "rb") as f:
content = f.read()
r = pyexcel.get_sheet(file_type="xls", file_content=content,
library="pyexcel-xls")
result = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 1.1, 1]
r = pyexcel.get_sheet(
file_type="xls", file_content=content, library="pyexcel-xls"
)
result = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", 1.1, 1]
actual = list(r.enumerate())
eq_(result, actual)
if os.path.exists(testfile):
os.unlink(testfile)
def test_xls_output_stringio(self):
data = [
[1, 2, 3],
[4, 5, 6]
]
io = pyexcel.save_as(dest_file_type="xls",
array=data)
r = pyexcel.get_sheet(file_type="xls", file_content=io.getvalue(),
library="pyexcel-xls")
data = [[1, 2, 3], [4, 5, 6]]
io = pyexcel.save_as(dest_file_type="xls", array=data)
r = pyexcel.get_sheet(
file_type="xls", file_content=io.getvalue(), library="pyexcel-xls"
)
result = [1, 2, 3, 4, 5, 6]
actual = list(r.enumerate())
eq_(result, actual)

View File

@ -1,15 +1,17 @@
import os
from pyexcel_xls.xlsw import XLSWriter as Writer
from pyexcel_xls.xlsr import XLSBook as Reader
from base import PyexcelWriterBase, PyexcelHatWriterBase
from pyexcel_xls.xlsr import XLSBook as Reader
from pyexcel_xls.xlsw import XLSWriter as Writer
class TestNativeXLSWriter:
def test_write_book(self):
self.content = {
"Sheet1": [[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3]],
"Sheet2": [[4, 4, 4, 4], [5, 5, 5, 5], [6, 6, 6, 6]],
"Sheet3": [[u'X', u'Y', u'Z'], [1, 4, 7], [2, 5, 8], [3, 6, 9]]
"Sheet3": [[u"X", u"Y", u"Z"], [1, 4, 7], [2, 5, 8], [3, 6, 9]],
}
self.testfile = "writer.xls"
writer = Writer()