return seq + ['' for i in range(len(seq) + 1, self.cols)]
+@attr.s
+class ParameterExecutor():
+ '''Execute a parameterized pscopg2 statement
+ '''
+ def param_execute(self, insert_stmt, udl):
+ try:
+ self.cur.execute(insert_stmt, udl.tuples)
+ except IndexError as exp:
+ raise core_ex.TooFewColsError(
+ udl.lineno,
+ 'Line has too few columns',
+ 'Fewer columns than column headings',
+ f'The IndexError from psycopg2 is: ({exp})',
+ data=udl.raw)
+
+
class DataLineProcessor(object):
'''
A processor supplied uploaded lines (UploadDataLine instances)
class TooManyColsError(DataLineError):
def __init__(self, lineno, e, descr='', detail='', data=''):
super(TooManyColsError, self).__init__(lineno, e, descr, detail, data)
+
+
+class TooFewColsError(DataLineError):
+ def __init__(self, lineno, e, descr='', detail='', data=''):
+ super().__init__(lineno, e, descr, detail, data)