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