summaryrefslogtreecommitdiffstats
path: root/Include/dictobject.h
diff options
context:
space:
mode:
authorChristian Heimes <christian@cheimes.de>2007-11-29 22:35:39 (GMT)
committerChristian Heimes <christian@cheimes.de>2007-11-29 22:35:39 (GMT)
commita22e8bdfd92cd4f1bc3d60e91df6410c4efde6a0 (patch)
tree8f865b488f65ff8bab485bafe1cdd8516a65c679 /Include/dictobject.h
parent513b2ac76c1f56f5a6e0d07fee57d823819ee873 (diff)
downloadcpython-a22e8bdfd92cd4f1bc3d60e91df6410c4efde6a0.zip
cpython-a22e8bdfd92cd4f1bc3d60e91df6410c4efde6a0.tar.gz
cpython-a22e8bdfd92cd4f1bc3d60e91df6410c4efde6a0.tar.bz2
Added all PyTypeObjects to the appropriate header files.
Before the patch a lot of internal types weren't available in the header files. The patch exposes the new iterators, views and some other types to all C modules. I've also renamed some of the types and tp_names.
Diffstat (limited to 'Include/dictobject.h')
-rw-r--r--Include/dictobject.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/Include/dictobject.h b/Include/dictobject.h
index fec6295..0d8a09b 100644
--- a/Include/dictobject.h
+++ b/Include/dictobject.h
@@ -89,10 +89,23 @@ struct _dictobject {
};
PyAPI_DATA(PyTypeObject) PyDict_Type;
+PyAPI_DATA(PyTypeObject) PyDictIterKey_Type;
+PyAPI_DATA(PyTypeObject) PyDictIterValue_Type;
+PyAPI_DATA(PyTypeObject) PyDictIterItem_Type;
+PyAPI_DATA(PyTypeObject) PyDictKeys_Type;
+PyAPI_DATA(PyTypeObject) PyDictItems_Type;
+PyAPI_DATA(PyTypeObject) PyDictValues_Type;
#define PyDict_Check(op) \
PyType_FastSubclass(Py_Type(op), Py_TPFLAGS_DICT_SUBCLASS)
#define PyDict_CheckExact(op) (Py_Type(op) == &PyDict_Type)
+#define PyDictKeys_Check(op) (Py_Type(op) == &PyDictKeys_Type)
+#define PyDictItems_Check(op) (Py_Type(op) == &PyDictItems_Type)
+#define PyDictValues_Check(op) (Py_Type(op) == &PyDictValues_Type)
+/* This excludes Values, since they are not sets. */
+# define PyDictViewSet_Check(op) \
+ (PyDictKeys_Check(op) || PyDictItems_Check(op))
+
PyAPI_FUNC(PyObject *) PyDict_New(void);
PyAPI_FUNC(PyObject *) PyDict_GetItem(PyObject *mp, PyObject *key);