Skip to content

Commit d27079f

Browse files
committed
pylinting and use pyexcel-xlsx as nick name for pyexcel-xlsx
1 parent 3dd5c94 commit d27079f

File tree

4 files changed

+46
-40
lines changed

4 files changed

+46
-40
lines changed

pyexcel_xlsx/__init__.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,23 @@
99
"""
1010
# this line has to be place above all else
1111
# because of dynamic import
12-
__pyexcel_io_plugins__ = ['xlsx']
12+
_FILE_TYPE = 'xlsx'
13+
__pyexcel_io_plugins__ = [_FILE_TYPE]
1314

1415

1516
from pyexcel_io.io import get_data as read_data, isstream, store_data as write_data
1617

1718

1819
def save_data(afile, data, file_type=None, **keywords):
20+
"""standalone module function for writing module supported file type"""
1921
if isstream(afile) and file_type is None:
20-
file_type='xlsx'
22+
file_type = _FILE_TYPE
2123
write_data(afile, data, file_type=file_type, **keywords)
2224

2325

2426
def get_data(afile, file_type=None, **keywords):
27+
"""standalone module function for reading module supported file type"""
2528
if isstream(afile) and file_type is None:
26-
file_type='xlsx'
29+
file_type = _FILE_TYPE
2730
return read_data(afile, file_type=file_type, **keywords)
2831

pyexcel_xlsx/xlsx.py

Lines changed: 35 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -8,27 +8,30 @@
88
:license: New BSD License
99
"""
1010
import sys
11-
import openpyxl
12-
1311
from pyexcel_io.book import BookReader, BookWriter
1412
from pyexcel_io.sheet import SheetReader, SheetWriter
13+
import openpyxl
1514

16-
PY2 = sys.version_info[0] == 2
17-
if PY2 and sys.version_info[1] < 7:
15+
PY27_BELOW = sys.version_info[0] == 2 and sys.version_info[1] < 7
16+
if PY27_BELOW:
1817
from ordereddict import OrderedDict
1918
else:
20-
from collections import OrderedDict
19+
from collections import OrderedDict
2120

2221

2322
COLUMNS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
2423
COLUMN_LENGTH = 26
2524

2625

