1. 10 Sep, 2001 23 commits
  2. 09 Sep, 2001 6 commits
  3. 08 Sep, 2001 7 commits
  4. 07 Sep, 2001 4 commits
    • Guido van Rossum's avatar
      PyClass_New(): put the extended Don Beaudry hook back in. When one of · 7afb0fa4
      Guido van Rossum authored
      the base classes is not a classic class, and its class (the metaclass)
      is callable, call the metaclass to do the deed.
      
      One effect of this is that, when mixing classic and new-style classes
      amongst the bases of a class, it doesn't matter whether the first base
      class is a classic class or not: you will always get the error
      "TypeError: metatype conflict among bases".  (Formerly, with a classic
      class first, you'd get "TypeError: PyClass_New: base must be a class".)
      
      Another effect is that multiple inheritance from ExtensionClass.Base,
      with a classic class as the first class, transfers control to the
      ExtensionClass.Base class.  This is what we need for SF #443239 (and
      also for running Zope under 2.2a4, before ExtensionClass is replaced).
      7afb0fa4
    • Guido van Rossum's avatar
      PySequence_Check(), PyMapping_Check(): only return true if the · 64063368
      Guido van Rossum authored
      corresponding "getitem" operation (sq_item or mp_subscript) is
      implemented.  I realize that "sequence-ness" and "mapping-ness" are
      poorly defined (and the tests may still be wrong for user-defined
      instances, which always have both slots filled), but I believe that a
      sequence that doesn't support its getitem operation should not be
      considered a sequence.  All other operations are optional though.
      
      For example, the ZODB BTree tests crashed because PySequence_Check()
      returned true for a dictionary!  (In 2.2, the dictionary type has a
      tp_as_sequence pointer, but the only field filled is sq_contains, so
      you can write "if key in dict".)  With this fix, all standalone ZODB
      tests succeed.
      64063368
    • Guido van Rossum's avatar
      PyType_IsSubtype(): test tp_flags for HAVE_CLASS bit before accessing · c7edfe5e
      Guido van Rossum authored
      a->tp_mro.  If a doesn't have class, it's considered a subclass only
      of itself or of 'object'.
      
      This one fix is enough to prevent the ExtensionClass test suite from
      dumping core, but that doesn't say much (it's a rather small test
      suite).  Also note that for ExtensionClass-defined types, a different
      subclass test may be needed.  But I haven't checked whether
      PyType_IsSubtype() is actually used in situations where this matters
      -- probably it doesn't, since we also don't check for classic classes.
      c7edfe5e
    • Barry Warsaw's avatar
      Bumping version numbers. · d01dc1d9
      Barry Warsaw authored
      d01dc1d9