pylinting
This commit is contained in:
parent
b06372e20b
commit
de524823ac
|
@ -16,12 +16,14 @@ from pyexcel_io.io import get_data as read_data, isstream, store_data as write_d
|
|||
|
||||
|
||||
def get_data(afile, file_type=None, **keywords):
|
||||
"""standalone module function for writing module supported file type"""
|
||||
if isstream(afile) and file_type is None:
|
||||
file_type = 'xls'
|
||||
return read_data(afile, file_type=file_type, **keywords)
|
||||
|
||||
|
||||
def save_data(afile, data, file_type=None, **keywords):
|
||||
"""standalone module function for reading module supported file type"""
|
||||
if isstream(afile) and file_type is None:
|
||||
file_type = 'xls'
|
||||
write_data(afile, data, file_type=file_type, **keywords)
|
||||
|
|
|
@ -29,10 +29,8 @@ DEFAULT_DATETIME_FORMAT = "%s %s" % (DEFAULT_DATE_FORMAT, DEFAULT_TIME_FORMAT)
|
|||
|
||||
|
||||
def is_integer_ok_for_xl_float(value):
|
||||
if value == math.floor(value):
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
"""check if a float value had zero value in digits"""
|
||||
return value == math.floor(value)
|
||||
|
||||
|
||||
def xldate_to_python_date(value):
|
||||
|
@ -72,7 +70,11 @@ class XLSheet(SheetReader):
|
|||
def __init__(self, sheet, auto_detect_int=True, **keywords):
|
||||
SheetReader.__init__(self, sheet, **keywords)
|
||||
self.auto_detect_int = auto_detect_int
|
||||
|
||||
|
||||
@property
|
||||
def name(self):
|
||||
return self.native_sheet.name
|
||||
|
||||
def number_of_rows(self):
|
||||
"""
|
||||
Number of rows in the xls sheet
|
||||
|
@ -99,16 +101,16 @@ class XLSheet(SheetReader):
|
|||
return value
|
||||
|
||||
def to_array(self):
|
||||
for r in range(0, self.number_of_rows()):
|
||||
row = []
|
||||
for row in range(0, self.number_of_rows()):
|
||||
return_row = []
|
||||
tmp_row = []
|
||||
for c in range(0, self.number_of_columns()):
|
||||
cell_value = self.cell_value(r, c)
|
||||
for column in range(0, self.number_of_columns()):
|
||||
cell_value = self.cell_value(row, column)
|
||||
tmp_row.append(cell_value)
|
||||
if cell_value is not None and cell_value != '':
|
||||
row += tmp_row
|
||||
return_row += tmp_row
|
||||
tmp_row = []
|
||||
yield row
|
||||
yield return_row
|
||||
|
||||
|
||||
class XLSBook(BookReader):
|
||||
|
@ -119,7 +121,6 @@ class XLSBook(BookReader):
|
|||
"""
|
||||
def __init__(self):
|
||||
BookReader.__init__(self)
|
||||
self.book = None
|
||||
self.file_content = None
|
||||
|
||||
def open(self, file_name, **keywords):
|
||||
|
@ -133,33 +134,34 @@ class XLSBook(BookReader):
|
|||
self.file_content = file_content
|
||||
|
||||
def close(self):
|
||||
if self.book:
|
||||
self.book.release_resources()
|
||||
if self.native_book:
|
||||
self.native_book.release_resources()
|
||||
|
||||
def read_sheet_by_index(self, sheet_index):
|
||||
self.book = self._get_book(on_demand=True)
|
||||
sheet = self.book.sheet_by_index(sheet_index)
|
||||
xlsheet = XLSheet(sheet, **self.keywords)
|
||||
return {sheet.name: xlsheet.to_array()}
|
||||
self.native_book = self._get_book(on_demand=True)
|
||||
sheet = self.native_book.sheet_by_index(sheet_index)
|
||||
return self.read_sheet(sheet)
|
||||
|
||||
def read_sheet_by_name(self, sheet_name):
|
||||
self.book = self._get_book(on_demand=True)
|
||||
self.native_book = self._get_book(on_demand=True)
|
||||
try:
|
||||
sheet = self.book.sheet_by_name(sheet_name)
|
||||
except xlrd.XLRDError as e:
|
||||
print(e)
|
||||
sheet = self.native_book.sheet_by_name(sheet_name)
|
||||
except xlrd.XLRDError:
|
||||
raise ValueError("%s cannot be found" % sheet_name)
|
||||
xlsheet = XLSheet(sheet)
|
||||
return {sheet.name: xlsheet.to_array()}
|
||||
return self.read_sheet(sheet)
|
||||
|
||||
def read_all(self):
|
||||
result = OrderedDict()
|
||||
self.book = self._get_book()
|
||||
for sheet in self.book.sheets():
|
||||
xlsheet = XLSheet(sheet, **self.keywords)
|
||||
result[sheet.name] = xlsheet.to_array()
|
||||
self.native_book = self._get_book()
|
||||
for sheet in self.native_book.sheets():
|
||||
data_dict = self.read_sheet(sheet)
|
||||
result.update(data_dict)
|
||||
return result
|
||||
|
||||
def read_sheet(self, native_sheet):
|
||||
sheet = XLSheet(native_sheet, **self.keywords)
|
||||
return {sheet.name: sheet.to_array()}
|
||||
|
||||
def _get_book(self, on_demand=False):
|
||||
if self.file_name:
|
||||
xls_book = xlrd.open_workbook(self.file_name, on_demand=on_demand)
|
||||
|
@ -233,7 +235,7 @@ class XLSWriter(BookWriter):
|
|||
encoding='ascii', style_compression=2, **keywords):
|
||||
BookWriter.open(self, file_name, **keywords)
|
||||
self.work_book = Workbook(style_compression=style_compression,
|
||||
encoding=encoding)
|
||||
encoding=encoding)
|
||||
|
||||
def create_sheet(self, name):
|
||||
return XLSheetWriter(self.work_book, None, name)
|
||||
|
@ -248,25 +250,19 @@ class XLSWriter(BookWriter):
|
|||
_xls_reader_registry = {
|
||||
"file_type": "xls",
|
||||
"reader": XLSBook,
|
||||
"stream_type": "binary",
|
||||
"mime_type": "application/vnd.ms-excel",
|
||||
"library": "xlrd"
|
||||
}
|
||||
|
||||
_xls_writer_registry = {
|
||||
"file_type": "xls",
|
||||
"writer": XLSWriter,
|
||||
"stream_type": "binary",
|
||||
"mime_type": "application/vnd.ms-excel",
|
||||
"library": "xlwt-future"
|
||||
"library": "pyexcel-xls"
|
||||
}
|
||||
|
||||
|
||||
_xlsm_registry = {
|
||||
"file_type": "xlsm",
|
||||
"reader": XLSBook,
|
||||
"stream_type": "binary",
|
||||
"mime_type": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
||||
"library": "xlrd"
|
||||
"library": "pyexcel-xls"
|
||||
}
|
||||
|
||||
_xlsx_registry = {
|
||||
|
@ -274,8 +270,9 @@ _xlsx_registry = {
|
|||
"reader": XLSBook,
|
||||
"stream_type": "binary",
|
||||
"mime_type": "application/vnd.ms-excel.sheet.macroenabled.12",
|
||||
"library": "xlrd"
|
||||
"library": "pyexcel-xls"
|
||||
}
|
||||
|
||||
exports = (_xls_reader_registry, _xls_writer_registry,
|
||||
_xlsm_registry, _xlsx_registry)
|
||||
exports = (_xls_reader_registry,
|
||||
_xlsm_registry,
|
||||
_xlsx_registry)
|
||||
|
|
|
@ -55,9 +55,9 @@ class TestAddBooks:
|
|||
|
||||
|
||||
def test_load_a_single_sheet2(self):
|
||||
b1 = pyexcel.load_book(self.testfile, sheet_index=2)
|
||||
b1 = pyexcel.load_book(self.testfile, sheet_index=0)
|
||||
assert len(b1.sheet_names()) == 1
|
||||
assert b1['Sheet3'].to_array() == self.content['Sheet3']
|
||||
assert b1['Sheet1'].to_array() == self.content['Sheet1']
|
||||
|
||||
@raises(IndexError)
|
||||
def test_load_a_single_sheet3(self):
|
||||
|
|
Loading…
Reference in New Issue