From 741c4eb8d1ba03371e70e182a19524010b3d0f3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Sun, 28 Jun 2026 10:08:48 +0400 Subject: [PATCH] =?UTF-8?q?fix:=20=D1=81=D1=82=D0=B0=D1=82=D1=83=D1=81=20?= =?UTF-8?q?=C2=AB=D0=BD=D0=B5=20=D1=80=D0=B0=D1=81=D0=BF=D0=BE=D0=B7=D0=BD?= =?UTF-8?q?=D0=B0=D0=BD=C2=BB=20+=20=D0=BB=D0=BE=D0=B3=20=D0=BE=D1=88?= =?UTF-8?q?=D0=B8=D0=B1=D0=BE=D0=BA=20=D1=83=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deploy/services/upload.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/deploy/services/upload.py b/deploy/services/upload.py index 960a5fc..c34f155 100644 --- a/deploy/services/upload.py +++ b/deploy/services/upload.py @@ -92,12 +92,20 @@ def store_document(filename: str, file_data: bytes, contract_id: str = "", if contract_id: try: supplements.delete_by_document(contract_id, filename) - except Exception: - pass + except Exception as e: + import logging + logging.getLogger(__name__).warning("delete_by_document failed: %s", e) doc = documents.insert(filename, mime, b64, batch_id=batch_id, zip_source=zip_source, content_hash=content_hash) + parsed = parse_file(filename, file_data) + if parsed and parsed.get("status") == "parsed": + documents.set_parsed(doc["id"], parsed["elements"]) + elif parsed and parsed.get("status") == "error": + documents.set_error(doc["id"], parsed.get("error", "parse failed")) + return {"ok": False, "error": f"parse failed: {parsed.get('error')}", "doc_id": doc["id"]} + if not contract_id: from datetime import datetime now = datetime.now() @@ -109,12 +117,6 @@ def store_document(filename: str, file_data: bytes, contract_id: str = "", supplements.insert(contract_id, doc["id"], supp_type) - parsed = parse_file(filename, file_data) - if parsed and parsed.get("status") == "parsed": - documents.set_parsed(doc["id"], parsed["elements"]) - elif parsed and parsed.get("status") == "error": - documents.set_error(doc["id"], parsed.get("error", "parse failed")) - return { "ok": True, "doc_id": doc["id"], @@ -122,6 +124,7 @@ def store_document(filename: str, file_data: bytes, contract_id: str = "", "filename": filename, "size": len(file_data), "parsed": parsed, + "warning": "file may be unreadable" if not parsed or not parsed.get("element_count") else None, }