On Wed, 2002-09-04 at 02:02, Edmund Lian wrote:
> On 09/04/2002 02:41:19 AM Ian Bicking wrote:
> >It *is* 2.2 compatible (AFAIK), I think you are proposing that it should
> >use 2.2 features. This would make it incompatible with pre-2.2 Python.
> Are you sure about this Ian? AFAIK, calls like super() and use of the new
> multiple inheritance method resolution algorithm are only possible with new
> style classes. Since none of the Webware servlet classes uses 'object' (as
> opposed to 'Object', the mother of all Webware objects) as a base class,
> then by default none of the servlet classes supports Python 2.2 stuff to
> the full extent. For example, when I experimented with this the other day,
> I got a "TypeError: super() argument 1 must be type, not class" message
> in the traceback.
> The inheritance chain used in Webware for servlets is: NamedValueAccess -->
> Object --> Servlet --> HTTPServlet --> Page. Making Webware use object as
> the base class so that one can use super() etc. does not appear to be as
> simple as having NamedValueAccess subclass object. It makes other parts of
> Webware blow up.
I think you are still confusing 2.2-compatibility with taking advantage
of 2.2 features. Webware is 2.2 compatible, but does not use any 2.2
features. If it did it would *require* 2.2. I'm sure you are correct
that Webware would require some changes to the base system to make
things like super() work. It seems like it's best to wait until there's
some more significant features of new-style classes before Webware gets
rid of backward compatibility, though. (Properties would be one such
feature, but I don't know if anyone is certain how/where/if they should
be used right now).