1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| class reify(object):
|
| """ Put the result of a method which uses this (non-data)
| descriptor decorator in the instance dict after the first call,
| effectively replacing the decorator with an instance variable."""
|
| def __init__(self, wrapped):
| self.wrapped = wrapped
| try:
| self.__doc__ = wrapped.__doc__
| except: # pragma: no cover
| pass
|
| def __get__(self, inst, objtype=None):
| if inst is None:
| return self
| val = self.wrapped(inst)
| setattr(inst, self.wrapped.__name__, val)
| return val
|
|