From aae2c6b3d4b565d5474dff576977283ef67f5dc4 Mon Sep 17 00:00:00 2001 From: pevisscher <2388946+pevisscher@users.noreply.github.com> Date: Mon, 24 Aug 2020 16:51:06 +0200 Subject: [PATCH 1/9] use correct re.sub signature `text_strip` currently passes the regex flags as the count parameters, which is hardcoded to `re.UNICODE` (value 32), and thus only replaces the first 32 values. see https://docs.python.org/3/library/re.html#re.sub for the signature --- camelot/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/camelot/utils.py b/camelot/utils.py index 83974f9..3e8ab96 100644 --- a/camelot/utils.py +++ b/camelot/utils.py @@ -411,7 +411,7 @@ def text_strip(text, strip=""): return text stripped = re.sub( - fr"[{''.join(map(re.escape, strip))}]", "", text, re.UNICODE + fr"[{''.join(map(re.escape, strip))}]", "", text, flags=re.UNICODE ) return stripped From 5d20d56e48c79faa564a0588997807e904c3c788 Mon Sep 17 00:00:00 2001 From: Vinayak Mehta Date: Tue, 25 Aug 2020 22:50:31 +0530 Subject: [PATCH 2/9] Prevent taking max of an empty set --- camelot/parsers/stream.py | 80 +++++++++++++++++-------------- tests/files/blank.pdf | Bin 4909 -> 0 bytes tests/files/empty.pdf | Bin 0 -> 2353 bytes tests/files/only_page_number.pdf | Bin 0 -> 2437 bytes tests/test_cli.py | 4 +- tests/test_errors.py | 26 ++++++++-- 6 files changed, 67 insertions(+), 43 deletions(-) delete mode 100755 tests/files/blank.pdf create mode 100644 tests/files/empty.pdf create mode 100644 tests/files/only_page_number.pdf diff --git a/camelot/parsers/stream.py b/camelot/parsers/stream.py index 3749028..39a0464 100644 --- a/camelot/parsers/stream.py +++ b/camelot/parsers/stream.py @@ -121,6 +121,7 @@ class Stream(BaseParser): row_y = 0 rows = [] temp = [] + for t in text: # is checking for upright necessary? # if t.get_text().strip() and all([obj.upright for obj in t._objs if @@ -131,8 +132,10 @@ class Stream(BaseParser): temp = [] row_y = t.y0 temp.append(t) + rows.append(sorted(temp, key=lambda t: t.x0)) - __ = rows.pop(0) # TODO: hacky + if len(rows) > 1: + __ = rows.pop(0) # TODO: hacky return rows @staticmethod @@ -345,43 +348,46 @@ class Stream(BaseParser): else: # calculate mode of the list of number of elements in # each row to guess the number of columns - ncols = max(set(elements), key=elements.count) - if ncols == 1: - # if mode is 1, the page usually contains not tables - # but there can be cases where the list can be skewed, - # try to remove all 1s from list in this case and - # see if the list contains elements, if yes, then use - # the mode after removing 1s - elements = list(filter(lambda x: x != 1, elements)) - if len(elements): - ncols = max(set(elements), key=elements.count) - else: - warnings.warn( - f"No tables found in table area {table_idx + 1}" + if not len(elements): + cols = [(text_x_min, text_x_max)] + else: + ncols = max(set(elements), key=elements.count) + if ncols == 1: + # if mode is 1, the page usually contains not tables + # but there can be cases where the list can be skewed, + # try to remove all 1s from list in this case and + # see if the list contains elements, if yes, then use + # the mode after removing 1s + elements = list(filter(lambda x: x != 1, elements)) + if len(elements): + ncols = max(set(elements), key=elements.count) + else: + warnings.warn( + f"No tables found in table area {table_idx + 1}" + ) + cols = [(t.x0, t.x1) for r in rows_grouped if len(r) == ncols for t in r] + cols = self._merge_columns(sorted(cols), column_tol=self.column_tol) + inner_text = [] + for i in range(1, len(cols)): + left = cols[i - 1][1] + right = cols[i][0] + inner_text.extend( + [ + t + for direction in self.t_bbox + for t in self.t_bbox[direction] + if t.x0 > left and t.x1 < right + ] ) - cols = [(t.x0, t.x1) for r in rows_grouped if len(r) == ncols for t in r] - cols = self._merge_columns(sorted(cols), column_tol=self.column_tol) - inner_text = [] - for i in range(1, len(cols)): - left = cols[i - 1][1] - right = cols[i][0] - inner_text.extend( - [ - t - for direction in self.t_bbox - for t in self.t_bbox[direction] - if t.x0 > left and t.x1 < right - ] - ) - outer_text = [ - t - for direction in self.t_bbox - for t in self.t_bbox[direction] - if t.x0 > cols[-1][1] or t.x1 < cols[0][0] - ] - inner_text.extend(outer_text) - cols = self._add_columns(cols, inner_text, self.row_tol) - cols = self._join_columns(cols, text_x_min, text_x_max) + outer_text = [ + t + for direction in self.t_bbox + for t in self.t_bbox[direction] + if t.x0 > cols[-1][1] or t.x1 < cols[0][0] + ] + inner_text.extend(outer_text) + cols = self._add_columns(cols, inner_text, self.row_tol) + cols = self._join_columns(cols, text_x_min, text_x_max) return cols, rows diff --git a/tests/files/blank.pdf b/tests/files/blank.pdf deleted file mode 100755 index 99540f1ed9ad31edd2a29ea7d5ab3ed081243dd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4909 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 E1CE0==>Px# diff --git a/tests/files/empty.pdf b/tests/files/empty.pdf new file mode 100644 index 0000000000000000000000000000000000000000..52aeefba1a435332221bb12f6ff24c02aa8bbd75 GIT binary patch literal 2353 zcmb_ePjBl)5Pugq_|BQ-p~^+?IlJpWNo*yq^5UjcG`uJYqEb~P$6lus7`z!4-k@IjEc@Bx^0oImZW9w611ZfAcp^P8ESnH-J0fkqoG<>;3`zxiIV z5J7zQwbJR}3zp8s4Qhg9j0bTdSdQ=@@dfi(z(eM`N+ELQFO~Amiz)fTn389`~c+3jE$^%va<5A9o2@_WsVglf4Db6MW_@Z`&1;V(`Qvuoq zl7WsD5Y-f+g9h`1NRrsO#1oWf*mF#w|svjrRdatMz4-!>v07PgXM_vwAta*cO!< zrs=wMSvn_W<_8NV(2ULFw5$I0)6Xi3!>;R2u zg7ah%3#2#f2GywX5=FVcWNV%;5N$M7FqwyuGxi3xLHMt$-UyL77_Zms#@cA`e2%GY z+nDHB*EK+B#ceA5QcH`E!CyrrzTBy$MWf=>2>24mmzXvP-a7IioIK7%%u^&C`!l{0 zU3ImJLx+%As8bSXG@^z^Y1GsRd|GImGmEy3b~LlM?y>`#_x!;HI5Z#+aB|@FhO2<( zUG;2qfzEDtAvXSz-O!sVuET#SR#2PAvj7FH)6fBoGvr|$-FnbQu1<8Kk+!B=Q(bpV z(=l2vh~*fhgC8KF_@LT{=>XH>Kd2rc4^(+Rg(u;DkuFlcPJ3CF#DOo%vGG?a)tC;J z6*|bxQ)kQ1hQoK~Yq^vUTH+j!2dgEFnRD;|JeQ}ga2V_eXRAD^dLs-lOPJ(VK#?gh z4g)9R`O=4%?e8;;;YF%$2QEb{66RK&*Gt6aki@c+oWxJ(UA5Fg7Wu10s8Fd29d4?T z#O~%$>EXStM`~4xptGTDcsDm(1wGOCbcXiB5{7bDUCU7jr~4aD-_PQ0S06vt)StjY zl05=XT6W2?=g1Z#ZQas!)2zBnHHZo@=)!j*b~~cXS)>p|i6ZCG=0i=(GAtCKt<2D2 zC&>?`TN!P)V4>WX5xog(?}3aOZ|M?3VVyq2Jt8yOZ~HKHSZfb-P3r(Baz9R34nIi{ zp2T+yVncY$IV@qh0TDh=BaURs;pf1)hpsxhXlz#xJrk;WT literal 0 HcmV?d00001 diff --git a/tests/files/only_page_number.pdf b/tests/files/only_page_number.pdf new file mode 100644 index 0000000000000000000000000000000000000000..7b4ecfe4d797cc1fc19c22ca4f2d5eaf92c13cf0 GIT binary patch literal 2437 zcmc&#O^6&t6c!>vI${obh)|*Ij@E{nE;z2J_@De3a6yx{0r+1sxLvA)as;lb#e($TQ zvH8|q!<|&l*bhH`ebw<8XUWp@tnG2b{!bA?GYL`LWh(HCT#V~6?F%M^%OsbD&>o5K zIOZCoVA9vOox9Mmg;aiuQA_3rig_krp28?4(}=Bn=y?It(q&r6GL{P+!I^^i9`aL~ zX)T!N8m5hey)0~$kGaCSHt@}{AHbhs3b7@yrkrW4@(=;)ruYJJ5vv$cr{tI$x0nkN zFd^Xwap~U#rM@T7JJ^v(6)*{3QkHWCdq5eM|e{2>A%Dk`mWD3 z@~-yD&gHTML?Q_vg%z7MFv*yNj0+h#52y&N8;oUguqQn#5RM6$4FX`TN~Ri1Jv2!o zVNPI+(iQ|D9f{^qPKBNXu+S3$^bo@X&;?1LC(tYqArw|)~X-`k)jf+n}|aVq~`yZ7?6qxK|bnIkbwv>l8OK&8A_kk zKiPTE+tjJZF(R5L7abdS=_YXW=t^*=rkv*S+^#&qeB(3^=iwmg9Eke^%ed1#@zSbg z&ABAbTQ=*Y(Q2NgPBA|gu3%>t+DmEVG!JAQ8|Tb;Fq#{L{S3#vRGgVf)>*sZ;bb@H zD7Zp#7HGBTz4RV_T!$FwamPNjZeZ{Q2S`{^{dqzdXI`%=V9O+}iocFQ?D#`u*I6_V=Iv`tY`uy_bgfzj?g> z+Nlpu|8#lZ_P5#eo-=!2o)I6sbLykc>o?x`?83_VzjvIS82<6>zYfnFxZ zHt?7A;udU{tfd{Bv4TbgBIO@WV1X3MYtE-h=eW&TyNOqcHBZ>}e39xNv1>l;1CseL zrQW+GzO%p<(~J?8!277}MqxoDjs=55uU%0%srXEW1+j_Gk4D{$wJFsF(5xgeg~`CV zWR1eqDdpEqOXb-R=OF1*TCf^rRcmojH#wSgTWBsDZ|xUcaPA8{12W)dANTf1zGnha z(cwHw;@i?oQZ~NY?d2~pF^Oxi!G^=(WU(;WNmk$ufOgk9VAXh(1I)&1xHd={F5Zii zOZ9?rSgy2d%)sI7Y3`&SHC;R)HQ=Sz@*zRg@*A6NCpTAqf{z@|>Yz{7DbVbmtD z=WvU)r-t`a^EjoXt#^h`%iPx(tcFkErJCyme?@3HPI`Ii2<+gl2! j!KH;H$r%xbE|ut%CH#sb9Hx1JsNlYI#>NglHs|~U Date: Fri, 28 Aug 2020 17:52:21 +0530 Subject: [PATCH 3/9] Update year --- LICENSE | 9 ++------- docs/conf.py | 2 +- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/LICENSE b/LICENSE index 9a71f13..da379bb 100644 --- a/LICENSE +++ b/LICENSE @@ -1,12 +1,7 @@ MIT License -Modifications: - -Copyright (c) 2019 Camelot Developers - -Original project: - -Copyright (c) 2018 Peeply Private Ltd (Singapore) +Copyright (c) 2019-2020 Camelot Developers +Copyright (c) 2018-2019 Peeply Private Ltd (Singapore) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/docs/conf.py b/docs/conf.py index ee9f57f..018f393 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -63,7 +63,7 @@ master_doc = 'index' # General information about the project. project = u'Camelot' -copyright = u'2019, Camelot Developers' +copyright = u'2020, Camelot Developers' author = u'Vinayak Mehta' # The version info for the project you're documenting, acts as replacement for From 0a3944e54d133b701edfe9c7546ff11289301ba8 Mon Sep 17 00:00:00 2001 From: Vinayak Mehta Date: Mon, 7 Sep 2020 23:39:49 +0530 Subject: [PATCH 4/9] Add bug report template --- .github/ISSUE_TEMPLATE/bug_report.md | 48 ++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..c45e34f --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,48 @@ +--- +name: Bug report +about: Please follow this template to submit bug reports. +title: '' +labels: bug +assignees: '' + +--- + + + +**Describe the bug** +A clear and concise description of what the bug is. + +**Steps to reproduce the bug** +Steps used to install `camelot`: +1. Add step here (you can add more steps too) + +Steps to reproduce the behavior: +1. Add step here (you can add more steps too) + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Code** +Add the Camelot code snippet that you used. +``` +import camelot + +# add your code here +``` + +**PDF** +Add the PDF file that you want to extract tables from. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Environment** + - OS: [e.g. MacOS] + - Python version: + - Numpy version: + - OpenCV version: + - Ghostscript version: + - Camelot version: + +**Additional context** +Add any other context about the problem here. From 2a7a4f5b349329a2cd66fe1b8ba1418daba1289e Mon Sep 17 00:00:00 2001 From: Vinayak Mehta Date: Tue, 8 Sep 2020 00:35:32 +0530 Subject: [PATCH 5/9] Update README and index.rst --- README.md | 65 +++++++++++++++----------------------------------- docs/index.rst | 38 ++++++++++++++--------------- 2 files changed, 37 insertions(+), 66 deletions(-) diff --git a/README.md b/README.md index 74cef27..8324b9f 100644 --- a/README.md +++ b/README.md @@ -10,13 +10,13 @@ [![image](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black) [![image](https://img.shields.io/badge/continous%20quality-deepsource-lightgrey)](https://deepsource.io/gh/camelot-dev/camelot/?ref=repository-badge) -**Camelot** is a Python library that makes it easy for *anyone* to extract tables from PDF files! +**Camelot** is a Python library that can help you extract tables from PDFs! -**Note:** You can also check out [Excalibur](https://github.com/camelot-dev/excalibur), which is a web interface for Camelot! +**Note:** You can also check out [Excalibur](https://github.com/camelot-dev/excalibur), the web interface to Camelot! --- -**Here's how you can extract tables from PDF files.** Check out the PDF used in this example [here](https://github.com/camelot-dev/camelot/blob/master/docs/_static/pdf/foo.pdf). +**Here's how you can extract tables from PDFs.** You can check out the PDF used in this example [here](https://github.com/camelot-dev/camelot/blob/master/docs/_static/pdf/foo.pdf).
 >>> import camelot
