At 12:50 AM 6/13/03 -0400, Raymond Hettinger wrote: >So, my questions is whether there is any reason not to adopt 246 >right away? AFAICT, there is no competing proposal and nothing >that would be harmed by adoption. What's all the fuss about? Guido has said (and I agree) that if Python includes adapt(), then the Python standard library should use it. However, using it requires that the standard library have some standard way at least for it) of defining what a "protocol" is. And that's where the holdup is, because Guido is not yet decided about what kind of interfaces or protocols Python should have, and he won't be until he's had enough experience with some of the approaches. He's said he doesn't think Zope-style interfaces are going to be the way he wants to go, and that something more ABC-like (Abstract Base Class) would be preferable. PyProtocols was my attempt to show that a PEP 246 mechanism can actually be pretty agnostic about what kind of interface objects are used, just like the '+' operator is agnostic about what object types it's used with. However, as I've realized from this thread, PyProtocols still doesn't actually solve the real issue for Guido: even though PyProtocols doesn't care about what kind of interfaces are used, Guido *still* has to decide what kind the standard library should use, and I've only *added* another approach for him to evaluate! Ah well. :) On the bright side, I think PyProtocols can alleviate *one* of his concerns, which was that having a Python-included interface type would make other interface types (e.g. Zope interfaces) "second-class citizens". That is, I've demonstrated that it is possible to have a "protocol protocol", thus allowing different protocol or interface types to exist, even if they have no implementation in common (e.g. Twisted, Zope, and PyProtocols). At this point, though, I don't see any reason to rush PEP 246 into the standard library, since there is now a packaged distribution that will presumably become a de facto standard for anybody who wants to use PEP 246, as it's the only PEP 246 implementation that you can use "out of the box" without having to write __conform__ or __adapt__ methods. The only reason I even brought up the question here, was in relation to the adaptation-based documentation toolkit that I intend to write.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4