cpython: 24238e89f938 (original) (raw)

Mercurial > cpython

changeset 73948:24238e89f938

Issue #13577: various kinds of descriptors now have a __qualname__ attribute. Patch by sbt. [#13577]

Antoine Pitrou solipsis@pitrou.net
date Mon, 12 Dec 2011 13:47:25 +0100
parents 3ad7d01acbf4
children 021e5bb297d1
files Include/descrobject.h Lib/test/test_descr.py Lib/test/test_sys.py Objects/descrobject.c
diffstat 4 files changed, 74 insertions(+), 4 deletions(-)[+] [-] Include/descrobject.h 1 Lib/test/test_descr.py 18 Lib/test/test_sys.py 8 Objects/descrobject.c 51

line wrap: on

line diff

--- a/Include/descrobject.h +++ b/Include/descrobject.h @@ -42,6 +42,7 @@ typedef struct { PyObject_HEAD PyTypeObject *d_type; PyObject *d_name;

} PyDescrObject; #define PyDescr_COMMON PyDescrObject d_common

--- a/Lib/test/test_descr.py +++ b/Lib/test/test_descr.py @@ -4442,6 +4442,24 @@ order (MRO) for bases """ self.assertIn("can't delete X.doc", str(cm.exception)) self.assertEqual(X.doc, "banana")

+

+

+

+ + class DictProxyTests(unittest.TestCase): def setUp(self): class C(object):

--- a/Lib/test/test_sys.py +++ b/Lib/test/test_sys.py @@ -670,17 +670,17 @@ class SizeofTest(unittest.TestCase): # complex check(complex(0,1), size(h + '2d')) # method_descriptor (descriptor object)

--- a/Objects/descrobject.c +++ b/Objects/descrobject.c @@ -9,6 +9,7 @@ descr_dealloc(PyDescrObject *descr) _PyObject_GC_UNTRACK(descr); Py_XDECREF(descr->d_type); Py_XDECREF(descr->d_name);

@@ -321,6 +322,44 @@ method_get_doc(PyMethodDescrObject *desc return PyUnicode_FromString(descr->d_method->ml_doc); } +static PyObject * +calculate_qualname(PyDescrObject *descr) +{

+

+

+

+

+} + +static PyObject * +descr_get_qualname(PyDescrObject *descr) +{

+} + static PyMemberDef descr_members[] = { {"objclass", T_OBJECT, offsetof(PyDescrObject, d_type), READONLY}, {"name", T_OBJECT, offsetof(PyDescrObject, d_name), READONLY}, @@ -329,6 +368,7 @@ static PyMemberDef descr_members[] = { static PyGetSetDef method_getset[] = { {"doc", (getter)method_get_doc},

+} + static PyGetSetDef wrapper_getsets[] = { {"objclass", (getter)wrapper_objclass}, {"name", (getter)wrapper_name},