[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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

-- 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: