libaaron/libaaron.py
def cached(method) -> property:
    """alternative to reify and property decorators. caches the value when it's
    generated. It cashes it as instance._name_of_the_property.
    """
    name = "_" + method.__name__

    @property
    def wrapper(self):
        try:
            return getattr(self, name)
        except AttributeError:
            val = method(self)
            setattr(self, name, val)
            return val

    return wrapper
def cached(method) -> property:
    """alternative to reify and property decorators. caches the value when it's
    generated. It cashes it as instance._name_of_the_property.
    """
    name = "_" + method.__name__

    @property
    def wrapper(self):
        try:
            return getattr(self, name)
        except AttributeError:
            val = method(self)
            setattr(self, name, val)
            return val

    return wrapper
def cached ( method ) -> property : name = "_" + method . __name__ @ property def wrapper ( self ) : try : return getattr ( self , name ) except AttributeError : val = method ( self ) setattr ( self , name , val ) return val return wrapper
alternative to reify and property decorators. caches the value when it's
    generated. It cashes it as instance._name_of_the_property.
alternative to reify and property decorators . caches the value when it s generated . It cashes it as instance . _name_of_the_property .