@@ -36,7 +36,12 @@ cdef class Reducer:
3636 object dummy, f, labels, typ, ityp, index
3737 ndarray arr
3838
39- def __init__ (self , ndarray arr , object f , axis = 1 , dummy = None , labels = None ):
39+ def __init__ (
40+ self , ndarray arr , object f , int axis = 1 , object dummy = None , object labels = None
41+ ):
42+ cdef:
43+ Py_ssize_t n, k
44+
4045 n, k = (< object > arr).shape
4146
4247 if axis == 0 :
@@ -60,7 +65,7 @@ cdef class Reducer:
6065 self .dummy, self .typ, self .index, self .ityp = self ._check_dummy(
6166 dummy = dummy)
6267
63- cdef _check_dummy(self , dummy = None ):
68+ cdef _check_dummy(self , object dummy = None ):
6469 cdef:
6570 object index = None , typ = None , ityp = None
6671
@@ -147,7 +152,7 @@ cdef class Reducer:
147152
148153
149154cdef class _BaseGrouper:
150- cdef _check_dummy(self , dummy):
155+ cdef _check_dummy(self , object dummy):
151156 # both values and index must be an ndarray!
152157
153158 values = dummy.values
@@ -190,13 +195,16 @@ cdef class _BaseGrouper:
190195 """
191196 Call self.f on our new group, then update to the next group.
192197 """
198+ cdef:
199+ object res
200+
193201 cached_ityp._engine.clear_mapping()
194202 res = self .f(cached_typ)
195203 res = _extract_result(res)
196204 if not initialized:
197205 # On the first pass, we check the output shape to see
198206 # if this looks like a reduction.
199- initialized = 1
207+ initialized = True
200208 _check_result_array(res, len (self .dummy_arr))
201209
202210 islider.advance(group_size)
@@ -534,7 +542,11 @@ cdef class BlockSlider:
534542 cdef:
535543 char ** base_ptrs
536544
537- def __init__ (self , frame ):
545+ def __init__ (self , object frame ):
546+ cdef:
547+ Py_ssize_t i
548+ object b
549+
538550 self .frame = frame
539551 self .dummy = frame[:0 ]
540552 self .index = self .dummy.index
0 commit comments