From e4b150a2aef7b0ab8005f30b48d77a2ae37244e8 Mon Sep 17 00:00:00 2001 From: "Karl O. Pinc" Date: Wed, 13 Jan 2021 14:14:09 -0600 Subject: [PATCH] Simplify what's passed to the DataLineProcessor; remove extra coloring --- src/pgwui_bulk_upload/views/bulk_upload.py | 37 ++++++++++------------ 1 file changed, 16 insertions(+), 21 deletions(-) diff --git a/src/pgwui_bulk_upload/views/bulk_upload.py b/src/pgwui_bulk_upload/views/bulk_upload.py index f753251..385eb0c 100644 --- a/src/pgwui_bulk_upload/views/bulk_upload.py +++ b/src/pgwui_bulk_upload/views/bulk_upload.py @@ -88,7 +88,7 @@ class BulkUploadForm(UploadNullMixin, UploadDoubleFileForm): return super().write_response(response) -class SaveLine(DataLineProcessor): +class SaveBulkLine(DataLineProcessor): def __init__(self, ue, uh, insert_map): ''' ue UploadEngine instance @@ -103,22 +103,26 @@ class SaveLine(DataLineProcessor): ''' Upload a line of data into the db. - bulk_data A UploadBulkData value. A tuple: - (filepath, relation, + bulk_data A tuple: + (UploadBulkData instance, thunk returning UploadDataLine instance) ''' + (data, thunk) = bulk_data + filepath = data.filepath try: - udl = bulk_data[2]() + udl = thunk() self.cur.execute( - self.insert_map[bulk_data[0]], udl.tuples) + self.insert_map[filepath], udl.tuples) except (core_ex.DataLineError, core_ex.DBError) as exp: - exp.color(map_description(bulk_data[0], bulk_data[1]), - bulk_data[0], bulk_data[1]) + relation = data.relation + exp.color(map_description(filepath, relation), + filepath, relation) raise exp except psycopg2.DatabaseError as exp: + relation = data.relation myexp = core_ex.DBDataLineError(udl, exp) - myexp.color(map_description(bulk_data[0], bulk_data[1]), - bulk_data[0], bulk_data[1]) + myexp.color(map_description(filepath, relation), + filepath, relation) raise myexp @@ -143,7 +147,7 @@ class UploadBulkData(UploadData): class UploadDir(): '''Uploaded archive directory - It is iterable, consisting of SaveLine instances + It is iterable, consisting of SaveBulkLine instances ''' uf = attr.ib() dentry = attr.ib() @@ -324,17 +328,8 @@ class UploadDir(): def __iter__(self): for data in self.filedata: - filepath = data.filepath - relation = data.relation for thunk in data: - def colored_thunk(): - try: - return thunk() - except core_ex.DataLineError as ex: - ex.color(map_description(filepath, relation), - filepath, relation) - raise ex - yield lambda: (filepath, relation, colored_thunk) + yield lambda: (data, thunk) def fileinfo(self): for fileinfo in self.filedata: @@ -547,7 +542,7 @@ class BulkTableUploadHandler(BaseTableUploadHandler): self.data.open(self.uf, self.zip_root, self.map_file) - return SaveLine(self.ue, self, self.insert_map()) + return SaveBulkLine(self.ue, self, self.insert_map()) def stats(self): return self.data.stats() -- 2.34.1