dicttoolz.pxd 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. from cpython.ref cimport PyObject
  2. # utility functions to perform iteration over dicts or generic mapping
  3. cdef class _iter_mapping:
  4. cdef object it
  5. cdef object cur
  6. ctypedef int (*f_map_next)(object p, Py_ssize_t *ppos, PyObject* *pkey, PyObject* *pval) except -1
  7. cdef f_map_next get_map_iter(object d, PyObject* *ptr) except NULL
  8. cdef int PyMapping_Next(object p, Py_ssize_t *ppos, PyObject* *pkey, PyObject* *pval) except -1
  9. cdef object c_merge(object dicts, object factory=*)
  10. cdef object c_merge_with(object func, object dicts, object factory=*)
  11. cpdef object valmap(object func, object d, object factory=*)
  12. cpdef object keymap(object func, object d, object factory=*)
  13. cpdef object itemmap(object func, object d, object factory=*)
  14. cpdef object valfilter(object predicate, object d, object factory=*)
  15. cpdef object keyfilter(object predicate, object d, object factory=*)
  16. cpdef object itemfilter(object predicate, object d, object factory=*)
  17. cpdef object assoc(object d, object key, object value, object factory=*)
  18. cpdef object assoc_in(object d, object keys, object value, object factory=*)
  19. cdef object c_dissoc(object d, object keys, object factory=*)
  20. cpdef object update_in(object d, object keys, object func, object default=*, object factory=*)
  21. cpdef object get_in(object keys, object coll, object default=*, object no_default=*)