Jim Fulton <j...@zope.com> added the comment: On Apr 2, 2009, at 1:27 PM, Guido van Rossum wrote:
> > Guido van Rossum <gu...@python.org> added the comment: > > [Guido] >>> Looking back, I think Zope and Medusa should have adopted and >>> evolved >>> their own copy of asynchat a long time ago... > > [Jim] >> This statement is puzzling. No big deal, but I'm curious why you say >> this. > > ISTR that Zope has or had significant monkeypatches to at least one of > asyncore/asynchat. Not that I'm aware of. I did add the ability to pass in alternative map objects, which is the only change we needed that I'm aware of. I think I made that change before or soon after asyncore was added to the standard library. > The resulting coupling between Zope and asyn* has > meant that the de-facto API of asyn* was much more than the documented > API. If we were monkey patching it, it would be at our own risk, which is why we'd copy the module if we needed to. That has its own problems of course. I rue the day I forked doctest. :( > IMO that's a sign of a poorly designed API (in asyn*). If Zope > had had its own copy of asyn* (under a different name of course) that > relied only on lower-level APIs (sockets and select), it could have > evolved that copy directly without the need for monkeypatching. I've read a good argument that subclassing across implementation packages is a bad idea. If a framework offers features through subclassing, it should define the subclassing interface very carefully, which asyncore doesn't. Jim ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue1641> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com