+class profprop(object):
+ def __init__(self, key, default=None):
+ self.key = key
+ self.default = default
+
+ def __get__(self, ins, cls):
+ return ins.profile.props.get(self.key, self.default)
+
+ def __set__(self, ins, val):
+ ins.profile.props[self.key] = val
+ ins.profile.save()
+
+ def __delete__(self, ins):
+ del ins.profile.props[self.key]
+ ins.profile.save()
+