[Subversion] / PyProtocols / CHANGES.txt  

Diff of /PyProtocols/CHANGES.txt

Parent Directory | Revision Log

version 90, Sat Nov 8 00:11:14 2003 UTC version 126, Sat Jun 19 21:48:15 2004 UTC
Line 1 
Line 1 
   Fixes and changes since PyProtocols 0.9.2
   
    - The 'factory' parameter to 'adapt()' was REMOVED.  An informal survey of
      PyProtocols' users indicated that nobody was using it to any significant
      degree, and its removal was unopposed.  This feature was an extension to
      PEP 246, so this brings PyProtocols into closer conformance with the PEP.
   
    - Raise 'AdaptationFailure' instead of 'NotImplementedError' when adaptation
      is unsuccessful.  'AdaptationFailure' is a subclass of both 'TypeError' and
      'NotImplementedError', so code written according to either PEP 246 or older
      versions of PyProtocols will still catch the error.
   
    - There is now an 'AbstractBase' class, similar to 'Interface', that can be
      used for the "ABC" (Abstract Base Class) style of interface usage, where the
      interface may contain implementation code, and can be subclassed to create
      concrete implementations.  In previous versions, you could use 'Interface'
      as such a base class, but now calling an 'Interface' object performs
      adaptation, rather than instantiation.
   
    - 'Protocol' instances (except for 'AbstractBase' subclasses) are now callable
      with a signature similar to 'adapt()'.  E.g. 'ISomething(foo,*args)' is
      equivalent to 'adapt(foo,ISomething,*args)'.  This convenient API, pioneered
      by Twisted and later adopted by Zope X3, is now available in PyProtocols as
      well.  (Note that as a result of this change, the PyProtocols test suite now
      requires a Zope X3 alpha release or better.)
   
    - 'setup.py' now accepts a '--without-speedups' global option to disable
      the C speedups module.
   
    - We now support the latest 'adapter_hooks' protocol provided by Zope X3
      interfaces, allowing multiple interface registry systems to participate
      in Zope interfaces' '__adapt__()' implementation.
   
    - Declaring an adapter from an instance to a protocol that was part
      of a circular implication path resulted in infinite recursion.
      Correcting the problem required a change in the return signature
      of the 'declareProvides()' method in the 'IOpenProvider' interface.
      Please see the docstring or the updated reference manual for details.
      Thanks to Bob Ippolito for discovering the problem and bringing it to my
      attention.
   
    - Defining an adapter from one protocol to another, when that adapter does not
      shorten the adaptation path, would produce a spurious 'KeyError'.
   
   Fixes since PyProtocols 0.9.1
   
    - Fixed missing unit tests for 'Variation' class, and the two bugs in
      'Variation' that weren't found because of the missing tests.
   
 Fixes and Enhancements since PyProtocols 0.9  Fixes and Enhancements since PyProtocols 0.9
   
  - Added the 'factoryMethod' and 'equivalentProtocols' keywords to 'advise()'.   - Added the 'factoryMethod' and 'equivalentProtocols' keywords to 'advise()'.
   
  - (NEEDS DOC) Added 'sequenceOf()', allowing you to easily create a protocol   - Added 'sequenceOf()', allowing you to easily create a protocol
    that represents a sequence of some base protocol, and automatically adapt     that represents a sequence of some base protocol, and automatically adapt
    basic sequences (e.g. lists and tuples) to a "sequence of" the base     basic sequences (e.g. lists and tuples) to a "sequence of" the base
    protocol, as long as all members of the input sequence can be adapted to the     protocol, as long as all members of the input sequence can be adapted to the
Line 20 
Line 69 
    module is used in a larger program, the linkage between the symbolic and     module is used in a larger program, the linkage between the symbolic and
    actual forms of the interface can be accomplished semi-automatically.     actual forms of the interface can be accomplished semi-automatically.
   
  - (NEEDS DOC) Enhanced Zope 3 support: Now, adapters can be registered between   - Enhanced Zope 3 support: Now, adapters can be registered between Zope
    Zope interfaces, and any types or instances.  Note, however, that     interfaces, and any types or instances.  Note, however, that
    interface-to-interface adaptation may not work if a class only declares what     interface-to-interface adaptation may not work if a class only declares what
    it implements using the Zope interface API.  This limitation might be able     it implements using the Zope interface API.  This limitation might be able
    to be removed later.  Zope interfaces can now pass a much larger segment of     to be removed later.  Zope interfaces can now pass a much larger segment of
    the test suite than before.     the test suite than before.
   
  - (NEEDS DOC) Added 'protocols.Variation(baseProtocol,context=None)'; this   - Added 'protocols.Variation(baseProtocol,context=None)'; this
    implements the 'LocalProtocol' example in the documentation.     implements the 'LocalProtocol' example in the documentation.
   
  - Added 'Adapter' and 'StickyAdapter' convenience base classes.  'Adapter'   - Added 'Adapter' and 'StickyAdapter' convenience base classes.  'Adapter'


Generate output suitable for use with a patch program
Legend:
Removed from v.90  
changed lines
  Added in v.126

cvs-admin@eby-sarna.com

Powered by ViewCVS 1.0-dev

ViewCVS and CVS Help