From: Christian Heller Date: Tue, 18 Feb 2025 10:54:35 +0000 (+0100) Subject: For reading DbData tables, add check for DbData._cols equal in number to encountered... X-Git-Url: https://plomlompom.com/repos/%7B%7B%20web_path%20%7D%7D/decks/%7B%7B%20deck_id%20%7D%7D/%7B%7Btodo.comment%7D%7D?a=commitdiff_plain;h=6ce6a2db7a7747be9c34c8e2fa1496a2c658f670;p=ytplom For reading DbData tables, add check for DbData._cols equal in number to encountered row columns. --- diff --git a/src/ytplom/db.py b/src/ytplom/db.py index 3bf7198..45af7cf 100644 --- a/src/ytplom/db.py +++ b/src/ytplom/db.py @@ -111,6 +111,12 @@ class DbData: @classmethod def _from_table_row(cls, row: SqlRow) -> Self: + n_cols_row, n_cols_class = len(row), len(cls._cols) + if n_cols_row != n_cols_class: + raise HandledException( + 'Trouble reading table row for {cls.__name__}: number of row ' + f'columns ({n_cols_row}) unequal number expected by class ' + f'({n_cols_class}). Maybe DB schema wrong/unmigrated?') kwargs = {} for i, col_name in enumerate(cls._cols): kwargs[col_name] = row[i]