pylinting

This commit is contained in:
chfw 2016-05-23 18:11:38 +01:00
parent b06372e20b
commit de524823ac
3 changed files with 42 additions and 43 deletions

View File

@ -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)

View File

@ -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)

View File

@ -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):