@@ -6,22 +6,22 @@ from cpython cimport (
6
6
PyDict_Contains, PyDict_GetItem, PyDict_SetItem)
7
7
8
8
9
- cdef class cache_readonly (object ):
9
+ cdef class CachedProperty (object ):
10
10
11
11
cdef readonly:
12
- object func, name, doc , allow_setting
12
+ object func, name, __doc__ , allow_setting
13
13
14
14
def __init__ (self , func = None , allow_setting = False ):
15
15
if func is not None :
16
16
self .func = func
17
17
self .name = func.__name__
18
- self .doc = getattr (func, ' __doc__' , None )
18
+ self .__doc__ = getattr (func, ' __doc__' , None )
19
19
self .allow_setting = allow_setting
20
20
21
21
def __call__ (self , func , doc = None ):
22
22
self .func = func
23
23
self .name = func.__name__
24
- self .doc = getattr (func, ' __doc__' , None )
24
+ self .__doc__ = getattr (func, ' __doc__' , None )
25
25
return self
26
26
27
27
def __get__ (self , obj , typ ):
@@ -32,7 +32,7 @@ cdef class cache_readonly(object):
32
32
try :
33
33
cache = obj._cache = {}
34
34
except (AttributeError ):
35
- return type ( ' cached ' , ( object , ), { ' __doc__ ' : self .doc})
35
+ return self
36
36
37
37
if PyDict_Contains(cache, self .name):
38
38
# not necessary to Py_INCREF
@@ -57,6 +57,10 @@ cdef class cache_readonly(object):
57
57
58
58
PyDict_SetItem(cache, self .name, value)
59
59
60
+
61
+ cache_readonly = CachedProperty
62
+
63
+
60
64
cdef class AxisProperty(object ):
61
65
cdef:
62
66
Py_ssize_t axis
0 commit comments