55import typing as t
66
77from piccolo .engine import Engine , engine_finder
8- from piccolo .columns import (
9- Column ,
10- Selectable ,
11- )
12- from piccolo .columns .column_types import ForeignKey , PrimaryKey
8+ from piccolo .columns import Column , Selectable
9+ from piccolo .columns .column_types import ForeignKey , PrimaryKey , Secret
1310from piccolo .columns .readable import Readable
1411from piccolo .columns .reference import (
1512 LazyTableReference ,
@@ -51,6 +48,7 @@ class TableMeta:
5148 default_columns : t .List [Column ] = field (default_factory = list )
5249 non_default_columns : t .List [Column ] = field (default_factory = list )
5350 foreign_key_columns : t .List [ForeignKey ] = field (default_factory = list )
51+ secret_columns : t .List [Secret ] = field (default_factory = list )
5452 tags : t .List [str ] = field (default_factory = list )
5553 help_text : t .Optional [str ] = None
5654 _db : t .Optional [Engine ] = None
@@ -158,6 +156,7 @@ def __init_subclass__(
158156 default_columns : t .List [Column ] = []
159157 non_default_columns : t .List [Column ] = []
160158 foreign_key_columns : t .List [ForeignKey ] = []
159+ secret_columns : t .List [Secret ] = []
161160
162161 cls .id = PrimaryKey ()
163162
@@ -190,6 +189,9 @@ def __init_subclass__(
190189 column ._meta ._name = attribute_name
191190 column ._meta ._table = cls
192191
192+ if isinstance (column , Secret ):
193+ secret_columns .append (column )
194+
193195 if isinstance (column , ForeignKey ):
194196 foreign_key_columns .append (column )
195197
@@ -199,6 +201,7 @@ def __init_subclass__(
199201 default_columns = default_columns ,
200202 non_default_columns = non_default_columns ,
201203 foreign_key_columns = foreign_key_columns ,
204+ secret_columns = secret_columns ,
202205 tags = tags ,
203206 help_text = help_text ,
204207 _db = db ,
0 commit comments