From 44ce0e09ab6d5409400e90ce409d33ebc25b27e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Wed, 17 Jun 2026 22:09:26 +0400 Subject: [PATCH] =?UTF-8?q?=D1=87=D0=B8=D1=81=D1=82=D1=8B=D0=B9=20pdfplumb?= =?UTF-8?q?er=20(camelot/tabula=20=D0=B4=D0=B0=D1=8E=D1=82=20=D0=BC=D1=83?= =?UTF-8?q?=D1=81=D0=BE=D1=80),=20v1.36?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- site/parser.py | 42 ++++++++------------------------------ site/templates/upload.html | 2 +- 2 files changed, 9 insertions(+), 35 deletions(-) diff --git a/site/parser.py b/site/parser.py index be3ad49..e6a9053 100644 --- a/site/parser.py +++ b/site/parser.py @@ -123,30 +123,6 @@ def _parse_doc(file_bytes: bytes) -> dict: def _parse_pdf(file_bytes: bytes) -> dict: result = {"elements": [], "errors": []} - - # Попробовать camelot (pdfium, без системных зависимостей) - tables_from_camelot = False - try: - import camelot - for flavor in ("lattice", "stream"): - try: - ctables = camelot.read_pdf(io.BytesIO(file_bytes), pages="all", flavor=flavor) - for ct in ctables: - rows = [list(ct.df.columns)] + ct.df.values.tolist() - result["elements"].append({ - "type": "table", - "rows": rows, - "page": ct.page, - }) - tables_from_camelot = True - except Exception: - pass - except ImportError: - result["errors"].append("camelot not installed, using pdfplumber") - except Exception as e: - result["errors"].append(f"camelot error: {e}") - - # pdfplumber: текст + таблицы (если tabula не сработал) try: import pdfplumber with pdfplumber.open(io.BytesIO(file_bytes)) as pdf: @@ -163,18 +139,16 @@ def _parse_pdf(file_bytes: bytes) -> dict: "text": line, "page": pn, }) - if not tables_from_camelot: - tables = page.extract_tables() - for tbl in tables: - if tbl: - result["elements"].append({ - "type": "table", - "rows": tbl, - "page": pn, - }) + tables = page.extract_tables() + for tbl in tables: + if tbl: + result["elements"].append({ + "type": "table", + "rows": tbl, + "page": pn, + }) except Exception as e: result["errors"].append(f"pdfplumber: {e}") - return result diff --git a/site/templates/upload.html b/site/templates/upload.html index 04f10e6..eeea7e9 100644 --- a/site/templates/upload.html +++ b/site/templates/upload.html @@ -59,7 +59,7 @@
Nubes - Сверка договоров v1.35 + Сверка договоров v1.36