2726
def get_columns(index):
27+
"""
28+
Convert column index to column name
29+
"""
2830
if index < COLUMN_LENGTH:
2931
return COLUMNS[index]
3032
else:
31-
return (get_columns(int(index // COLUMN_LENGTH) - 1) + COLUMNS[index % COLUMN_LENGTH])
33+
return (get_columns(int(index // COLUMN_LENGTH) - 1) +
34+
COLUMNS[index % COLUMN_LENGTH])
3235

3336

3437
class XLSXSheet(SheetReader):
@@ -37,6 +40,7 @@ class XLSXSheet(SheetReader):
3740
"""
3841
@property
3942
def name(self):
43+
"""sheet name"""
4044
return self.native_sheet.title
4145

4246
def number_of_rows(self):
@@ -60,16 +64,16 @@ def cell_value(self, row, column):
6064
return self.native_sheet.cell(cell_location).value
6165

6266
def to_array(self):
63-
for r in range(0, self.number_of_rows()):
64-
row = []
67+
for row in range(0, self.number_of_rows()):
68+
return_row = []
6569
tmp_row = []
66-
for c in range(0, self.number_of_columns()):
67-
cell_value = self.cell_value(r, c)
70+
for column in range(0, self.number_of_columns()):
71+
cell_value = self.cell_value(row, column)
6872
tmp_row.append(cell_value)
6973
if cell_value is not None and cell_value != '':
70-
row += tmp_row
74+
return_row += tmp_row
7175
tmp_row = []
72-
yield row
76+
yield return_row
7377

7478

7579
class XLSXBook(BookReader):
@@ -78,10 +82,6 @@ class XLSXBook(BookReader):
7882
7983
It reads xls, xlsm, xlsx work book
8084
"""
81-
def __init__(self):
82-
BookReader.__init__(self)
83-
self.book = None
84-
8585
def open(self, file_name, **keywords):
8686
BookReader.open(self, file_name, **keywords)
8787
self._load_from_file()
@@ -91,37 +91,40 @@ def open_stream(self, file_stream, **keywords):
9191
self._load_from_memory()
9292

9393
def read_sheet_by_name(self, sheet_name):
94-
sheet = self.book.get_sheet_by_name(sheet_name)
94+
sheet = self.native_book.get_sheet_by_name(sheet_name)
9595
if sheet is None:
9696
raise ValueError("%s cannot be found" % sheet_name)
9797
else:
98-
sheet = XLSXSheet(sheet)
99-
return {sheet_name: sheet.to_array()}
98+
return self.read_sheet(sheet)
10099

101100
def read_sheet_by_index(self, sheet_index):
102-
names = self.book.sheetnames
101+
names = self.native_book.sheetnames
103102
length = len(names)
104103
if sheet_index < length:
105104
return self.read_sheet_by_name(names[sheet_index])
106105
else:
107-
raise IndexError("Index %d of out bound %d" %(
106+
raise IndexError("Index %d of out bound %d" % (
108107
sheet_index,
109108
length))
110109

111110
def read_all(self):
112111
result = OrderedDict()
113-
for sheet in self.book:
114-
sheet = XLSXSheet(sheet)
115-
result[sheet.name] = sheet.to_array()
112+
for sheet in self.native_book:
113+
data_dict = self.read_sheet(sheet)
114+
result.update(data_dict)
116115
return result
117-
116+
117+
def read_sheet(self, native_sheet):
118+
sheet = XLSXSheet(native_sheet, **self.keywords)
119+
return {sheet.name: sheet.to_array()}
120+
118121
def _load_from_memory(self):
119-
self.book = openpyxl.load_workbook(filename=self.file_stream,
120-
data_only=True)
122+
self.native_book = openpyxl.load_workbook(filename=self.file_stream,
123+
data_only=True)
121124

122125
def _load_from_file(self):
123-
self.book = openpyxl.load_workbook(filename=self.file_name,
124-
data_only=True)
126+
self.native_book = openpyxl.load_workbook(filename=self.file_name,
127+
data_only=True)
125128

126129

127130
class XLSXSheetWriter(SheetWriter):
@@ -177,7 +180,7 @@ def close(self):
177180
"writer": XLSXWriter,
178181
"stream_type": "binary",
179182
"mime_type": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
180-
"library": "openpyxl"
183+
"library": "pyexcel-xlsx"
181184
}
182185

183186
_xlsm_registry = {
@@ -186,7 +189,7 @@ def close(self):
186189
"writer": XLSXWriter,
187190
"stream_type": "binary",
188191
"mime_type": "application/vnd.ms-excel.sheet.macroenabled.12",
189-
"library": "openpyxl"
192+
"library": "pyexcel-xlsx"
190193
}
191194

192-
exports = (_xlsx_registry, _xlsm_registry)
195+
exports = (_xlsx_registry, _xlsm_registry)

tests/test_formatters.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ def test_reading_date_format(self):
1212
01/01/15 13:13:13
1313
0.0 0.0
1414
"""
15-
r = pe.get_sheet(file_name=os.path.join("tests", "fixtures", "date_field.xlsx"), library="openpyxl")
15+
r = pe.get_sheet(file_name=os.path.join("tests", "fixtures", "date_field.xlsx"), library="pyexcel-xlsx")
1616
assert isinstance(r[1,0], datetime.date) == True
1717
assert r[1,0].strftime("%d/%m/%y") == "25/12/14"
1818
assert isinstance(r[1,1], datetime.time) == True
@@ -27,7 +27,7 @@ def test_writing_date_format(self):
2727
datetime.time(11,11,11),
2828
datetime.datetime(2014,12,25,11,11,11)]]
2929
pe.save_as(dest_file_name=excel_filename, array=data)
30-
r = pe.get_sheet(file_name=excel_filename, library="openpyxl")
30+
r = pe.get_sheet(file_name=excel_filename, library="pyexcel-xlsx")
3131
assert isinstance(r[0,0], datetime.date) == True
3232
assert r[0,0].strftime("%d/%m/%y") == "25/12/14"
3333
assert isinstance(r[0,1], datetime.time) == True

tests/test_mutliple_sheets.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,12 +65,12 @@ def setUp(self):
6565
self._write_test_file(self.testfile2)
6666

6767
def test_load_a_single_sheet(self):
68-
b1 = pyexcel.get_book(file_name=self.testfile, sheet_name="Sheet1", library="openpyxl")
68+
b1 = pyexcel.get_book(file_name=self.testfile, sheet_name="Sheet1", library="pyexcel-xlsx")
6969
assert len(b1.sheet_names()) == 1
7070
assert b1['Sheet1'].to_array() == self.content['Sheet1']
7171

7272
def test_load_a_single_sheet2(self):
73-
b1 = pyexcel.get_book(file_name=self.testfile, sheet_index=1, library="openpyxl")
73+
b1 = pyexcel.get_book(file_name=self.testfile, sheet_index=1, library="pyexcel-xlsx")
7474
assert len(b1.sheet_names()) == 1
7575
assert b1['Sheet2'].to_array() == self.content['Sheet2']
7676

@@ -80,7 +80,7 @@ def test_load_a_single_sheet3(self):
8080

8181
@raises(KeyError)
8282
def test_load_a_single_sheet4(self):
83-
pyexcel.get_book(file_name=self.testfile, sheet_name="Not exist", library="openpyxl")
83+
pyexcel.get_book(file_name=self.testfile, sheet_name="Not exist", library="pyexcel-xlsx")
8484

8585
def test_delete_sheets(self):
8686
b1 = pyexcel.load_book(self.testfile)

0 commit comments

Comments
 (0)