[Python-3000-checkins] r59229 - in python/branches/py3k: Include/bytesobject.h Include/descrobject.h Include/dictobject.h Include/iterobject.h Include/listobject.h Include/rangeobject.h Include/setobject.h Include/stringobject.h Include/tupleobject.h Include/unicodeobject.h Objects/descrobject.c Objects/dictobject.c Objects/iterobject.c Objects/listobject.c Objects/rangeobject.c Objects/setobject.c Objects/tupleobject.c
christian.heimes
python-3000-checkins at python.org
Thu Nov 29 23:35:39 CET 2007
Author: christian.heimes
Date: Thu Nov 29 23:35:39 2007
New Revision: 59229
Modified:
python/branches/py3k/Include/bytesobject.h
python/branches/py3k/Include/descrobject.h
python/branches/py3k/Include/dictobject.h
python/branches/py3k/Include/iterobject.h
python/branches/py3k/Include/listobject.h
python/branches/py3k/Include/rangeobject.h
python/branches/py3k/Include/setobject.h
python/branches/py3k/Include/stringobject.h
python/branches/py3k/Include/tupleobject.h
python/branches/py3k/Include/unicodeobject.h
python/branches/py3k/Objects/descrobject.c
python/branches/py3k/Objects/dictobject.c
python/branches/py3k/Objects/iterobject.c
python/branches/py3k/Objects/listobject.c
python/branches/py3k/Objects/rangeobject.c
python/branches/py3k/Objects/setobject.c
python/branches/py3k/Objects/tupleobject.c
Log:
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.
Modified: python/branches/py3k/Include/bytesobject.h
==============================================================================
--- python/branches/py3k/Include/bytesobject.h (original)
+++ python/branches/py3k/Include/bytesobject.h Thu Nov 29 23:35:39 2007
@@ -29,6 +29,7 @@
/* Type object */
PyAPI_DATA(PyTypeObject) PyBytes_Type;
+PyAPI_DATA(PyTypeObject) PyBytesIter_Type;
/* Type check macros */
#define PyBytes_Check(self) PyObject_TypeCheck(self, &PyBytes_Type)
Modified: python/branches/py3k/Include/descrobject.h
==============================================================================
--- python/branches/py3k/Include/descrobject.h (original)
+++ python/branches/py3k/Include/descrobject.h Thu Nov 29 23:35:39 2007
@@ -67,7 +67,12 @@
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 *);
Modified: python/branches/py3k/Include/dictobject.h
==============================================================================
--- python/branches/py3k/Include/dictobject.h (original)
+++ python/branches/py3k/Include/dictobject.h Thu Nov 29 23:35:39 2007
@@ -89,10 +89,23 @@
};
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);
Modified: python/branches/py3k/Include/iterobject.h
==============================================================================
--- python/branches/py3k/Include/iterobject.h (original)
+++ python/branches/py3k/Include/iterobject.h Thu Nov 29 23:35:39 2007
@@ -6,12 +6,14 @@
#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)
Modified: python/branches/py3k/Include/listobject.h
==============================================================================
--- python/branches/py3k/Include/listobject.h (original)
+++ python/branches/py3k/Include/listobject.h Thu Nov 29 23:35:39 2007
@@ -39,6 +39,9 @@
} 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)
Modified: python/branches/py3k/Include/rangeobject.h
==============================================================================
--- python/branches/py3k/Include/rangeobject.h (original)
+++ python/branches/py3k/Include/rangeobject.h Thu Nov 29 23:35:39 2007
@@ -16,6 +16,8 @@
*/
PyAPI_DATA(PyTypeObject) PyRange_Type;
+PyAPI_DATA(PyTypeObject) PyRangeIter_Type;
+PyAPI_DATA(PyTypeObject) PyLongRangeIter_Type;
#define PyRange_Check(op) (Py_Type(op) == &PyRange_Type)
Modified: python/branches/py3k/Include/setobject.h
==============================================================================
--- python/branches/py3k/Include/setobject.h (original)
+++ python/branches/py3k/Include/setobject.h Thu Nov 29 23:35:39 2007
@@ -58,6 +58,7 @@
PyAPI_DATA(PyTypeObject) PySet_Type;
PyAPI_DATA(PyTypeObject) PyFrozenSet_Type;
+PyAPI_DATA(PyTypeObject) PySetIter_Type;
/* Invariants for frozensets:
* data is immutable.
Modified: python/branches/py3k/Include/stringobject.h
==============================================================================
--- python/branches/py3k/Include/stringobject.h (original)
+++ python/branches/py3k/Include/stringobject.h Thu Nov 29 23:35:39 2007
@@ -40,6 +40,7 @@
} PyStringObject;
PyAPI_DATA(PyTypeObject) PyString_Type;
+PyAPI_DATA(PyTypeObject) PyStringIter_Type;
#define PyString_Check(op) \
PyType_FastSubclass(Py_Type(op), Py_TPFLAGS_STRING_SUBCLASS)
Modified: python/branches/py3k/Include/tupleobject.h
==============================================================================
--- python/branches/py3k/Include/tupleobject.h (original)
+++ python/branches/py3k/Include/tupleobject.h Thu Nov 29 23:35:39 2007
@@ -32,6 +32,7 @@
} PyTupleObject;
PyAPI_DATA(PyTypeObject) PyTuple_Type;
+PyAPI_DATA(PyTypeObject) PyTupleIter_Type;
#define PyTuple_Check(op) \
PyType_FastSubclass(Py_Type(op), Py_TPFLAGS_TUPLE_SUBCLASS)
Modified: python/branches/py3k/Include/unicodeobject.h
==============================================================================
--- python/branches/py3k/Include/unicodeobject.h (original)
+++ python/branches/py3k/Include/unicodeobject.h Thu Nov 29 23:35:39 2007
@@ -417,6 +417,7 @@
} PyUnicodeObject;
PyAPI_DATA(PyTypeObject) PyUnicode_Type;
+PyAPI_DATA(PyTypeObject) PyUnicodeIter_Type;
#define SSTATE_NOT_INTERNED 0
#define SSTATE_INTERNED_MORTAL 1
Modified: python/branches/py3k/Objects/descrobject.c
==============================================================================
--- python/branches/py3k/Objects/descrobject.c (original)
+++ python/branches/py3k/Objects/descrobject.c Thu Nov 29 23:35:39 2007
@@ -383,7 +383,7 @@
return 0;
}
-static PyTypeObject PyMethodDescr_Type = {
+PyTypeObject PyMethodDescr_Type = {
PyVarObject_HEAD_INIT(&PyType_Type, 0)
"method_descriptor",
sizeof(PyMethodDescrObject),
@@ -421,7 +421,7 @@
};
/* This is for METH_CLASS in C, not for "f = classmethod(f)" in Python! */
-static PyTypeObject PyClassMethodDescr_Type = {
+PyTypeObject PyClassMethodDescr_Type = {
PyVarObject_HEAD_INIT(&PyType_Type, 0)
"classmethod_descriptor",
sizeof(PyMethodDescrObject),
@@ -458,7 +458,7 @@
0, /* tp_descr_set */
};
-static PyTypeObject PyMemberDescr_Type = {
+PyTypeObject PyMemberDescr_Type = {
PyVarObject_HEAD_INIT(&PyType_Type, 0)
"member_descriptor",
sizeof(PyMemberDescrObject),
@@ -495,7 +495,7 @@
(descrsetfunc)member_set, /* tp_descr_set */
};
-static PyTypeObject PyGetSetDescr_Type = {
+PyTypeObject PyGetSetDescr_Type = {
PyVarObject_HEAD_INIT(&PyType_Type, 0)
"getset_descriptor",
sizeof(PyGetSetDescrObject),
@@ -786,7 +786,7 @@
return PyObject_RichCompare(v->dict, w, op);
}
-static PyTypeObject proxytype = {
+PyTypeObject PyDictProxy_Type = {
PyVarObject_HEAD_INIT(&PyType_Type, 0)
"dictproxy", /* tp_name */
sizeof(proxyobject), /* tp_basicsize */
@@ -829,7 +829,7 @@
{
proxyobject *pp;
- pp = PyObject_GC_New(proxyobject, &proxytype);
+ pp = PyObject_GC_New(proxyobject, &PyDictProxy_Type);
if (pp != NULL) {
Py_INCREF(dict);
pp->dict = dict;
Modified: python/branches/py3k/Objects/dictobject.c
==============================================================================
--- python/branches/py3k/Objects/dictobject.c (original)
+++ python/branches/py3k/Objects/dictobject.c Thu Nov 29 23:35:39 2007
@@ -1798,13 +1798,8 @@
return 0;
}
-
-extern PyTypeObject PyDictIterKey_Type; /* Forward */
-extern PyTypeObject PyDictIterValue_Type; /* Forward */
-extern PyTypeObject PyDictIterItem_Type; /* Forward */
static PyObject *dictiter_new(PyDictObject *, PyTypeObject *);
-
PyDoc_STRVAR(contains__doc__,
"D.__contains__(k) -> True if D has a key k, else False");
@@ -2401,19 +2396,6 @@
- if public then they should probably be in builtins
*/
-/* Forward */
-PyTypeObject PyDictKeys_Type;
-PyTypeObject PyDictItems_Type;
-PyTypeObject PyDictValues_Type;
-
-#define PyDictKeys_Check(obj) ((obj)->ob_type == &PyDictKeys_Type)
-#define PyDictItems_Check(obj) ((obj)->ob_type == &PyDictItems_Type)
-#define PyDictValues_Check(obj) ((obj)->ob_type == &PyDictValues_Type)
-
-/* This excludes Values, since they are not sets. */
-# define PyDictViewSet_Check(obj) \
- (PyDictKeys_Check(obj) || PyDictItems_Check(obj))
-
/* Return 1 if self is a subset of other, iterating over self;
0 if not; -1 if an error occurred. */
static int
Modified: python/branches/py3k/Objects/iterobject.c
==============================================================================
--- python/branches/py3k/Objects/iterobject.c (original)
+++ python/branches/py3k/Objects/iterobject.c Thu Nov 29 23:35:39 2007
@@ -199,7 +199,7 @@
PyTypeObject PyCallIter_Type = {
PyVarObject_HEAD_INIT(&PyType_Type, 0)
- "callable-iterator", /* tp_name */
+ "callable_iterator", /* tp_name */
sizeof(calliterobject), /* tp_basicsize */
0, /* tp_itemsize */
/* methods */
@@ -240,7 +240,7 @@
PyTupleObject *result; /* Reusable tuple for optimization */
} zipiterobject;
-static PyTypeObject PyZipIter_Type; /* Forward */
+ /* Forward */
PyObject *
_PyZip_CreateIter(PyObject* args)
@@ -367,7 +367,7 @@
return result;
}
-static PyTypeObject PyZipIter_Type = {
+PyTypeObject PyZipIter_Type = {
PyVarObject_HEAD_INIT(0, 0)
"zip_iterator", /* tp_name */
sizeof(zipiterobject), /* tp_basicsize */
Modified: python/branches/py3k/Objects/listobject.c
==============================================================================
--- python/branches/py3k/Objects/listobject.c (original)
+++ python/branches/py3k/Objects/listobject.c Thu Nov 29 23:35:39 2007
@@ -1790,7 +1790,7 @@
static void
sortwrapper_dealloc(sortwrapperobject *);
-static PyTypeObject sortwrapper_type = {
+PyTypeObject PySortWrapper_Type = {
PyVarObject_HEAD_INIT(&PyType_Type, 0)
"sortwrapper", /* tp_name */
sizeof(sortwrapperobject), /* tp_basicsize */
@@ -1822,7 +1822,7 @@
static PyObject *
sortwrapper_richcompare(sortwrapperobject *a, sortwrapperobject *b, int op)
{
- if (!PyObject_TypeCheck(b, &sortwrapper_type)) {
+ if (!PyObject_TypeCheck(b, &PySortWrapper_Type)) {
PyErr_SetString(PyExc_TypeError,
"expected a sortwrapperobject");
return NULL;
@@ -1846,7 +1846,7 @@
{
sortwrapperobject *so;
- so = PyObject_New(sortwrapperobject, &sortwrapper_type);
+ so = PyObject_New(sortwrapperobject, &PySortWrapper_Type);
if (so == NULL)
return NULL;
so->key = key;
@@ -1860,7 +1860,7 @@
{
PyObject *value;
- if (!PyObject_TypeCheck(so, &sortwrapper_type)) {
+ if (!PyObject_TypeCheck(so, &PySortWrapper_Type)) {
PyErr_SetString(PyExc_TypeError,
"expected a sortwrapperobject");
return NULL;
@@ -1893,8 +1893,8 @@
if (!PyArg_UnpackTuple(args, "", 2, 2, &x, &y))
return NULL;
- if (!PyObject_TypeCheck(x, &sortwrapper_type) ||
- !PyObject_TypeCheck(y, &sortwrapper_type)) {
+ if (!PyObject_TypeCheck(x, &PySortWrapper_Type) ||
+ !PyObject_TypeCheck(y, &PySortWrapper_Type)) {
PyErr_SetString(PyExc_TypeError,
"expected a sortwrapperobject");
return NULL;
@@ -1906,7 +1906,7 @@
PyDoc_STRVAR(cmpwrapper_doc, "cmp() wrapper for sort with custom keys.");
-static PyTypeObject cmpwrapper_type = {
+PyTypeObject PyCmpWrapper_Type = {
PyVarObject_HEAD_INIT(&PyType_Type, 0)
"cmpwrapper", /* tp_name */
sizeof(cmpwrapperobject), /* tp_basicsize */
@@ -1936,7 +1936,7 @@
{
cmpwrapperobject *co;
- co = PyObject_New(cmpwrapperobject, &cmpwrapper_type);
+ co = PyObject_New(cmpwrapperobject, &PyCmpWrapper_Type);
if (co == NULL)
return NULL;
Py_INCREF(cmpfunc);
Modified: python/branches/py3k/Objects/rangeobject.c
==============================================================================
--- python/branches/py3k/Objects/rangeobject.c (original)
+++ python/branches/py3k/Objects/rangeobject.c Thu Nov 29 23:35:39 2007
@@ -367,7 +367,7 @@
{NULL, NULL} /* sentinel */
};
-PyTypeObject Pyrangeiter_Type = {
+PyTypeObject PyRangeIter_Type = {
PyVarObject_HEAD_INIT(&PyType_Type, 0)
"range_iterator", /* tp_name */
sizeof(rangeiterobject), /* tp_basicsize */
@@ -441,7 +441,7 @@
static PyObject *
int_range_iter(long start, long stop, long step)
{
- rangeiterobject *it = PyObject_New(rangeiterobject, &Pyrangeiter_Type);
+ rangeiterobject *it = PyObject_New(rangeiterobject, &PyRangeIter_Type);
if (it == NULL)
return NULL;
it->start = start;
@@ -519,9 +519,9 @@
return result;
}
-static PyTypeObject Pylongrangeiter_Type = {
+PyTypeObject PyLongRangeIter_Type = {
PyVarObject_HEAD_INIT(&PyType_Type, 0)
- "rangeiterator", /* tp_name */
+ "longrange_iterator", /* tp_name */
sizeof(longrangeiterobject), /* tp_basicsize */
0, /* tp_itemsize */
/* methods */
@@ -567,7 +567,7 @@
PyLong_AsLong(r->stop),
PyLong_AsLong(r->step));
- it = PyObject_New(longrangeiterobject, &Pylongrangeiter_Type);
+ it = PyObject_New(longrangeiterobject, &PyLongRangeIter_Type);
if (it == NULL)
return NULL;
@@ -627,7 +627,7 @@
return int_range_iter(new_start, new_stop, -step);
}
- it = PyObject_New(longrangeiterobject, &Pylongrangeiter_Type);
+ it = PyObject_New(longrangeiterobject, &PyLongRangeIter_Type);
if (it == NULL)
return NULL;
Modified: python/branches/py3k/Objects/setobject.c
==============================================================================
--- python/branches/py3k/Objects/setobject.c (original)
+++ python/branches/py3k/Objects/setobject.c Thu Nov 29 23:35:39 2007
@@ -849,7 +849,7 @@
return NULL;
}
-static PyTypeObject PySetIter_Type = {
+PyTypeObject PySetIter_Type = {
PyVarObject_HEAD_INIT(&PyType_Type, 0)
"set_iterator", /* tp_name */
sizeof(setiterobject), /* tp_basicsize */
Modified: python/branches/py3k/Objects/tupleobject.c
==============================================================================
--- python/branches/py3k/Objects/tupleobject.c (original)
+++ python/branches/py3k/Objects/tupleobject.c Thu Nov 29 23:35:39 2007
@@ -840,7 +840,7 @@
PyTypeObject PyTupleIter_Type = {
PyVarObject_HEAD_INIT(&PyType_Type, 0)
- "tupleiterator", /* tp_name */
+ "tuple_iterator", /* tp_name */
sizeof(tupleiterobject), /* tp_basicsize */
0, /* tp_itemsize */
/* methods */
More information about the Python-3000-checkins
mailing list