Bug#224434: ITP: python2.3-pyprotocols -- Python 2.3 module implementing object adaptation (PEP 246)
Package: wnpp
Severity: wishlist
Package name : python2.3-pyprotocols
Version : 0.9.2
Upstream Author : Phillip J. Eby
URL : http://peak.telecommunity.com/PyProtocols.html
License : Python or Zope
Description : Python 2.3 module implementing object adaptation (PEP 246)
PyProtocols extends the PEP 246 adapt() function with a new "declaration API"
that lets you easily define your own protocols and adapters, and declare what
adapters should be used to adapt what types, objects, or protocols. In
addition to its own Interface type, PyProtocols can also use Twisted and
Zope's Interface types too. (Of course, since Twisted and Zope interfaces
aren't as flexible, only a subset of the PyProtocols API works with them.
Specific limitations are listed in the documentation.)
.
If you're familiar with Interface objects in Zope, Twisted, or PEAK, the
Interface objects in PyProtocols are very similar. But, they can also do many
things that no other Python interface types can do. For example, PyProtocols
supports "subsetting" of interfaces, where you can declare that one interface
is a subset of another existing interface. This is like declaring that
somebody else's existing interface is actually a subclass of the new
interface. Twisted and Zope don't allow this, which makes them very hard to
use if you're trying to define interfaces like "Read-only Mapping" as a
subset of "Mapping Object".
.
Also unlike Zope and Twisted, PyProtocols also doesn't force you to use a
particular interface coding style or even a specific interface type. you can
use its built-in interface types, or define your own. If there's another
Python package out there with interface types that you'd like to use (CORBA?
COM?), you can even create your own adapters to make them work with the
PyProtocols API.
.
PyProtocols is also the only interface package that supports automatic
"transitive adaptation". That is, if you define an adapter from interface A
to interface B, and another from B to C, PyProtocols automatically creates
and registers a new adapter from A to C for you. If you later declare an
explicit adapter from A to C, it silently replaces the automatically created
one.
-- System Information:
Debian Release: testing/unstable
Architecture: i386
Kernel: Linux lana 2.6.0-test9 #1 Sat Nov 15 19:22:38 CET 2003 i686
Locale: LANG=it_IT@euro, LC_CTYPE=it_IT@euro
Reply to: