1from cpython.ref cimport PyObject 2 3# utility functions to perform iteration over dicts or generic mapping 4cdef class _iter_mapping: 5 cdef object it 6 cdef object cur 7 8ctypedef int (*f_map_next)(object p, Py_ssize_t *ppos, PyObject* *pkey, PyObject* *pval) except -1 9 10cdef f_map_next get_map_iter(object d, PyObject* *ptr) except NULL 11 12cdef int PyMapping_Next(object p, Py_ssize_t *ppos, PyObject* *pkey, PyObject* *pval) except -1 13 14 15cdef object c_merge(object dicts, object factory=*) 16 17 18cdef object c_merge_with(object func, object dicts, object factory=*) 19 20 21cpdef object valmap(object func, object d, object factory=*) 22 23 24cpdef object keymap(object func, object d, object factory=*) 25 26 27cpdef object itemmap(object func, object d, object factory=*) 28 29 30cpdef object valfilter(object predicate, object d, object factory=*) 31 32 33cpdef object keyfilter(object predicate, object d, object factory=*) 34 35 36cpdef object itemfilter(object predicate, object d, object factory=*) 37 38 39cpdef object assoc(object d, object key, object value, object factory=*) 40 41 42cpdef object assoc_in(object d, object keys, object value, object factory=*) 43 44 45cdef object c_dissoc(object d, object keys, object factory=*) 46 47 48cpdef object update_in(object d, object keys, object func, object default=*, object factory=*) 49 50 51cpdef object get_in(object keys, object coll, object default=*, object no_default=*) 52