At 08:51 AM 4/6/2006, Nick Coghlan <[EMAIL PROTECTED]> wrote: >There is, however, an alternative, which would be to include a mechanism for >telling a protocol about other equivalent protocols, and updating the >registration mechanism to distribute any registration updates to the >equivalent protocols.
I don't want to discourage people from working out their own ideas, but a lot of the stuff that's being discussed here about protocol adaptation is already implemented in PyProtocols. For example, what you just described is called "implication" in PyProtocols: one protocol can "imply" another by way of an adapter, and in the equivalence case, the adapter is a special adapter called NO_ADAPTER_NEEDED. So, your concept of equivalence is a subset of PyProtocols' concept of "implication". Indeed, many other proposals that have been made here regarding protocol objects as registries, callable protools that adapt to themselves, etc. are all already implemented in PyProtocols, often in ways not too different from the sample code that people have posted with their proposals, except that PyProtocols handles a lot of edge cases and quirks (e.g. classic class issues, weak references, metaclass level issues, etc.) that you'd only know about from actually trying to use them. Sadly, I believe one of the main reasons PyProtocols didn't get much uptake is simply that I wrote the documentation with *this* audience in mind: that is, people who want to develop a protocol/adaptation system. Thus, I documented the metasystem and tradeoffs in the design of such a system, rather than putting much emphasis on the uses of adaptation. So the PyProtocols docs suck -- unless you're trying to design or develop an adaptation system, that is. :) _______________________________________________ Python-3000 mailing list Python-3000@python.org http://mail.python.org/mailman/listinfo/python-3000 Unsubscribe: http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com