[Checkins] SVN: Missing/trunk/ Added a __class__ to Missing.Value objects - this is based on the chameleon_fix branch

Hanno Schlichting hannosch at hannosch.eu
Wed Jun 16 08:59:49 EDT 2010


Log message for revision 113527:
  Added a __class__ to Missing.Value objects - this is based on the chameleon_fix branch
  

Changed:
  U   Missing/trunk/CHANGES.txt
  U   Missing/trunk/src/Missing/_Missing.c
  U   Missing/trunk/src/Missing/tests.py

-=-
Modified: Missing/trunk/CHANGES.txt
===================================================================
--- Missing/trunk/CHANGES.txt	2010-06-16 12:31:28 UTC (rev 113526)
+++ Missing/trunk/CHANGES.txt	2010-06-16 12:59:48 UTC (rev 113527)
@@ -4,6 +4,7 @@
 2.13.1 (unreleased)
 -------------------
 
+- Added a ``__class__`` to Missing.Value objects.
 
 2.13.0 (2010-03-30)
 -------------------

Modified: Missing/trunk/src/Missing/_Missing.c
===================================================================
--- Missing/trunk/src/Missing/_Missing.c	2010-06-16 12:31:28 UTC (rev 113526)
+++ Missing/trunk/src/Missing/_Missing.c	2010-06-16 12:59:48 UTC (rev 113527)
@@ -187,6 +187,11 @@
     }
   else legal=NULL;
 
+  if (strcmp(c,"__class__")==0)
+    {
+        return Py_FindAttrString(self, c);
+    }
+
   if(! legal)
     {
       if(strcmp(c,"__reduce__")==0)
@@ -229,7 +234,7 @@
 static PyExtensionClass MissingType = {
   PyObject_HEAD_INIT(NULL)
   0,					/*ob_size*/
-  "Missing",				/*tp_name*/
+  "Missing.Value",			/*tp_name*/
   sizeof(Missing),			/*tp_basicsize*/
   0,					/*tp_itemsize*/
   /* methods */

Modified: Missing/trunk/src/Missing/tests.py
===================================================================
--- Missing/trunk/src/Missing/tests.py	2010-06-16 12:31:28 UTC (rev 113526)
+++ Missing/trunk/src/Missing/tests.py	2010-06-16 12:59:48 UTC (rev 113527)
@@ -32,9 +32,27 @@
 1
 >>> Value == Value + 1
 1
+>>> Value.__class__
+<type 'Missing.Value'>
 
-$Id$
+>>> type(Value())
+<type 'Missing.Value'>
+
+>>> from Missing import MV
+
+>>> MV.__class__
+<type 'Missing.Value'>
+>>> type(MV())
+<type 'Missing.Value'>
+
+>>> from Missing import V
+
+>>> V.__class__
+<type 'Missing.Value'>
+>>> type(V())
+<type 'Missing.Value'>
 """
+
 import unittest
 from doctest import DocTestSuite
 
@@ -42,5 +60,3 @@
     return unittest.TestSuite((
         DocTestSuite(),
         ))
-
-if __name__ == '__main__': unittest.main()



More information about the checkins mailing list