[MRG + 1] Make pep8 (#125)
* Make setup.py pep8 Add new line at end of file, fix bare except, remove unused import. * Make tests/*.py pep8 Add some newlines at and of files and a visual indent. * Make docs/*.py pep8 Fix block comments and add new lines at end of files. * Make camelot/*.py pep8 Fixed unused import, a few weirdly ordered imports, a docstring typo and many new lines at the end of lines. * Fix imports Fix import order and remove a couple more unused imports. * Fix indents Fix indentation (no opening delimiter alignment). * Add newlines
This commit is contained in:
+3
-5
@@ -2,6 +2,9 @@
|
||||
|
||||
import logging
|
||||
|
||||
from .__version__ import __version__
|
||||
from .io import read_pdf
|
||||
|
||||
|
||||
# set up logging
|
||||
logger = logging.getLogger('camelot')
|
||||
@@ -12,8 +15,3 @@ handler = logging.StreamHandler()
|
||||
handler.setFormatter(formatter)
|
||||
|
||||
logger.addHandler(handler)
|
||||
|
||||
|
||||
from .__version__ import __version__
|
||||
|
||||
from .io import read_pdf
|
||||
@@ -8,4 +8,4 @@ __url__ = 'http://camelot-py.readthedocs.io/'
|
||||
__version__ = '.'.join(map(str, VERSION))
|
||||
__author__ = 'Vinayak Mehta'
|
||||
__author_email__ = 'vmehta94@gmail.com'
|
||||
__license__ = 'MIT License'
|
||||
__license__ = 'MIT License'
|
||||
|
||||
+6
-5
@@ -2,17 +2,18 @@
|
||||
|
||||
import logging
|
||||
|
||||
logger = logging.getLogger('camelot')
|
||||
logger.setLevel(logging.INFO)
|
||||
|
||||
import click
|
||||
|
||||
from . import __version__
|
||||
from .io import read_pdf
|
||||
|
||||
|
||||
logger = logging.getLogger('camelot')
|
||||
logger.setLevel(logging.INFO)
|
||||
|
||||
|
||||
class Config(object):
|
||||
def __init__(self):
|
||||
def __init__(self):
|
||||
self.config = {}
|
||||
|
||||
def set_config(self, key, value):
|
||||
@@ -152,4 +153,4 @@ def stream(c, *args, **kwargs):
|
||||
raise click.UsageError('Please specify output file path using --output')
|
||||
if f is None:
|
||||
raise click.UsageError('Please specify output file format using --format')
|
||||
tables.export(output, f=f, compress=compress)
|
||||
tables.export(output, f=f, compress=compress)
|
||||
|
||||
+1
-2
@@ -1,7 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import os
|
||||
import json
|
||||
import zipfile
|
||||
import tempfile
|
||||
|
||||
@@ -519,4 +518,4 @@ class TableList(object):
|
||||
if compress:
|
||||
zipname = os.path.join(os.path.dirname(path), root) + '.zip'
|
||||
with zipfile.ZipFile(zipname, 'w', allowZip64=True) as z:
|
||||
z.write(filepath, os.path.basename(filepath))
|
||||
z.write(filepath, os.path.basename(filepath))
|
||||
|
||||
+1
-1
@@ -145,4 +145,4 @@ class PDFHandler(object):
|
||||
for p in pages:
|
||||
t = parser.extract_tables(p)
|
||||
tables.extend(t)
|
||||
return TableList(tables)
|
||||
return TableList(tables)
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from __future__ import division
|
||||
from itertools import groupby
|
||||
from operator import itemgetter
|
||||
|
||||
import cv2
|
||||
import numpy as np
|
||||
@@ -40,10 +38,12 @@ def adaptive_threshold(imagename, process_background=False, blocksize=15, c=-2):
|
||||
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
|
||||
|
||||
if process_background:
|
||||
threshold = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C,
|
||||
threshold = cv2.adaptiveThreshold(
|
||||
gray, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C,
|
||||
cv2.THRESH_BINARY, blocksize, c)
|
||||
else:
|
||||
threshold = cv2.adaptiveThreshold(np.invert(gray), 255,
|
||||
threshold = cv2.adaptiveThreshold(
|
||||
np.invert(gray), 255,
|
||||
cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, blocksize, c)
|
||||
return img, threshold
|
||||
|
||||
@@ -197,4 +197,4 @@ def find_table_joints(contours, vertical, horizontal):
|
||||
joint_coords.append((c1, c2))
|
||||
tables[(x, y + h, x + w, y)] = joint_coords
|
||||
|
||||
return tables
|
||||
return tables
|
||||
|
||||
+1
-1
@@ -89,4 +89,4 @@ def read_pdf(filepath, pages='1', flavor='lattice', **kwargs):
|
||||
p = PDFHandler(filepath, pages)
|
||||
kwargs = remove_extra(kwargs, flavor=flavor)
|
||||
tables = p.parse(flavor=flavor, **kwargs)
|
||||
return tables
|
||||
return tables
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from .stream import Stream
|
||||
from .lattice import Lattice
|
||||
from .lattice import Lattice
|
||||
|
||||
@@ -18,4 +18,4 @@ class BaseParser(object):
|
||||
self.horizontal_text = get_text_objects(self.layout, ltype="lh")
|
||||
self.vertical_text = get_text_objects(self.layout, ltype="lv")
|
||||
self.pdf_width, self.pdf_height = self.dimensions
|
||||
self.rootname, __ = os.path.splitext(self.filename)
|
||||
self.rootname, __ = os.path.splitext(self.filename)
|
||||
|
||||
@@ -201,8 +201,9 @@ class Lattice(BaseParser):
|
||||
if 'ghostscript' in subprocess.check_output(['gs', '-version']).decode('utf-8').lower():
|
||||
gs_call.insert(0, 'gs')
|
||||
else:
|
||||
gs_call.insert(0, 'gsc')
|
||||
subprocess.call(gs_call, stdout=open(os.devnull, 'w'),
|
||||
gs_call.insert(0, "gsc")
|
||||
subprocess.call(
|
||||
gs_call, stdout=open(os.devnull, 'w'),
|
||||
stderr=subprocess.STDOUT)
|
||||
|
||||
def _generate_table_bbox(self):
|
||||
@@ -339,10 +340,10 @@ class Lattice(BaseParser):
|
||||
|
||||
_tables = []
|
||||
# sort tables based on y-coord
|
||||
for table_idx, tk in enumerate(sorted(self.table_bbox.keys(),
|
||||
key=lambda x: x[1], reverse=True)):
|
||||
for table_idx, tk in enumerate(sorted(
|
||||
self.table_bbox.keys(), key=lambda x: x[1], reverse=True)):
|
||||
cols, rows, v_s, h_s = self._generate_columns_and_rows(table_idx, tk)
|
||||
table = self._generate_table(table_idx, cols, rows, v_s=v_s, h_s=h_s)
|
||||
_tables.append(table)
|
||||
|
||||
return _tables
|
||||
return _tables
|
||||
|
||||
@@ -116,7 +116,7 @@ class Stream(BaseParser):
|
||||
row_y = t.y0
|
||||
temp.append(t)
|
||||
rows.append(sorted(temp, key=lambda t: t.x0))
|
||||
__ = rows.pop(0) # hacky
|
||||
__ = rows.pop(0) # hacky
|
||||
return rows
|
||||
|
||||
@staticmethod
|
||||
@@ -211,7 +211,7 @@ class Stream(BaseParser):
|
||||
text = Stream._group_rows(text, row_close_tol=row_close_tol)
|
||||
elements = [len(r) for r in text]
|
||||
new_cols = [(t.x0, t.x1)
|
||||
for r in text if len(r) == max(elements) for t in r]
|
||||
for r in text if len(r) == max(elements) for t in r]
|
||||
cols.extend(Stream._merge_columns(sorted(new_cols)))
|
||||
return cols
|
||||
|
||||
@@ -357,10 +357,10 @@ class Stream(BaseParser):
|
||||
|
||||
_tables = []
|
||||
# sort tables based on y-coord
|
||||
for table_idx, tk in enumerate(sorted(self.table_bbox.keys(),
|
||||
key=lambda x: x[1], reverse=True)):
|
||||
for table_idx, tk in enumerate(sorted(
|
||||
self.table_bbox.keys(), key=lambda x: x[1], reverse=True)):
|
||||
cols, rows = self._generate_columns_and_rows(table_idx, tk)
|
||||
table = self._generate_table(table_idx, cols, rows)
|
||||
_tables.append(table)
|
||||
|
||||
return _tables
|
||||
return _tables
|
||||
|
||||
+5
-5
@@ -41,16 +41,16 @@ def plot_table(table):
|
||||
for cell in row:
|
||||
if cell.left:
|
||||
plt.plot([cell.lb[0], cell.lt[0]],
|
||||
[cell.lb[1], cell.lt[1]])
|
||||
[cell.lb[1], cell.lt[1]])
|
||||
if cell.right:
|
||||
plt.plot([cell.rb[0], cell.rt[0]],
|
||||
[cell.rb[1], cell.rt[1]])
|
||||
[cell.rb[1], cell.rt[1]])
|
||||
if cell.top:
|
||||
plt.plot([cell.lt[0], cell.rt[0]],
|
||||
[cell.lt[1], cell.rt[1]])
|
||||
[cell.lt[1], cell.rt[1]])
|
||||
if cell.bottom:
|
||||
plt.plot([cell.lb[0], cell.rb[0]],
|
||||
[cell.lb[1], cell.rb[1]])
|
||||
[cell.lb[1], cell.rb[1]])
|
||||
plt.show()
|
||||
|
||||
|
||||
@@ -105,4 +105,4 @@ def plot_line(segments):
|
||||
plt.plot([v[0], v[2]], [v[1], v[3]])
|
||||
for h in horizontal:
|
||||
plt.plot([h[0], h[2]], [h[1], h[3]])
|
||||
plt.show()
|
||||
plt.show()
|
||||
|
||||
+3
-5
@@ -1,5 +1,4 @@
|
||||
from __future__ import division
|
||||
import os
|
||||
import shutil
|
||||
import tempfile
|
||||
import warnings
|
||||
@@ -14,7 +13,6 @@ from pdfminer.pdfpage import PDFPage
|
||||
from pdfminer.pdfpage import PDFTextExtractionNotAllowed
|
||||
from pdfminer.pdfinterp import PDFResourceManager
|
||||
from pdfminer.pdfinterp import PDFPageInterpreter
|
||||
from pdfminer.pdfdevice import PDFDevice
|
||||
from pdfminer.converter import PDFPageAggregator
|
||||
from pdfminer.layout import (LAParams, LTAnno, LTChar, LTTextLineHorizontal,
|
||||
LTTextLineVertical)
|
||||
@@ -278,8 +276,8 @@ def text_in_bbox(bbox, text):
|
||||
lb = (bbox[0], bbox[1])
|
||||
rt = (bbox[2], bbox[3])
|
||||
t_bbox = [t for t in text if lb[0] - 2 <= (t.x0 + t.x1) / 2.0
|
||||
<= rt[0] + 2 and lb[1] - 2 <= (t.y0 + t.y1) / 2.0
|
||||
<= rt[1] + 2]
|
||||
<= rt[0] + 2 and lb[1] - 2 <= (t.y0 + t.y1) / 2.0
|
||||
<= rt[1] + 2]
|
||||
return t_bbox
|
||||
|
||||
|
||||
@@ -640,4 +638,4 @@ def get_text_objects(layout, ltype="char", t=None):
|
||||
t += get_text_objects(obj, ltype=ltype)
|
||||
except AttributeError:
|
||||
pass
|
||||
return t
|
||||
return t
|
||||
|
||||
Reference in New Issue
Block a user