@@ -46,24 +46,27 @@
 | 2032_2     | 0.17      | 57.8          | 21.7%                | 0.3%            | 2.7%            | 1.2%           |
 | 4171_1     | 0.07      | 173.9         | 58.1%                | 1.6%            | 2.1%            | 0.5%           |
 
-There's a [command-line interface](https://camelot-py.readthedocs.io/en/master/user/cli.html) too!
+Camelot also comes packaged with a [command-line interface](https://camelot-py.readthedocs.io/en/master/user/cli.html)!
 
 **Note:** Camelot only works with text-based PDFs and not scanned documents. (As Tabula [explains](https://github.com/tabulapdf/tabula#why-tabula), "If you can click and drag to select text in your table in a PDF viewer, then your PDF is text-based".)
 
 ## Why Camelot?
 
-- **You are in control.**: Unlike other libraries and tools which either give a nice output or fail miserably (with no in-between), Camelot gives you the power to tweak table extraction. (This is important since everything in the real world, including PDF table extraction, is fuzzy.)
-- *Bad* tables can be discarded based on **metrics** like accuracy and whitespace, without ever having to manually look at each table.
-- Each table is a **pandas DataFrame**, which seamlessly integrates into [ETL and data analysis workflows](https://gist.github.com/vinayak-mehta/e5949f7c2410a0e12f25d3682dc9e873).
-- **Export** to multiple formats, including JSON, Excel, HTML and Sqlite.
+- **Configurability**: Camelot gives you control over the table extraction process with its [tweakable settings](https://camelot-py.readthedocs.io/en/master/user/advanced.html).
+- **Metrics**: Bad tables can be discarded based on metrics like accuracy and whitespace, without having to manually look at each table.
+- **Output**: Each table is extracted into a **pandas DataFrame**, which seamlessly integrates into [ETL and data analysis workflows](https://gist.github.com/vinayak-mehta/e5949f7c2410a0e12f25d3682dc9e873). You can also export tables to multiple formats, which include CSV, JSON, Excel, HTML and Sqlite.
 
-See [comparison with other PDF table extraction libraries and tools](https://github.com/camelot-dev/camelot/wiki/Comparison-with-other-PDF-Table-Extraction-libraries-and-tools).
+See [comparison with similar libraries and tools](https://github.com/camelot-dev/camelot/wiki/Comparison-with-other-PDF-Table-Extraction-libraries-and-tools).
+
+## Support the development
+
+If Camelot has helped you, please consider supporting its development with a one-time or monthly donation [on OpenCollective](https://opencollective.com/camelot).
 
 ## Installation
 
 ### Using conda
 
-The easiest way to install Camelot is to install it with [conda](https://conda.io/docs/), which is a package manager and  environment management system for the [Anaconda](http://docs.continuum.io/anaconda/) distribution.
+The easiest way to install Camelot is with [conda](https://conda.io/docs/), which is a package manager and environment management system for the [Anaconda](http://docs.continuum.io/anaconda/) distribution.
 
 
 $ conda install -c conda-forge camelot-py
@@ -71,7 +74,7 @@ $ conda install -c conda-forge camelot-py
 
 ### Using pip
 
-After [installing the dependencies](https://camelot-py.readthedocs.io/en/master/user/install-deps.html) ([tk](https://packages.ubuntu.com/bionic/python/python-tk) and [ghostscript](https://www.ghostscript.com/)), you can simply use pip to install Camelot:
+After [installing the dependencies](https://camelot-py.readthedocs.io/en/master/user/install-deps.html) ([tk](https://packages.ubuntu.com/bionic/python/python-tk) and [ghostscript](https://www.ghostscript.com/)), you can also just use pip to install Camelot:
 
 
 $ pip install "camelot-py[cv]"
@@ -94,40 +97,16 @@ $ pip install ".[cv]"
 
 ## Documentation
 
-Great documentation is available at [http://camelot-py.readthedocs.io/](http://camelot-py.readthedocs.io/).
-
-## Development
-
-The [Contributor's Guide](https://camelot-py.readthedocs.io/en/master/dev/contributing.html) has detailed information about contributing code, documentation, tests and more. We've included some basic information in this README.
-
-### Source code
-
-You can check the latest sources with:
-
-
-$ git clone https://www.github.com/camelot-dev/camelot
-
- -### Setting up a development environment - -You can install the development dependencies easily, using pip: - -
-$ pip install "camelot-py[dev]"
-
- -### Testing - -After installation, you can run tests using: - -
-$ python setup.py test
-
+The documentation is available at [http://camelot-py.readthedocs.io/](http://camelot-py.readthedocs.io/). ## Wrappers - [camelot-php](https://github.com/randomstate/camelot-php) provides a [PHP](https://www.php.net/) wrapper on Camelot. +## Contributing + +The [Contributor's Guide](https://camelot-py.readthedocs.io/en/master/dev/contributing.html) has detailed information about contributing issues, documentation, code, and tests. + ## Versioning Camelot uses [Semantic Versioning](https://semver.org/). For the available versions, see the tags on this repository. For the changelog, you can check out [HISTORY.md](https://github.com/camelot-dev/camelot/blob/master/HISTORY.md). @@ -135,9 +114,3 @@ Camelot uses [Semantic Versioning](https://semver.org/). For the available versi ## License This project is licensed under the MIT License, see the [LICENSE](https://github.com/camelot-dev/camelot/blob/master/LICENSE) file for details. - -## Support the development - -You can support our work on Camelot with a one-time or monthly donation [on OpenCollective](https://opencollective.com/camelot). Organizations who use camelot can also sponsor the project for an acknowledgement on [our documentation site](https://camelot-py.readthedocs.io/en/master/) and this README. - -Special thanks to all the users, organizations and contributors that support Camelot! diff --git a/docs/index.rst b/docs/index.rst index 950240e..c3e1de4 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -36,15 +36,15 @@ Release v\ |version|. (:ref:`Installation `) .. image:: https://img.shields.io/badge/continous%20quality-deepsource-lightgrey :target: https://deepsource.io/gh/camelot-dev/camelot/?ref=repository-badge -**Camelot** is a Python library that makes it easy for *anyone* to extract tables from PDF files! +**Camelot** is a Python library that can help you extract tables from PDFs! -.. note:: You can also check out `Excalibur`_, which is a web interface for Camelot! +.. note:: You can also check out `Excalibur`_, the web interface to Camelot! .. _Excalibur: https://github.com/camelot-dev/excalibur ---- -**Here's how you can extract tables from PDF files.** Check out the PDF used in this example `here`_. +**Here's how you can extract tables from PDFs.** You can check out the PDF used in this example `here`_. .. _here: _static/pdf/foo.pdf @@ -70,7 +70,7 @@ Release v\ |version|. (:ref:`Installation `) .. csv-table:: :file: _static/csv/foo.csv -There's a :ref:`command-line interface ` too! +Camelot also comes packaged with a :ref:`command-line interface `! .. note:: Camelot only works with text-based PDFs and not scanned documents. (As Tabula `explains`_, "If you can click and drag to select text in your table in a PDF viewer, then your PDF is text-based".) @@ -79,27 +79,27 @@ There's a :ref:`command-line interface ` too! Why Camelot? ------------ -- **You are in control.** Unlike other libraries and tools which either give a nice output or fail miserably (with no in-between), Camelot gives you the power to tweak table extraction. (This is important since everything in the real world, including PDF table extraction, is fuzzy.) -- *Bad* tables can be discarded based on **metrics** like accuracy and whitespace, without ever having to manually look at each table. -- Each table is a **pandas DataFrame**, which seamlessly integrates into `ETL and data analysis workflows`_. -- **Export** to multiple formats, including JSON, Excel and HTML. - -See `comparison with other PDF table extraction libraries and tools`_. +- **Configurability**: Camelot gives you control over the table extraction process with its :ref:`tweakable settings `. +- **Metrics**: Bad tables can be discarded based on metrics like accuracy and whitespace, without having to manually look at each table. +- **Output**: Each table is extracted into a **pandas DataFrame**, which seamlessly integrates into `ETL and data analysis workflows`_. You can also export tables to multiple formats, which include CSV, JSON, Excel, HTML and Sqlite. .. _ETL and data analysis workflows: https://gist.github.com/vinayak-mehta/e5949f7c2410a0e12f25d3682dc9e873 -.. _comparison with other PDF table extraction libraries and tools: https://github.com/camelot-dev/camelot/wiki/Comparison-with-other-PDF-Table-Extraction-libraries-and-tools -Support us on OpenCollective ----------------------------- +See `comparison with similar libraries and tools`_. -If Camelot helped you extract tables from PDFs, please consider supporting its development by `becoming a backer or a sponsor on OpenCollective`_! +.. _comparison with similar libraries and tools: https://github.com/camelot-dev/camelot/wiki/Comparison-with-other-PDF-Table-Extraction-libraries-and-tools -.. _becoming a backer or a sponsor on OpenCollective: https://opencollective.com/camelot +Support the development +----------------------- + +If Camelot has helped you, please consider supporting its development with a one-time or monthly donation `on OpenCollective`_! + +.. _on OpenCollective: https://opencollective.com/camelot The User Guide -------------- -This part of the documentation begins with some background information about why Camelot was created, takes a small dip into the implementation details and then focuses on step-by-step instructions for getting the most out of Camelot. +This part of the documentation begins with some background information about why Camelot was created, takes you through some implementation details, and then focuses on step-by-step instructions for getting the most out of Camelot. .. toctree:: :maxdepth: 2 @@ -115,8 +115,7 @@ This part of the documentation begins with some background information about why The API Documentation/Guide --------------------------- -If you are looking for information on a specific function, class, or method, -this part of the documentation is for you. +If you are looking for information on a specific function, class, or method, this part of the documentation is for you. .. toctree:: :maxdepth: 2 @@ -126,8 +125,7 @@ this part of the documentation is for you. The Contributor Guide --------------------- -If you want to contribute to the project, this part of the documentation is for -you. +If you want to contribute to the project, this part of the documentation is for you. .. toctree:: :maxdepth: 2 From 468512a8cdbd6211667c45ea1898c72668f4ca80 Mon Sep 17 00:00:00 2001 From: Jim Hall Date: Thu, 8 Oct 2020 08:21:34 -0400 Subject: [PATCH 6/9] Language added to confirm proper installation of ghostscript libraries --- docs/user/install-deps.rst | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/docs/user/install-deps.rst b/docs/user/install-deps.rst index f0ce2ae..fb37806 100755 --- a/docs/user/install-deps.rst +++ b/docs/user/install-deps.rst @@ -72,3 +72,31 @@ Or for Windows 32-bit:: C:\> gswin32c.exe -version If you have ghostscript, you should see the ghostscript version and copyright information. + +If you choose not to install ghostscript using the Camelot `OS-specific +instructions`_, there is risk of an incomplete installation (for example, +the choosen distribution only installs the ghostscript ``gs`` binary and not +the libraries). + +.. _OS-specific instructions: #os-specific-instructions + +If the ghostscript application libraries are not installed correctly, the +attempt to use ``read_pdf`` (using the example on the Camelot home page) will +fail as follows (Traceback truncated - full example stack trace available +`here`_):: + + >>> import camelot + >>> tables = camelot.read_pdf('foo.pdf') + OSError: dlopen(libgs.so, 6): image not found + +.. _here: https://github.com/camelot-dev/camelot/issues/193 + +A correct installation of ghostscript will result in the example returning a +TableList object:: + + >>> import camelot + >>> tables = camelot.read_pdf('foo.pdf') + >>> tables + + + From de6faa7af1211a6bd1efc26dcde896d8734420dc Mon Sep 17 00:00:00 2001 From: Vinayak Mehta Date: Sun, 18 Oct 2020 03:13:21 +0530 Subject: [PATCH 7/9] Add new checks --- docs/user/install-deps.rst | 111 ++++++++++++------------------------- docs/user/install.rst | 33 +++++------ 2 files changed, 48 insertions(+), 96 deletions(-) diff --git a/docs/user/install-deps.rst b/docs/user/install-deps.rst index fb37806..461a1d3 100755 --- a/docs/user/install-deps.rst +++ b/docs/user/install-deps.rst @@ -3,100 +3,59 @@ Installation of dependencies ============================ -The dependencies `Tkinter`_ and `ghostscript`_ can be installed using your system's package manager. You can run one of the following, based on your OS. - -.. _Tkinter: https://wiki.python.org/moin/TkInter -.. _ghostscript: https://www.ghostscript.com +The dependencies `Ghostscript `_ and `Tkinter `_ can be installed using your system's package manager or by running their installer. OS-specific instructions ------------------------ -For Ubuntu -^^^^^^^^^^ +Ubuntu +^^^^^^ :: - $ apt install python-tk ghostscript + $ apt install ghostscript python3-tk -Or for Python 3:: - - $ apt install python3-tk ghostscript - -For macOS -^^^^^^^^^ +MacOS +^^^^^ :: - $ brew install tcl-tk ghostscript + $ brew install ghostscript tcl-tk -For Windows -^^^^^^^^^^^ +Windows +^^^^^^^ -For Tkinter, you can download the `ActiveTcl Community Edition`_ from ActiveState. For ghostscript, you can get the installer at the `ghostscript downloads page`_. +For Ghostscript, you can get the installer at their `downloads page `_. And for Tkinter, you can download the `ActiveTcl Community Edition `_ from ActiveState. -.. _ActiveTcl Community Edition: https://www.activestate.com/activetcl/downloads -.. _ghostscript downloads page: https://www.ghostscript.com/download/gsdnld.html -.. _as shown here: https://java.com/en/download/help/path.xml +Checks to see if dependencies are installed correctly +----------------------------------------------------- -Checks to see if dependencies were installed correctly ------------------------------------------------------- +You can run the following checks to see if the dependencies were installed correctly. -You can do the following checks to see if the dependencies were installed correctly. +For Ghostscript +^^^^^^^^^^^^^^^ + +Open the Python REPL and run the following: + +For Ubuntu/MacOS:: + + >>> from ctypes.util import find_library + >>> find_library("gs") + "libgs.so.9" + +For Windows:: + + >>> from ctypes.util import find_library + >>> find_library("".join(("gsdll", str(ctypes.sizeof(ctypes.c_voidp) * 8), ".dll")) + + +**Check:** The output of the ``find_library`` function should not be empty. + +If the output is empty, then it's possible that the Ghostscript library is not available one of the ``LD_LIBRARY_PATH``/``DYLD_LIBRARY_PATH``/``PATH`` variables depending on your operating system. In this case, you may have to modify one of those path variables. For Tkinter ^^^^^^^^^^^ -Launch Python, and then at the prompt, type:: - - >>> import Tkinter - -Or in Python 3:: +Launch Python and then import Tkinter:: >>> import tkinter -If you have Tkinter, Python will not print an error message, and if not, you will see an ``ImportError``. - -For ghostscript -^^^^^^^^^^^^^^^ - -Run the following to check the ghostscript version. - -For Ubuntu/macOS:: - - $ gs -version - -For Windows:: - - C:\> gswin64c.exe -version - -Or for Windows 32-bit:: - - C:\> gswin32c.exe -version - -If you have ghostscript, you should see the ghostscript version and copyright information. - -If you choose not to install ghostscript using the Camelot `OS-specific -instructions`_, there is risk of an incomplete installation (for example, -the choosen distribution only installs the ghostscript ``gs`` binary and not -the libraries). - -.. _OS-specific instructions: #os-specific-instructions - -If the ghostscript application libraries are not installed correctly, the -attempt to use ``read_pdf`` (using the example on the Camelot home page) will -fail as follows (Traceback truncated - full example stack trace available -`here`_):: - - >>> import camelot - >>> tables = camelot.read_pdf('foo.pdf') - OSError: dlopen(libgs.so, 6): image not found - -.. _here: https://github.com/camelot-dev/camelot/issues/193 - -A correct installation of ghostscript will result in the example returning a -TableList object:: - - >>> import camelot - >>> tables = camelot.read_pdf('foo.pdf') - >>> tables - - - +**Check:** Importing ``tkinter`` should not raise an import error. diff --git a/docs/user/install.rst b/docs/user/install.rst index 422f118..e7bf89e 100644 --- a/docs/user/install.rst +++ b/docs/user/install.rst @@ -5,42 +5,35 @@ Installation of Camelot This part of the documentation covers the steps to install Camelot. -Using conda ------------ +After :ref:`installing the dependencies `, which include `Ghostscript `_ and `Tkinter `_, you can use one of the following methods to install Camelot: -The easiest way to install Camelot is to install it with `conda`_, which is a package manager and environment management system for the `Anaconda`_ distribution. -:: +.. warning:: The ``lattice`` flavor will fail to run if Ghostscript is not installed. You may run into errors as shown in `issue #193 `_. - $ conda install -c conda-forge camelot-py +pip +--- -.. note:: Camelot is available for Python 2.7, 3.5, 3.6 and 3.7 on Linux, macOS and Windows. For Windows, you will need to install ghostscript which you can get from their `downloads page`_. - -.. _conda: https://conda.io/docs/ -.. _Anaconda: http://docs.continuum.io/anaconda/ -.. _downloads page: https://www.ghostscript.com/download/gsdnld.html -.. _conda-forge: https://conda-forge.org/ - -Using pip ---------- - -After :ref:`installing the dependencies `, which include `Tkinter`_ and `ghostscript`_, you can simply use pip to install Camelot:: +To install Camelot from PyPI using ``pip``, please include the extra ``cv`` requirement as shown:: $ pip install "camelot-py[cv]" -.. _Tkinter: https://wiki.python.org/moin/TkInter -.. _ghostscript: https://www.ghostscript.com +conda +----- + +`conda`_ is a package manager and environment management system for the `Anaconda `_ distribution. It can be used to install Camelot from the ``conda-forge`` channel:: + + $ conda install -c conda-forge camelot-py From the source code -------------------- -After :ref:`installing the dependencies `, you can install from the source by: +After :ref:`installing the dependencies `, you can install Camelot from source by: 1. Cloning the GitHub repository. :: $ git clone https://www.github.com/camelot-dev/camelot -2. Then simply using pip again. +2. And then simply using pip again. :: $ cd camelot From 13a50e2ba23d51d223020a25813fde99179db49f Mon Sep 17 00:00:00 2001 From: Martin Abente Lahaye Date: Thu, 22 Oct 2020 11:00:00 -0300 Subject: [PATCH 8/9] handlers: Close file streams explicitly No harm in closing these streams explicitly. Best case scenario, this prevents descriptors leaks, worse case scenario, it reduces the amount of messages like the following during tests: ResourceWarning: unclosed file --- camelot/handlers.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/camelot/handlers.py b/camelot/handlers.py index 6aa3a31..9ec10bb 100644 --- a/camelot/handlers.py +++ b/camelot/handlers.py @@ -70,7 +70,8 @@ class PDFHandler(object): if pages == "1": page_numbers.append({"start": 1, "end": 1}) else: - infile = PdfFileReader(open(filepath, "rb"), strict=False) + instream = open(filepath, "rb") + infile = PdfFileReader(instream, strict=False) if infile.isEncrypted: infile.decrypt(self.password) if pages == "all": @@ -84,6 +85,7 @@ class PDFHandler(object): page_numbers.append({"start": int(a), "end": int(b)}) else: page_numbers.append({"start": int(r), "end": int(r)}) + instream.close() P = [] for p in page_numbers: P.extend(range(p["start"], p["end"] + 1)) @@ -122,7 +124,8 @@ class PDFHandler(object): if rotation != "": fpath_new = "".join([froot.replace("page", "p"), "_rotated", fext]) os.rename(fpath, fpath_new) - infile = PdfFileReader(open(fpath_new, "rb"), strict=False) + instream = open(fpath_new, "rb") + infile = PdfFileReader(instream, strict=False) if infile.isEncrypted: infile.decrypt(self.password) outfile = PdfFileWriter() @@ -134,6 +137,7 @@ class PDFHandler(object): outfile.addPage(p) with open(fpath, "wb") as f: outfile.write(f) + instream.close() def parse( self, flavor="lattice", suppress_stdout=False, layout_kwargs={}, **kwargs From 7695d35449635576ea8ccbed181ca68b2f985a47 Mon Sep 17 00:00:00 2001 From: Eduardo Gonzalez Lopez de Murillas Date: Tue, 27 Oct 2020 17:51:24 +0100 Subject: [PATCH 9/9] Fix #15 extraction of cell data discarding overlapping text boxes --- camelot/utils.py | 94 ++++++++++++++++++++++++++++++++++++- tests/data.py | 48 +++++++++++++++++++ tests/files/birdisland.pdf | Bin 0 -> 144921 bytes tests/test_common.py | 8 ++++ 4 files changed, 148 insertions(+), 2 deletions(-) create mode 100644 tests/files/birdisland.pdf diff --git a/camelot/utils.py b/camelot/utils.py index 3e8ab96..2126fbb 100644 --- a/camelot/utils.py +++ b/camelot/utils.py @@ -353,7 +353,7 @@ def text_in_bbox(bbox, text): Returns ------- t_bbox : list - List of PDFMiner text objects that lie inside table. + List of PDFMiner text objects that lie inside table, discarding the overlapping ones """ lb = (bbox[0], bbox[1]) @@ -364,7 +364,97 @@ def text_in_bbox(bbox, 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 ] - return t_bbox + + # Avoid duplicate text by discarding overlapping boxes + rest = {t for t in t_bbox} + for ba in t_bbox: + for bb in rest.copy(): + if ba == bb: + continue + if bbox_intersect(ba, bb): + # if the intersection is larger than 80% of ba's size, we keep the longest + if (bbox_intersection_area(ba, bb) / bbox_area(ba)) > 0.8: + if bbox_longer(bb, ba): + rest.discard(ba) + unique_boxes = list(rest) + + return unique_boxes + + +def bbox_intersection_area(ba, bb) -> float: + """Returns area of the intersection of the bounding boxes of two PDFMiner objects. + + Parameters + ---------- + ba : PDFMiner text object + bb : PDFMiner text object + + Returns + ------- + intersection_area : float + Area of the intersection of the bounding boxes of both objects + + """ + x_left = max(ba.x0, bb.x0) + y_top = min(ba.y1, bb.y1) + x_right = min(ba.x1, bb.x1) + y_bottom = max(ba.y0, bb.y0) + + if x_right < x_left or y_bottom > y_top: + return 0.0 + + intersection_area = (x_right - x_left) * (y_top - y_bottom) + return intersection_area + + +def bbox_area(bb) -> float: + """Returns area of the bounding box of a PDFMiner object. + + Parameters + ---------- + bb : PDFMiner text object + + Returns + ------- + area : float + Area of the bounding box of the object + + """ + return (bb.x1 - bb.x0) * (bb.y1 - bb.y0) + + +def bbox_intersect(ba, bb) -> bool: + """Returns True if the bounding boxes of two PDFMiner objects intersect. + + Parameters + ---------- + ba : PDFMiner text object + bb : PDFMiner text object + + Returns + ------- + overlaps : bool + True if the bounding boxes intersect + + """ + return ba.x1 >= bb.x0 and bb.x1 >= ba.x0 and ba.y1 >= bb.y0 and bb.y1 >= ba.y0 + + +def bbox_longer(ba, bb) -> bool: + """Returns True if the bounding box of the first PDFMiner object is longer or equal to the second. + + Parameters + ---------- + ba : PDFMiner text object + bb : PDFMiner text object + + Returns + ------- + longer : bool + True if the bounding box of the first object is longer or equal + + """ + return (ba.x1 - ba.x0) >= (bb.x1 - bb.x0) def merge_close_lines(ar, line_tol=2): diff --git a/tests/data.py b/tests/data.py index 7e53792..b2bf706 100755 --- a/tests/data.py +++ b/tests/data.py @@ -2798,3 +2798,51 @@ data_stream_layout_kwargs = [ ["A.O.P Cornas", ""], ["Domaine Lionnet « Terre Brûlée » 2012", "15 €"], ] + +data_stream_duplicated_text = [ + ['', '2012 BETTER VARIETIES Harvest Report for Minnesota Central [ MNCE ]', '', '', '', '', '', '', '', '', + 'ALL SEASON TEST'], + ['', 'Doug Toreen, Renville County, MN 55310 [ BIRD ISLAND ]', '', '', '', '', '', '', '', '', + '1.3 - 2.0 MAT. GROUP'], + ['PREV. CROP/HERB:', 'Corn / Surpass, Roundup', '', '', '', '', '', '', '', '', 'S2MNCE01'], + ['SOIL DESCRIPTION:', '', 'Canisteo clay loam, mod. well drained, non-irrigated', '', '', '', '', '', '', '', ''], + ['SOIL CONDITIONS:', '', 'High P, high K, 6.7 pH, 3.9% OM, Low SCN', '', '', '', '', '', '', '', '30" ROW SPACING'], + ['TILLAGE/CULTIVATION:', 'conventional w/ fall till', '', '', '', '', '', '', '', '', ''], + ['PEST MANAGEMENT:', 'Roundup twice', '', '', '', '', '', '', '', '', ''], + ['SEEDED - RATE:', 'May 15', '140 000 /A', '', '', '', '', '', '', 'TOP 30 for YIELD of 63 TESTED', ''], + ['HARVESTED - STAND:', 'Oct 3', '122 921 /A', '', '', '', '', '', '', 'AVERAGE of (3) REPLICATIONS', ''], + ['', '', '', '', 'SCN', 'Seed', 'Yield', 'Moisture', 'Lodging', 'Stand', 'Gross'], + ['Company/Brand', 'Product/Brand†', 'Technol.†', 'Mat.', 'Resist.', 'Trmt.†', 'Bu/A', '%', '%', '(x 1000)', + 'Income'], ['Kruger', 'K2 1901', 'RR2Y', '1.9', 'R', 'Ac,PV', '56.4', '7.6', '0', '126.3', '$846'], + ['Stine', '19RA02 §', 'RR2Y', '1.9', 'R', 'CMB', '55.3', '7.6', '0', '120.0', '$830'], + ['Wensman', 'W 3190NR2', 'RR2Y', '1.9', 'R', 'Ac', '54.5', '7.6', '0', '119.5', '$818'], + ['Hefty', 'H17Y12', 'RR2Y', '1.7', 'MR', 'I', '53.7', '7.7', '0', '124.4', '$806'], + ['Dyna-Gro', 'S15RY53', 'RR2Y', '1.5', 'R', 'Ac', '53.6', '7.7', '0', '126.8', '$804'], + ['LG Seeds', 'C2050R2', 'RR2Y', '2.1', 'R', 'Ac', '53.6', '7.7', '0', '123.9', '$804'], + ['Titan Pro', '19M42', 'RR2Y', '1.9', 'R', 'CMB', '53.6', '7.7', '0', '121.0', '$804'], + ['Stine', '19RA02 (2) §', 'RR2Y', '1.9', 'R', 'CMB', '53.4', '7.7', '0', '123.9', '$801'], + ['Asgrow', 'AG1832 §', 'RR2Y', '1.8', 'MR', 'Ac,PV', '52.9', '7.7', '0', '122.0', '$794'], + ['Prairie Brand', 'PB-1566R2', 'RR2Y', '1.5', 'R', 'CMB', '52.8', '7.7', '0', '122.9', '$792'], + ['Channel', '1901R2', 'RR2Y', '1.9', 'R', 'Ac,PV', '52.8', '7.6', '0', '123.4', '$791'], + ['Titan Pro', '20M1', 'RR2Y', '2.0', 'R', 'Am', '52.5', '7.5', '0', '124.4', '$788'], + ['Kruger', 'K2-2002', 'RR2Y', '2.0', 'R', 'Ac,PV', '52.4', '7.9', '0', '125.4', '$786'], + ['Channel', '1700R2', 'RR2Y', '1.7', 'R', 'Ac,PV', '52.3', '7.9', '0', '123.9', '$784'], + ['Hefty', 'H16Y11', 'RR2Y', '1.6', 'MR', 'I', '51.4', '7.6', '0', '123.9', '$771'], + ['Anderson', '162R2Y', 'RR2Y', '1.6', 'R', 'None', '51.3', '7.5', '0', '119.5', '$770'], + ['Titan Pro', '15M22', 'RR2Y', '1.5', 'R', 'CMB', '51.3', '7.8', '0', '125.4', '$769'], + ['Dairyland', 'DSR-1710R2Y', 'RR2Y', '1.7', 'R', 'CMB', '51.3', '7.7', '0', '122.0', '$769'], + ['Hefty', 'H20R3', 'RR2Y', '2.0', 'MR', 'I', '50.5', '8.2', '0', '121.0', '$757'], + ['Prairie Brand', 'PB 1743R2', 'RR2Y', '1.7', 'R', 'CMB', '50.2', '7.7', '0', '125.8', '$752'], + ['Gold Country', '1741', 'RR2Y', '1.7', 'R', 'Ac', '50.1', '7.8', '0', '123.9', '$751'], + ['Trelay', '20RR43', 'RR2Y', '2.0', 'R', 'Ac,Ex', '49.9', '7.6', '0', '127.8', '$749'], + ['Hefty', 'H14R3', 'RR2Y', '1.4', 'MR', 'I', '49.7', '7.7', '0', '122.9', '$746'], + ['Prairie Brand', 'PB-2099NRR2', 'RR2Y', '2.0', 'R', 'CMB', '49.6', '7.8', '0', '126.3', '$743'], + ['Wensman', 'W 3174NR2', 'RR2Y', '1.7', 'R', 'Ac', '49.3', '7.6', '0', '122.5', '$740'], + ['Kruger', 'K2 1602', 'RR2Y', '1.6', 'R', 'Ac,PV', '48.7', '7.6', '0', '125.4', '$731'], + ['NK Brand', 'S18-C2 §', 'RR2Y', '1.8', 'R', 'CMB', '48.7', '7.7', '0', '126.8', '$731'], + ['Kruger', 'K2 1902', 'RR2Y', '1.9', 'R', 'Ac,PV', '48.7', '7.5', '0', '124.4', '$730'], + ['Prairie Brand', 'PB-1823R2', 'RR2Y', '1.8', 'R', 'None', '48.5', '7.6', '0', '121.0', '$727'], + ['Gold Country', '1541', 'RR2Y', '1.5', 'R', 'Ac', '48.4', '7.6', '0', '110.4', '$726'], + ['', '', '', '', '', 'Test Average =', '47.6', '7.7', '0', '122.9', '$713'], + ['', '', '', '', '', 'LSD (0.10) =', '5.7', '0.3', 'ns', '37.8', '566.4'] +] diff --git a/tests/files/birdisland.pdf b/tests/files/birdisland.pdf new file mode 100644 index 0000000000000000000000000000000000000000..15011585e753eaafd6f6140a77125fab889fc843 GIT binary patch literal 144921 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 EKYHwRg8%>k literal 0 HcmV?d00001 diff --git a/tests/test_common.py b/tests/test_common.py index 6fadc9d..cb9a968 100644 --- a/tests/test_common.py +++ b/tests/test_common.py @@ -314,3 +314,11 @@ def test_version_generation_with_prerelease_revision(): generate_version(version, prerelease=prerelease, revision=revision) == "0.7.3-alpha.2" ) + + +def test_stream_duplicated_text(): + df = pd.DataFrame(data_stream_duplicated_text) + + filename = os.path.join(testdir, "birdisland.pdf") + tables = camelot.read_pdf(filename, flavor="stream") + assert_frame_equal(df, tables[0].df)