From bdc84255a83c1d3f88202503d4a4ace8e0275a44 Mon Sep 17 00:00:00 2001 From: Peyman Salehi Date: Sat, 19 Oct 2019 16:43:21 +0200 Subject: Fix some linting errors --- src/tablib/core.py | 17 +++++++-------- src/tablib/formats/_dbf.py | 8 +++++--- src/tablib/formats/_df.py | 4 +--- src/tablib/formats/_html.py | 2 -- src/tablib/formats/_ods.py | 1 + src/tablib/formats/_tsv.py | 1 + src/tablib/formats/_xls.py | 2 +- src/tablib/formats/_xlsx.py | 2 +- src/tablib/packages/dbfpy/fields.py | 41 +++++++++++++++++++++---------------- src/tablib/packages/dbfpy/header.py | 28 ++++++++++++------------- src/tablib/packages/dbfpy/record.py | 18 ++++++++-------- src/tablib/packages/dbfpy/utils.py | 1 + tests/test_tablib.py | 3 +-- 13 files changed, 66 insertions(+), 62 deletions(-) diff --git a/src/tablib/core.py b/src/tablib/core.py index 46e8444..23903eb 100644 --- a/src/tablib/core.py +++ b/src/tablib/core.py @@ -63,7 +63,8 @@ class Row: return slots def __setstate__(self, state): - for (k, v) in list(state.items()): setattr(self, k, v) + for (k, v) in list(state.items()): + setattr(self, k, v) def rpush(self, value): self.insert(0, value) @@ -93,7 +94,7 @@ class Row: def has_tag(self, tag): """Returns true if current row contains tag.""" - if tag == None: + if tag is None: return False elif isinstance(tag, str): return (tag in self.tags) @@ -172,7 +173,7 @@ class Dataset: def __getitem__(self, key): if isinstance(key, str): if key in self.headers: - pos = self.headers.index(key) # get 'key' index from each data + pos = self.headers.index(key) # get 'key' index from each data return [row[pos] for row in self._data] else: raise KeyError @@ -820,7 +821,7 @@ class Dataset: if isinstance(col, str): if col in self.headers: - col = self.headers.index(col) # get 'key' index from each data + col = self.headers.index(col) # get 'key' index from each data else: raise KeyError @@ -986,13 +987,13 @@ class Dataset: if cols is None: cols = list(self.headers) - #filter out impossible rows and columns + # filter out impossible rows and columns rows = [row for row in rows if row in range(self.height)] cols = [header for header in cols if header in self.headers] _dset = Dataset() - #filtering rows and columns + # filtering rows and columns _dset.headers = list(cols) _dset._data = [] @@ -1072,8 +1073,8 @@ class Databook: for dset in self._datasets: collector.append(dict_pack( - title = dset.title, - data = dset._package(ordered=ordered) + title=dset.title, + data=dset._package(ordered=ordered) )) return collector diff --git a/src/tablib/formats/_dbf.py b/src/tablib/formats/_dbf.py index fecb214..2a6df32 100644 --- a/src/tablib/formats/_dbf.py +++ b/src/tablib/formats/_dbf.py @@ -2,7 +2,6 @@ """ import io import os -import struct import tempfile from tablib.packages.dbfpy import dbf @@ -15,6 +14,7 @@ extensions = ('csv',) DEFAULT_ENCODING = 'utf-8' + def export_set(dataset): """Returns DBF representation of a Dataset""" new_dbf = dbfnew.dbf_new() @@ -45,6 +45,7 @@ def export_set(dataset): os.remove(temp_uri) return stream.getvalue() + def import_set(dset, in_stream, headers=True): """Returns a dataset from a DBF stream.""" @@ -55,13 +56,14 @@ def import_set(dset, in_stream, headers=True): row = [_dbf[record][f] for f in _dbf.fieldNames] dset.append(row) + def detect(stream): """Returns True if the given stream is valid DBF""" - #_dbf = dbf.Table(StringIO(stream)) + # _dbf = dbf.Table(StringIO(stream)) try: if type(stream) is not bytes: stream = bytes(stream, 'utf-8') - _dbf = dbf.Dbf(io.BytesIO(stream), readOnly=True) + dbf.Dbf(io.BytesIO(stream), readOnly=True) return True except Exception: return False diff --git a/src/tablib/formats/_df.py b/src/tablib/formats/_df.py index dd319a3..372bf7d 100644 --- a/src/tablib/formats/_df.py +++ b/src/tablib/formats/_df.py @@ -1,9 +1,6 @@ """ Tablib - DataFrame Support. """ -import sys -from io import BytesIO - try: from pandas import DataFrame except ImportError: @@ -15,6 +12,7 @@ import tablib title = 'df' extensions = ('df', ) + def detect(stream): """Returns True if given stream is a DataFrame.""" if DataFrame is None: diff --git a/src/tablib/formats/_html.py b/src/tablib/formats/_html.py index 952caf2..bb31128 100644 --- a/src/tablib/formats/_html.py +++ b/src/tablib/formats/_html.py @@ -2,11 +2,9 @@ """ import codecs -import sys from io import BytesIO from MarkupPy import markup -import tablib BOOK_ENDINGS = 'h3' diff --git a/src/tablib/formats/_ods.py b/src/tablib/formats/_ods.py index cd58cd1..43a2cfb 100644 --- a/src/tablib/formats/_ods.py +++ b/src/tablib/formats/_ods.py @@ -10,6 +10,7 @@ extensions = ('ods',) bold = style.Style(name="bold", family="paragraph") bold.addElement(style.TextProperties(fontweight="bold", fontweightasian="bold", fontweightcomplex="bold")) + def export_set(dataset): """Returns ODF representation of Dataset.""" diff --git a/src/tablib/formats/_tsv.py b/src/tablib/formats/_tsv.py index 8015bff..380b4e6 100644 --- a/src/tablib/formats/_tsv.py +++ b/src/tablib/formats/_tsv.py @@ -12,6 +12,7 @@ extensions = ('tsv',) DELIMITER = '\t' + def export_set(dataset): """Returns TSV representation of Dataset.""" return export_set_wrapper(dataset, delimiter=DELIMITER) diff --git a/src/tablib/formats/_xls.py b/src/tablib/formats/_xls.py index 71c8245..ca086dd 100644 --- a/src/tablib/formats/_xls.py +++ b/src/tablib/formats/_xls.py @@ -1,7 +1,6 @@ """ Tablib - XLS Support. """ -import sys from io import BytesIO import tablib @@ -80,6 +79,7 @@ def import_set(dset, in_stream, headers=True): else: dset.append(sheet.row_values(i)) + def import_book(dbook, in_stream, headers=True): """Returns databook from XLS stream.""" diff --git a/src/tablib/formats/_xlsx.py b/src/tablib/formats/_xlsx.py index 27757f4..0a947b8 100644 --- a/src/tablib/formats/_xlsx.py +++ b/src/tablib/formats/_xlsx.py @@ -1,7 +1,6 @@ """ Tablib - XLSX Support. """ -import sys from io import BytesIO import openpyxl @@ -27,6 +26,7 @@ def detect(stream): except Exception: return False + def export_set(dataset, freeze_panes=True): """Returns XLSX representation of Dataset.""" diff --git a/src/tablib/packages/dbfpy/fields.py b/src/tablib/packages/dbfpy/fields.py index bc39d57..c763e1e 100644 --- a/src/tablib/packages/dbfpy/fields.py +++ b/src/tablib/packages/dbfpy/fields.py @@ -28,7 +28,7 @@ TODO: __version__ = "$Revision: 1.14 $"[11:-2] __date__ = "$Date: 2009/05/26 05:16:51 $"[7:-2] -__all__ = ["lookupFor",] # field classes added at the end of the module +__all__ = ["lookupFor"] # field classes added at the end of the module import datetime import struct @@ -36,7 +36,8 @@ import sys from . import utils -## abstract definitions +# abstract definitions + class DbfFieldDef: """Abstract field definition. @@ -56,8 +57,7 @@ class DbfFieldDef: """ - __slots__ = ("name", "decimalCount", - "start", "end", "ignoreErrors") + __slots__ = ("name", "decimalCount", "start", "end", "ignoreErrors") # length of the field, None in case of variable-length field, # or a number if this field is a fixed-length field @@ -73,13 +73,12 @@ class DbfFieldDef: defaultValue = None def __init__(self, name, length=None, decimalCount=None, - start=None, stop=None, ignoreErrors=False, - ): + start=None, stop=None, ignoreErrors=False): """Initialize instance.""" assert self.typeCode is not None, "Type code must be overridden" assert self.defaultValue is not None, "Default value must be overridden" - ## fix arguments - if len(name) >10: + # fix arguments + if len(name) > 10: raise ValueError("Field name \"%s\" is too long" % name) name = str(name).upper() if self.__class__.length is None: @@ -87,13 +86,12 @@ class DbfFieldDef: raise ValueError("[%s] Length isn't specified" % name) length = int(length) if length <= 0: - raise ValueError("[%s] Length must be a positive integer" - % name) + raise ValueError("[%s] Length must be a positive integer" % name) else: length = self.length if decimalCount is None: decimalCount = 0 - ## set fields + # set fields self.name = name # FIXME: validate length according to the specification at # http://www.clicketyclick.dk/databases/xbase/format/data_types.html @@ -144,7 +142,7 @@ class DbfFieldDef: return ( _name + self.typeCode + - #data address + # data address chr(0) * 4 + chr(self.length) + chr(self.decimalCount) + @@ -171,7 +169,7 @@ class DbfFieldDef: """Return decoded field value from the record string.""" try: return self.decodeValue(self.rawFromRecord(record)) - except: + except Exception: if self.ignoreErrors: return utils.INVALID_VALUE else: @@ -194,7 +192,8 @@ class DbfFieldDef: """ raise NotImplementedError -## real classes +# real classes + class DbfCharacterFieldDef(DbfFieldDef): """Definition of the character field.""" @@ -257,11 +256,13 @@ class DbfNumericFieldDef(DbfFieldDef): % (self.name, _rv, self.length)) return _rv + class DbfFloatFieldDef(DbfNumericFieldDef): """Definition of the float field - same as numeric.""" typeCode = "F" + class DbfIntegerFieldDef(DbfFieldDef): """Definition of the integer field.""" @@ -277,6 +278,7 @@ class DbfIntegerFieldDef(DbfFieldDef): """Return string containing encoded ``value``.""" return struct.pack("" + # invalid value is a constant singleton INVALID_VALUE = _InvalidValue() diff --git a/tests/test_tablib.py b/tests/test_tablib.py index 943e1e7..04cba69 100755 --- a/tests/test_tablib.py +++ b/tests/test_tablib.py @@ -4,7 +4,6 @@ import datetime import doctest import json -import sys import unittest from uuid import uuid4 @@ -533,7 +532,7 @@ class HTMLTests(BaseTestCase): html.table.close() html = str(html) - headers = ['foo', None, 'bar']; + headers = ['foo', None, 'bar'] d = tablib.Dataset(['foo', None, 'bar'], headers=headers) self.assertEqual(html, d.html) -- cgit v1.2.1