@@ -27,9 +27,14 @@ def _get_personality(self):
2727 return 'Nice person'
2828
2929 personality = CachedProperty(_get_personality)
30-
30+
31+ You can also put in a value as the first argument if you'd like to have it
32+ returned instead of using a getter. (It can be a totally static value like
33+ `0`). If this value happens to be a callable but you'd still like it to be
34+ used as a static value, use `force_value_not_getter=True`.
3135 '''
32- def __init__ (self , getter_or_value , doc = None , name = None ):
36+ def __init__ (self , getter_or_value , doc = None , name = None ,
37+ force_value_not_getter = False ):
3338 '''
3439 Construct the cached property.
3540
@@ -41,8 +46,10 @@ def __init__(self, getter_or_value, doc=None, name=None):
4146 class; this will save a bit of processing later.
4247 '''
4348 misc_tools .OwnNameDiscoveringDescriptor .__init__ (self , name = name )
44- self .getter = getter_or_value if callable (getter_or_value ) \
45- else lambda thing : getter_or_value
49+ if callable (getter_or_value ) and not force_value_not_getter :
50+ self .getter = getter_or_value
51+ else :
52+ self .getter = lambda thing : getter_or_value
4653 self .__doc__ = doc or getattr (self .getter , '__doc__' , None )
4754
4855
0 commit comments