]> granicus.if.org Git - python/commitdiff
Add a few ``__dynamic__ = 0'' lines in classes that need to preserve
authorGuido van Rossum <guido@python.org>
Sat, 29 Sep 2001 00:40:25 +0000 (00:40 +0000)
committerGuido van Rossum <guido@python.org>
Sat, 29 Sep 2001 00:40:25 +0000 (00:40 +0000)
staticness when __dynamic__ = 1 becomes the default:

- Some classes which are used to test the difference between static
  and dynamic.

- Subclasses of complex: complex uses old-style numbers and the slot
  wrappers used by dynamic classes only support new-style numbers.
  (Ideally, the complex type should be fixed, but that looks like a
  labor-intensive job.)

Lib/test/test_descr.py

index 22ae09a983da8316b716c5e9daa69c6096e1a9c9..f709233a25b050c952a8e3f6ecc368431706e7f6 100644 (file)
@@ -832,9 +832,10 @@ def dynamics():
     verify(list.__dynamic__ == 0)
     class S1:
         __metaclass__ = type
+        __dynamic__ = 0
     verify(S1.__dynamic__ == 0)
     class S(object):
-        pass
+        __dynamic__ = 0
     verify(S.__dynamic__ == 0)
     class D(object):
         __dynamic__ = 1
@@ -1522,6 +1523,7 @@ def inherits():
     verify((+a).__class__ is float)
 
     class madcomplex(complex):
+        __dynamic__ = 0
         def __repr__(self):
             return "%.17gj%+.17g" % (self.imag, self.real)
     a = madcomplex(-3, 4)
@@ -1901,11 +1903,12 @@ def rich_comparisons():
     if verbose:
         print "Testing rich comparisons..."
     class Z(complex):
-        pass
+        __dynamic__ = 0
     z = Z(1)
     verify(z == 1+0j)
     verify(1+0j == z)
     class ZZ(complex):
+        __dynamic__ = 0
         def __eq__(self, other):
             try:
                 return abs(self - other) <= 1e-6
@@ -1992,7 +1995,8 @@ def coercions():
     coerce(0, F(0))
     coerce(0L, F(0))
     coerce(0., F(0))
-    class C(complex): pass
+    class C(complex):
+        __dynamic__ = 0
     coerce(C(0), 0)
     coerce(C(0), 0L)
     coerce(C(0), 0.)