summaryrefslogtreecommitdiffstats
path: root/Include
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
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')
-rw-r--r--Include/bytesobject.h1
-rw-r--r--Include/descrobject.h5
-rw-r--r--Include/dictobject.h13
-rw-r--r--Include/iterobject.h4
-rw-r--r--Include/listobject.h3
-rw-r--r--Include/rangeobject.h2
-rw-r--r--Include/setobject.h1
-rw-r--r--Include/stringobject.h1
-rw-r--r--Include/tupleobject.h1
-rw-r--r--Include/unicodeobject.h1
10 files changed, 31 insertions, 1 deletions
diff --git a/Include/bytesobject.h b/Include/bytesobject.h
index 4d9c53f..e9c319c 100644
--- a/Include/bytesobject.h
+++ b/Include/bytesobject.h
@@ -29,6 +29,7 @@ typedef struct {
/* Type object */
PyAPI_DATA(PyTypeObject) PyBytes_Type;
+PyAPI_DATA(PyTypeObject) PyBytesIter_Type;
/* Type check macros */
#define PyBytes_Check(self) PyObject_TypeCheck(self, &PyBytes_Type)
diff --git a/Include/descrobject.h b/Include/descrobject.h
index a45a801..badfa5b 100644
--- a/Include/descrobject.h
+++ b/Include/descrobject.h
@@ -67,7 +67,12 @@ typedef struct {
void *d_wrapped; /* This can be any function pointer */
} PyWrapperDescrObject;
+PyAPI_DATA(PyTypeObject) PyClassMethodDescr_Type;
+PyAPI_DATA(PyTypeObject) PyGetSetDescr_Type;
+PyAPI_DATA(PyTypeObject) PyMemberDescr_Type;
+PyAPI_DATA(PyTypeObject) PyMethodDescr_Type;
PyAPI_DATA(PyTypeObject) PyWrapperDescr_Type;
+PyAPI_DATA(PyTypeObject) PyDictProxy_Type;
PyAPI_FUNC(PyObject *) PyDescr_NewMethod(PyTypeObject *, PyMethodDef *);
PyAPI_FUNC(PyObject *) PyDescr_NewClassMethod(PyTypeObject *, PyMethodDef *);
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);
diff --git a/Include/iterobject.h b/Include/iterobject.h
index 12853b4..ba1b482 100644
--- a/Include/iterobject.h
+++ b/Include/iterobject.h
@@ -6,12 +6,14 @@ extern "C" {
#endif
PyAPI_DATA(PyTypeObject) PySeqIter_Type;
+PyAPI_DATA(PyTypeObject) PyCallIter_Type;
+PyAPI_DATA(PyTypeObject) PyZipIter_Type;
+PyAPI_DATA(PyTypeObject) PyCmpWrapper_Type;
#define PySeqIter_Check(op) (Py_Type(op) == &PySeqIter_Type)
PyAPI_FUNC(PyObject *) PySeqIter_New(PyObject *);
-PyAPI_DATA(PyTypeObject) PyCallIter_Type;
#define PyCallIter_Check(op) (Py_Type(op) == &PyCallIter_Type)
diff --git a/Include/listobject.h b/Include/listobject.h
index e8b192a..d395889 100644
--- a/Include/listobject.h
+++ b/Include/listobject.h
@@ -39,6 +39,9 @@ typedef struct {
} PyListObject;
PyAPI_DATA(PyTypeObject) PyList_Type;
+PyAPI_DATA(PyTypeObject) PyListIter_Type;
+PyAPI_DATA(PyTypeObject) PyListRevIter_Type;
+PyAPI_DATA(PyTypeObject) PySortWrapper_Type;
#define PyList_Check(op) \
PyType_FastSubclass(Py_Type(op), Py_TPFLAGS_LIST_SUBCLASS)
diff --git a/Include/rangeobject.h b/Include/rangeobject.h
index 2403807..2746454 100644
--- a/Include/rangeobject.h
+++ b/Include/rangeobject.h
@@ -16,6 +16,8 @@ they are represented by a start, stop, and step datamembers.
*/
PyAPI_DATA(PyTypeObject) PyRange_Type;
+PyAPI_DATA(PyTypeObject) PyRangeIter_Type;
+PyAPI_DATA(PyTypeObject) PyLongRangeIter_Type;
#define PyRange_Check(op) (Py_Type(op) == &PyRange_Type)
diff --git a/Include/setobject.h b/Include/setobject.h
index 8914749..5b97fcb 100644
--- a/Include/setobject.h
+++ b/Include/setobject.h
@@ -58,6 +58,7 @@ struct _setobject {
PyAPI_DATA(PyTypeObject) PySet_Type;
PyAPI_DATA(PyTypeObject) PyFrozenSet_Type;
+PyAPI_DATA(PyTypeObject) PySetIter_Type;
/* Invariants for frozensets:
* data is immutable.
diff --git a/Include/stringobject.h b/Include/stringobject.h
index 8241f1e..184bcdd 100644
--- a/Include/stringobject.h
+++ b/Include/stringobject.h
@@ -40,6 +40,7 @@ typedef struct {
} PyStringObject;
PyAPI_DATA(PyTypeObject) PyString_Type;
+PyAPI_DATA(PyTypeObject) PyStringIter_Type;
#define PyString_Check(op) \
PyType_FastSubclass(Py_Type(op), Py_TPFLAGS_STRING_SUBCLASS)
diff --git a/Include/tupleobject.h b/Include/tupleobject.h
index 423103a..7e9cdb5 100644
--- a/Include/tupleobject.h
+++ b/Include/tupleobject.h
@@ -32,6 +32,7 @@ typedef struct {
} PyTupleObject;
PyAPI_DATA(PyTypeObject) PyTuple_Type;
+PyAPI_DATA(PyTypeObject) PyTupleIter_Type;
#define PyTuple_Check(op) \
PyType_FastSubclass(Py_Type(op), Py_TPFLAGS_TUPLE_SUBCLASS)
diff --git a/Include/unicodeobject.h b/Include/unicodeobject.h
index f3c37fe..4e94f76 100644
--- a/Include/unicodeobject.h
+++ b/Include/unicodeobject.h
@@ -417,6 +417,7 @@ typedef struct {
} PyUnicodeObject;
PyAPI_DATA(PyTypeObject) PyUnicode_Type;
+PyAPI_DATA(PyTypeObject) PyUnicodeIter_Type;
#define SSTATE_NOT_INTERNED 0
#define SSTATE_INTERNED_MORTAL 1