debian-jplephem/jplephem/descriptorlib.py

15 lines
430 B
Python

from functools import update_wrapper
class reify(object):
"""Adapted from Pyramid's `reify()` memoizing decorator."""
def __init__(self, method):
self.method = method
update_wrapper(self, method)
def __get__(self, instance, objtype=None):
if instance is None:
return self
value = self.method(instance)
instance.__dict__[self.__name__] = value
return value