1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 -class ItemBase(object):
20
21 - def __init__(self, db, id_, immutable_value):
22 self._db = db
23 self._id = id_
24 self._immutable_value = immutable_value
25
27 if target_db is None:
28 db = self.db
29 else:
30 db = target_db
31 return self.__class__(db=db, immutable_value=self._immutable_value)
32
33 @property
36
37 @db.setter
38 - def db(self, value):
39 if self._db is None:
40 self._db = value
41 elif self._db is not value:
42 raise ValueError("Can't change db")
43
44 @property
47
48 @id.setter
49 - def id(self, value):
51
54
56 return self.id is not None
57
59 self.id = id_
60 return self
61
66
69 def getter(self):
70 return value
71
72 def setter(self, value):
73 return self
74 setattr(klass, "get_{0}".format(name), getter)
75 setattr(klass, "set_{0}".format(name), setter)
76 setattr(klass, "{0}".format(name), property(getter, setter))
77