Number of lines in file is unknown when file parsing fails
authorKarl O. Pinc <kop@karlpinc.com>
Fri, 30 Apr 2021 03:01:01 +0000 (22:01 -0500)
committerKarl O. Pinc <kop@karlpinc.com>
Fri, 30 Apr 2021 03:01:01 +0000 (22:01 -0500)
setup.py
src/pgwui_upload/views/upload.py

index 83f68d34d1c583a6b3b57cf5449376b644d45c59..692b29557386f6fe045cf7026ae1b8d0c6fce586 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -158,6 +158,7 @@ setup(
     # Run-time dependencies.
     install_requires=[
         'markupsafe',
+        'pgwui_core==' + version,
         'pgwui_upload_core==' + version,
         'psycopg2',
         'pyramid',
index 344615cabcd7df78b29d3b0b686c55f2214e8a27..8a91ef61131979efce88c806c698f781bf4bb44c 100644 (file)
@@ -31,11 +31,13 @@ from __future__ import absolute_import
 from __future__ import division
 
 import attr
+import psycopg2
 
 from pyramid.view import view_config
 import logging
 
 from pgwui_common.view import auth_base_view
+from pgwui_core import exceptions as core_ex
 from pgwui_core.core import (
     UploadTableInitialPostMixin,
     UploadEngine,
@@ -144,13 +146,17 @@ class TableUploadHandler(BaseTableUploadHandler):
         self.cur = ue.cur
         qualified_table = self.uf['table']
 
-        quotecols = self.quote_columns()
-        column_quoter = self.get_column_quoter(quotecols)
+        try:
+            quotecols = self.quote_columns()
+            column_quoter = self.get_column_quoter(quotecols)
 
-        insert_stmt = self.build_insert_stmt(
-            ue.data, qualified_table, quotecols, column_quoter)
+            insert_stmt = self.build_insert_stmt(
+                ue.data, qualified_table, quotecols, column_quoter)
 
-        return SaveLine(ue, self, insert_stmt)
+            return SaveLine(ue, self, insert_stmt)
+        except (core_ex.PGWUIError, psycopg2.Error):
+            self.data.lineno = 0  # Don't report partially read number of lines
+            raise
 
 
 def log_success(response):