cdef class A: @staticmethod def static_def(int x): """ >>> A.static_def(2) ('def', 2) >>> A().static_def(2) ('def', 2) """ return 'def', x @staticmethod cdef static_cdef(int* x): return 'cdef', x[0] @staticmethod cdef static_cdef2(int* x, int* y): return 'cdef2', x[0] + y[0] @staticmethod cdef static_cdef_untyped(a, b): return 'cdef_utyped', a, b # @staticmethod # cpdef static_cpdef(int x): # """ # >>> A.static_def # >>> A.static_cpdef # # >>> A().static_def # >>> A().static_cpdef # # >>> A.static_cpdef(2) # ('cpdef', 2) # >>> A().static_cpdef(2) # ('cpdef', 2) # """ # return 'cpdef', x def call_static_def(int x): """ >>> call_static_def(2) ('def', 2) """ return A.static_def(x) def call_static_cdef(int x): """ >>> call_static_cdef(2) ('cdef', 2) """ cdef int *x_ptr = &x return A.static_cdef(x_ptr) def call_static_cdef2(int x, int y): """ >>> call_static_cdef2(2, 3) ('cdef2', 5) """ return A.static_cdef2(&x, &y) def call_static_list_comprehension_GH1540(int x): """ >>> call_static_list_comprehension_GH1540(5) [('cdef', 5), ('cdef', 5), ('cdef', 5)] """ return [A.static_cdef(&x) for _ in range(3)] # BROKEN #def call_static_cdef_untyped(a, b): # """ # >>> call_static_cdef_untyped(100, None) # ('cdef_untyped', 100, None) # """ # return A.static_cdef_untyped(a, b) # UNIMPLEMENTED # def call_static_cpdef(int x): # """ # >>> call_static_cpdef(2) # ('cpdef', 2) # """ # return A.static_cpdef(x) cdef class FromPxd: @staticmethod cdef static_cdef(int* x): return 'pxd_cdef', x[0] def call_static_pxd_cdef(int x): """ >>> call_static_pxd_cdef(2) ('pxd_cdef', 2) """ cdef int *x_ptr = &x return FromPxd.static_cdef(x_ptr)