-
Notifications
You must be signed in to change notification settings - Fork 0
/
t.py
48 lines (34 loc) · 804 Bytes
/
t.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
from sqlalchemy import inspect
from sqlalchemy import orm
class T():
@orm.reconstructor
def init_on_load(self):
self._fields = []
self.__exclude = []
self._set_fields()
self.__prune_fields()
def _set_fields(self):
pass
def __prune_fields(self):
inj = inspect(self).mapper.column_attrs
print(inj)
if not self._fields:
all_columns = set(columns)
self._fields = list(all_columns - set(self.__exclude))
def hide(self, *args):
for key in args:
self._fields.remove(key)
return self
def keys(self):
return self._fields
def __getitem__(self, key):
return getattr(self, key)
class my(T):
x = 2
y = 3
def __init__(self, z):
self.z = z
if __name__ == '__main__':
t = my(4)
t.init_on_load()
print(dict(t))