| 93 | __original_doc__ = '' |
| 94 | |
| 95 | def __init__(self, fget=MISSING, fset=None, doc=None, *, |
| 96 | values=None, units=None, limits=None, procs=None, |
| 97 | read_once=False): |
| 98 | self.fget = fget |
| 99 | self.fset = fset |
| 100 | self.__doc__ = doc |
| 101 | self.name = '?' |
| 102 | |
| 103 | #: instance: value |
| 104 | self.value = WeakKeyDictionary() |
| 105 | |
| 106 | #: instance: key: value |
| 107 | self.modifiers = WeakKeyDictionary() |
| 108 | self.get_processors = WeakKeyDictionary() |
| 109 | self.set_processors = WeakKeyDictionary() |
| 110 | |
| 111 | # Take documentation from fget or fset |
| 112 | # if not provided explicitly. |
| 113 | if self.__doc__ is None: |
| 114 | if fget is not MISSING and fget.__doc__: |
| 115 | self.__doc__ = fget.__doc__ |
| 116 | elif fset and fset.__doc__: |
| 117 | self.__doc__ = fset.__doc__ |
| 118 | |
| 119 | self.modifiers[MISSING] = {MISSING: {'values': values, |
| 120 | 'units': units, |
| 121 | 'limits': limits, |
| 122 | 'processors': procs}} |
| 123 | self.get_processors[MISSING] = {MISSING: ()} |
| 124 | self.set_processors[MISSING] = {MISSING: ()} |
| 125 | |
| 126 | self.read_once = read_once |
| 127 | |
| 128 | self.rebuild(build_doc=True, store=True) |
| 129 | |
| 130 | def rebuild(self, instance=MISSING, key=MISSING, build_doc=False, modifiers=None, store=False): |
| 131 | if not modifiers: |