[Subversion] / PEAK / src / peak / interface.py  

Diff of /PEAK/src/peak/interface.py

Parent Directory | Revision Log

version 1103, Sat May 10 15:13:39 2003 UTC version 1104, Sat May 10 18:23:04 2003 UTC
Line 4 
Line 4 
 from zope.interface.implements import implements as addDeclarationToType  from zope.interface.implements import implements as addDeclarationToType
   
 __all__ = [  __all__ = [
     'Interface', 'Attribute', 'adapt', 'implements', 'classProvides'      'Interface', 'Attribute', 'adapt', 'implements', 'classProvides',
       'directlyProvides', 'moduleProvides', 'instancesProvide'
 ]  ]
   
 # We don't want to export 'addDeclarationToType' by default; we only use it  # We don't want to export 'addDeclarationToType' by default; we only use it
Line 23 
Line 24 
   
   
 _marker = object()  _marker = object()
 from sys import _getframe, exc_info  from sys import _getframe, exc_info, modules
   
 from types import ClassType  from types import ClassType
 ClassTypes = ClassType, type  ClassTypes = ClassType, type
Line 38 
Line 39 
   
   
   
   
 def adapt(obj, protocol, default=_marker):  def adapt(obj, protocol, default=_marker):
   
     """PEP 246-alike: Adapt 'obj' to 'protocol', return 'default'      """PEP 246-alike: Adapt 'obj' to 'protocol', return 'default'
Line 83 
Line 83 
 def implements(*interfaces):  def implements(*interfaces):
   
     def callback(klass):      def callback(klass):
         klass.__implements__ = interfaces          instancesProvide(klass, *interfaces)
         return klass          return klass
   
     addClassAdvisor(callback)      addClassAdvisor(callback)
   
   
   def instancesProvide(klass, *interfaces):
       klass.__implements__ = interfaces
   
   
   
 def classProvides(*interfaces):  def classProvides(*interfaces):
   
     def callback(klass):      def callback(klass):
Line 98 
Line 103 
     addClassAdvisor(callback)      addClassAdvisor(callback)
   
   
   def directlyProvides(ob, *interfaces):
       ob.__implements__ = interfaces
   
   
   def moduleProvides(*interfaces):
       directlyProvides(
           modules[_getframe(1).f_globals['__name__']],
           *interfaces
       )
   
   
   
   
   
   
   
   
   
   


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

cvs-admin@eby-sarna.com

Powered by ViewCVS 1.0-dev

ViewCVS and CVS Help