[Checkins] SVN: zope.publisher/trunk/ Drop support for Python 2.4 and 2.5.

Tres Seaver cvs-admin at zope.org
Thu May 17 21:55:57 UTC 2012


Log message for revision 125986:
  Drop support for Python 2.4 and 2.5.
  
  Replace deprecated 'zope.component.adapts' usage with equivalent
  'zope.component.adapter' decorator.
  
  Replace deprecated 'zope.interface.implements' usage with equivalent
  'zope.interface.implementer' decorator.
  
  

Changed:
  U   zope.publisher/trunk/CHANGES.txt
  U   zope.publisher/trunk/setup.py
  U   zope.publisher/trunk/src/zope/publisher/base.py
  U   zope.publisher/trunk/src/zope/publisher/browser.py
  U   zope.publisher/trunk/src/zope/publisher/defaultview.py
  U   zope.publisher/trunk/src/zope/publisher/ftp.py
  U   zope.publisher/trunk/src/zope/publisher/http.py
  U   zope.publisher/trunk/src/zope/publisher/interfaces/__init__.py
  U   zope.publisher/trunk/src/zope/publisher/interfaces/http.py
  U   zope.publisher/trunk/src/zope/publisher/principallogging.py
  U   zope.publisher/trunk/src/zope/publisher/publish.py
  U   zope.publisher/trunk/src/zope/publisher/skinnable.py
  U   zope.publisher/trunk/src/zope/publisher/skinnable.txt
  U   zope.publisher/trunk/src/zope/publisher/tests/basetestipublicationrequest.py
  U   zope.publisher/trunk/src/zope/publisher/tests/publication.py
  U   zope.publisher/trunk/src/zope/publisher/tests/test_browserrequest.py
  U   zope.publisher/trunk/src/zope/publisher/tests/test_http.py
  U   zope.publisher/trunk/src/zope/publisher/tests/test_zcml.py
  U   zope.publisher/trunk/src/zope/publisher/tests/xmlrpcviews.py
  U   zope.publisher/trunk/src/zope/publisher/xmlrpc.py

-=-
Modified: zope.publisher/trunk/CHANGES.txt
===================================================================
--- zope.publisher/trunk/CHANGES.txt	2012-05-17 21:54:59 UTC (rev 125985)
+++ zope.publisher/trunk/CHANGES.txt	2012-05-17 21:55:52 UTC (rev 125986)
@@ -1,12 +1,18 @@
 CHANGES
 =======
 
-3.13.1 (unreleased)
+4.0.0 (unreleased)
 -------------------
 
-- Nothing changed yet.
+- Replaced deprecated ``zope.component.adapts`` usage with equivalent
+  ``zope.component.adapter`` decorator.
 
+- Replaced deprecated ``zope.interface.implements`` usage with equivalent
+  ``zope.interface.implementer`` decorator.
 
+- Dropped support for Python 2.4 and 2.5.
+
+
 3.13.0 (2011-11-17)
 -------------------
 

Modified: zope.publisher/trunk/setup.py
===================================================================
--- zope.publisher/trunk/setup.py	2012-05-17 21:54:59 UTC (rev 125985)
+++ zope.publisher/trunk/setup.py	2012-05-17 21:55:52 UTC (rev 125986)
@@ -28,7 +28,7 @@
 """
 
 setup(name='zope.publisher',
-      version='3.13.1dev',
+      version='4.0.0dev',
       url='http://pypi.python.org/pypi/zope.publisher',
       license='ZPL 2.1',
       author='Zope Foundation and Contributors',
@@ -37,6 +37,18 @@
       long_description=(open('README.txt').read()
                         + '\n\n'
                         + open('CHANGES.txt').read()),
+      classifiers=[
+        'Development Status :: 5 - Production/Stable',
+        'Intended Audience :: Developers',
+        'License :: OSI Approved :: Zope Public License',
+        'Programming Language :: Python',
+        "Programming Language :: Python :: 2",
+        "Programming Language :: Python :: 2.6",
+        "Programming Language :: Python :: 2.7",
+        'Natural Language :: English',
+        'Operating System :: OS Independent',
+        'Topic :: Internet :: WWW/HTTP',
+        ],
 
       entry_points=entry_points,
 

Modified: zope.publisher/trunk/src/zope/publisher/base.py
===================================================================
--- zope.publisher/trunk/src/zope/publisher/base.py	2012-05-17 21:54:59 UTC (rev 125985)
+++ zope.publisher/trunk/src/zope/publisher/base.py	2012-05-17 21:55:52 UTC (rev 125986)
@@ -18,7 +18,7 @@
 """
 from cStringIO import StringIO
 
-from zope.interface import implements, providedBy
+from zope.interface import implementer
 from zope.interface.common.mapping import IReadMapping, IEnumerableMapping
 from zope.exceptions.exceptionformatter import print_exception
 from zope.security.proxy import removeSecurityProxy
@@ -30,6 +30,7 @@
 
 _marker = object()
 
+ at implementer(IResponse)
 class BaseResponse(object):
     """Base Response Class
     """
@@ -39,7 +40,6 @@
         '_request',   # The associated request (if any)
         )
 
-    implements(IResponse)
 
     def __init__(self):
         self._request = None
@@ -67,10 +67,9 @@
         'See IPublisherResponse'
         return self.__class__()
 
+ at implementer(IReadMapping)
 class RequestDataGetter(object):
 
-    implements(IReadMapping)
-
     def __init__(self, request):
         self.__get = getattr(request, self._gettrname)
 
@@ -86,10 +85,9 @@
 
     has_key = __contains__
 
+ at implementer(IEnumerableMapping)
 class RequestDataMapper(object):
 
-    implements(IEnumerableMapping)
-
     def __init__(self, request):
         self.__map = getattr(request, self._mapname)
 
@@ -137,15 +135,15 @@
     _mapname = '_environ'
 
 
+ at implementer(IDebugFlags)
 class DebugFlags(object):
     """Debugging flags."""
 
-    implements(IDebugFlags)
-
     sourceAnnotations = False
     showTAL = False
 
 
+ at implementer(IRequest)
 class BaseRequest(object):
     """Represents a publishing request.
 
@@ -159,8 +157,6 @@
     collection of variable to value mappings.
     """
 
-    implements(IRequest)
-
     __slots__ = (
         '__provides__',      # Allow request to directly provide interfaces
         '_held',             # Objects held until the request is closed
@@ -406,6 +402,7 @@
 
         super(TestRequest, self).__init__(body_instream, environ)
 
+ at implementer(IPublication)
 class DefaultPublication(object):
     """A stub publication.
 
@@ -413,7 +410,6 @@
     starting with an underscore and any objects (specifically: method)
     that doesn't have a docstring.
     """
-    implements(IPublication)
 
     require_docstrings = True
 

Modified: zope.publisher/trunk/src/zope/publisher/browser.py
===================================================================
--- zope.publisher/trunk/src/zope/publisher/browser.py	2012-05-17 21:54:59 UTC (rev 125985)
+++ zope.publisher/trunk/src/zope/publisher/browser.py	2012-05-17 21:55:52 UTC (rev 125986)
@@ -27,7 +27,7 @@
 
 import zope.component
 import zope.interface
-from zope.interface import implements, directlyProvides
+from zope.interface import implementer, directlyProvides
 from zope.i18n.interfaces import IUserPreferredLanguages
 from zope.i18n.interfaces import IUserPreferredCharsets
 from zope.i18n.interfaces import IModifiableUserPreferredLanguages
@@ -218,8 +218,8 @@
             for key, value in items]) + "}")
 
 _get_or_head = 'GET', 'HEAD'
+ at implementer(IBrowserRequest, IBrowserApplicationRequest)
 class BrowserRequest(HTTPRequest):
-    implements(IBrowserRequest, IBrowserApplicationRequest)
 
     __slots__ = (
         '__provides__', # Allow request to directly provide interfaces
@@ -782,9 +782,9 @@
     lang = lang.replace(' ', '')
     return lang
 
+ at zope.component.adapter(IHTTPRequest)
+ at implementer(IUserPreferredLanguages)
 class BrowserLanguages(object):
-    zope.component.adapts(IHTTPRequest)
-    implements(IUserPreferredLanguages)
 
     def __init__(self, request):
         self.request = request
@@ -841,10 +841,9 @@
 
 BROWSER_LANGUAGES_KEY = "zope.publisher.browser.IUserPreferredLanguages"
 
+ at implementer(IUserPreferredLanguages)
 class CacheableBrowserLanguages(BrowserLanguages):
 
-    implements(IUserPreferredLanguages)
-
     def getPreferredLanguages(self):
         languages_data = self._getLanguagesData()
         if "overridden" in languages_data:
@@ -861,10 +860,9 @@
             annotations[BROWSER_LANGUAGES_KEY] = languages_data = {}
         return languages_data
 
+ at implementer(IModifiableUserPreferredLanguages)
 class ModifiableBrowserLanguages(CacheableBrowserLanguages):
 
-    implements(IModifiableUserPreferredLanguages)
-
     def setPreferredLanguages(self, languages):
         languages_data = self.request.annotations.get(BROWSER_LANGUAGES_KEY)
         if languages_data is None:
@@ -877,6 +875,7 @@
         languages_data["overridden"] = languages
         self.request.setupLocale()
 
+ at implementer(IBrowserView)
 class BrowserView(Location):
     """Browser View.
 
@@ -892,7 +891,6 @@
     >>> view.__parent__
     'parent'
     """
-    implements(IBrowserView)
 
     def __init__(self, context, request):
         self.context = context
@@ -906,6 +904,7 @@
 
     __parent__ = property(__getParent, __setParent)
 
+ at implementer(IBrowserPage)
 class BrowserPage(BrowserView):
     """Browser page
 
@@ -957,7 +956,6 @@
     It is the subclass' responsibility to do that.
 
     """
-    implements(IBrowserPage)
 
     def browserDefault(self, request):
         return self, ()

Modified: zope.publisher/trunk/src/zope/publisher/defaultview.py
===================================================================
--- zope.publisher/trunk/src/zope/publisher/defaultview.py	2012-05-17 21:54:59 UTC (rev 125985)
+++ zope.publisher/trunk/src/zope/publisher/defaultview.py	2012-05-17 21:55:52 UTC (rev 125986)
@@ -59,8 +59,9 @@
       >>> import zope.interface
       >>> class IMyObject(zope.interface.Interface):
       ...   pass
-      >>> class MyObject(object):
-      ...   zope.interface.implements(IMyObject)
+      >>> @zope.interface.implementer(IMyObject)
+      ... class MyObject(object):
+      ...   pass
       >>> queryDefaultViewName(MyObject(), object()) is None
       True
 

Modified: zope.publisher/trunk/src/zope/publisher/ftp.py
===================================================================
--- zope.publisher/trunk/src/zope/publisher/ftp.py	2012-05-17 21:54:59 UTC (rev 125985)
+++ zope.publisher/trunk/src/zope/publisher/ftp.py	2012-05-17 21:55:52 UTC (rev 125986)
@@ -13,7 +13,7 @@
 ##############################################################################
 """FTP Publisher
 """
-from zope.interface import implements
+from zope.interface import implementer
 from zope.publisher.interfaces.ftp import IFTPCredentials, IFTPRequest
 from zope.publisher.base import BaseResponse, BaseRequest
 
@@ -34,8 +34,8 @@
         self._exc = exc_info
 
 
+ at implementer(IFTPCredentials, IFTPRequest)
 class FTPRequest(BaseRequest):
-    implements(IFTPCredentials, IFTPRequest)
 
     __slots__ = '_auth'
 

Modified: zope.publisher/trunk/src/zope/publisher/http.py
===================================================================
--- zope.publisher/trunk/src/zope/publisher/http.py	2012-05-17 21:54:59 UTC (rev 125985)
+++ zope.publisher/trunk/src/zope/publisher/http.py	2012-05-17 21:55:52 UTC (rev 125986)
@@ -75,8 +75,8 @@
         dict['PATH_INFO'] = dict['PATH_INFO'].decode('utf-8')
     return dict
 
+ at zope.interface.implementer(IHTTPVirtualHostChangedEvent)
 class HTTPVirtualHostChangedEvent(object):
-    zope.interface.implements(IHTTPVirtualHostChangedEvent)
 
     request = None
 
@@ -231,6 +231,9 @@
 
 DEFAULT_PORTS = {'http': '80', 'https': '443'}
 
+ at zope.interface.implementer(IHTTPCredentials,
+                            IHTTPRequest,
+                            IHTTPApplicationRequest)
 class HTTPRequest(BaseRequest):
     """Model HTTP request data.
 
@@ -276,9 +279,6 @@
     values will be looked up in the order: environment variables,
     other variables, form data, and then cookies.
     """
-    zope.interface.implements(IHTTPCredentials,
-                              IHTTPRequest,
-                              IHTTPApplicationRequest)
 
     __slots__ = (
         '__provides__',   # Allow request to directly provide interfaces
@@ -608,8 +608,8 @@
 
 
 
+ at zope.interface.implementer(IHTTPResponse, IHTTPApplicationResponse)
 class HTTPResponse(BaseResponse):
-    zope.interface.implements(IHTTPResponse, IHTTPApplicationResponse)
 
     __slots__ = (
         'authUser',             # Authenticated user string
@@ -946,9 +946,9 @@
     return host
 
 
+ at zope.interface.implementer(IUserPreferredCharsets)
+ at zope.component.adapter(IHTTPRequest)
 class HTTPCharsets(object):
-    zope.component.adapts(IHTTPRequest)
-    zope.interface.implements(IUserPreferredCharsets)
 
     def __init__(self, request):
         self.request = request
@@ -1021,6 +1021,7 @@
     return charset
 
 
+ at zope.interface.implementer(IResult)
 class DirectResult(object):
     """A generic result object.
 
@@ -1028,7 +1029,6 @@
     application to specify all headers related to the content, such as the
     content type and length.
     """
-    zope.interface.implements(IResult)
 
     def __init__(self, body):
         self.body = body

Modified: zope.publisher/trunk/src/zope/publisher/interfaces/__init__.py
===================================================================
--- zope.publisher/trunk/src/zope/publisher/interfaces/__init__.py	2012-05-17 21:54:59 UTC (rev 125985)
+++ zope.publisher/trunk/src/zope/publisher/interfaces/__init__.py	2012-05-17 21:55:52 UTC (rev 125986)
@@ -18,7 +18,7 @@
 from zope.browser.interfaces import IView # BBB import
 from zope.interface import Interface
 from zope.interface import Attribute
-from zope.interface import implements
+from zope.interface import implementer
 from zope.interface.interfaces import IInterface
 from zope.interface.common.mapping import IEnumerableMapping
 from zope.interface.common.interfaces import IException
@@ -29,14 +29,16 @@
 class IPublishingException(IException):
     pass
 
+ at implementer(IPublishingException)
 class PublishingException(Exception):
-    implements(IPublishingException)
+    pass
 
 class ITraversalException(IPublishingException):
     pass
 
+ at implementer(ITraversalException)
 class TraversalException(PublishingException):
-    implements(ITraversalException)
+    pass
 
 class INotFound(ILookupError, ITraversalException):
     def getObject():
@@ -45,8 +47,8 @@
     def getName():
         'Returns the name that was being traversed.'
 
+ at implementer(INotFound)
 class NotFound(LookupError, TraversalException):
-    implements(INotFound)
 
     def __init__(self, ob, name, request=None):
         self.ob = ob
@@ -72,8 +74,8 @@
     def getMessage():
         'Returns the debug message.'
 
+ at implementer(IDebugError)
 class DebugError(TraversalException):
-    implements(IDebugError)
 
     message = None # override this not to cause warnings in python 2.6
 
@@ -94,10 +96,9 @@
     def __str__():
         'Returns the error message.'
 
+ at implementer(IBadRequest)
 class BadRequest(PublishingException):
 
-    implements(IBadRequest)
-
     message = None # override this not to cause warnings in python 2.6
 
     def __init__(self, message):
@@ -110,10 +111,9 @@
     def getLocation():
         'Returns the location.'
 
+ at implementer(IRedirect)
 class Redirect(PublishingException):
 
-    implements(IRedirect)
-
     def __init__(self, location):
         self.location = location
 
@@ -127,11 +127,10 @@
     def getOriginalException():
         'Returns the original exception object.'
 
+ at implementer(IRetry)
 class Retry(PublishingException):
     """Raise this to retry a request."""
 
-    implements(IRetry)
-
     def __init__(self, orig_exc=None):
         """orig_exc must be a 3-tuple as returned from sys.exc_info() or None"""
         self.orig_exc = orig_exc
@@ -487,22 +486,20 @@
         self.request = request
 
 
+ at implementer(IEndRequestEvent)
 class EndRequestEvent(RequestEvent):
     """An event which gets sent when the publication is ended"""
 
-    implements(IEndRequestEvent)
-
     def __init__(self, ob, request):
         super(EndRequestEvent, self).__init__(request)
         self.object = ob
 
 
+ at implementer(IStartRequestEvent)
 class StartRequestEvent(RequestEvent):
     """An event send when before publication of a request."""
 
-    implements(IStartRequestEvent)
 
-
 class ISkinType(IInterface):
     """Base interface for skin types."""
 

Modified: zope.publisher/trunk/src/zope/publisher/interfaces/http.py
===================================================================
--- zope.publisher/trunk/src/zope/publisher/interfaces/http.py	2012-05-17 21:54:59 UTC (rev 125985)
+++ zope.publisher/trunk/src/zope/publisher/interfaces/http.py	2012-05-17 21:55:52 UTC (rev 125986)
@@ -18,7 +18,7 @@
 
 from zope.interface import Interface
 from zope.interface import Attribute
-from zope.interface import implements
+from zope.interface import implementer
 from zope.interface.common.interfaces import IException
 
 from zope.publisher.interfaces import IApplicationRequest
@@ -496,10 +496,10 @@
     request = Attribute("""The request in which the error occurred""")
 
 
+ at implementer(IMethodNotAllowed)
 class MethodNotAllowed(Exception):
     """An exception that signals the 405 Method Not Allowed HTTP error"""
 
-    implements(IMethodNotAllowed)
 
     def __init__(self, object, request):
         self.object = object

Modified: zope.publisher/trunk/src/zope/publisher/principallogging.py
===================================================================
--- zope.publisher/trunk/src/zope/publisher/principallogging.py	2012-05-17 21:54:59 UTC (rev 125985)
+++ zope.publisher/trunk/src/zope/publisher/principallogging.py	2012-05-17 21:55:52 UTC (rev 125986)
@@ -16,17 +16,16 @@
 Adapts zope.security.interfaces.IPrincipal to
 zope.publisher.interfaces.logginginfo.ILoggingInfo.
 """
-from zope.component import adapts
-from zope.interface import implements
+from zope.component import adapter
+from zope.interface import implementer
 from zope.publisher.interfaces.logginginfo import ILoggingInfo
 from zope.security.interfaces import IPrincipal
 
 
+ at adapter(IPrincipal)
+ at implementer(ILoggingInfo)
 class PrincipalLogging(object):
 
-    adapts(IPrincipal)
-    implements(ILoggingInfo)
-
     def __init__(self, principal):
         self.principal = principal
 

Modified: zope.publisher/trunk/src/zope/publisher/publish.py
===================================================================
--- zope.publisher/trunk/src/zope/publisher/publish.py	2012-05-17 21:54:59 UTC (rev 125985)
+++ zope.publisher/trunk/src/zope/publisher/publish.py	2012-05-17 21:55:52 UTC (rev 125986)
@@ -17,7 +17,7 @@
 """
 import sys
 from zope import component
-from zope.interface import implements
+from zope.interface import implementer
 from zope.publisher.interfaces import Retry, IReRaiseException
 from zope.proxy import removeAllProxies
 
@@ -198,10 +198,10 @@
     return request
 
 
+ at implementer(IReRaiseException)
 class DoNotReRaiseException(object):
     """Marker adapter for exceptions that should not be re-raised"""
     
-    implements(IReRaiseException)
     
     def __init__(self, exc):
         pass

Modified: zope.publisher/trunk/src/zope/publisher/skinnable.py
===================================================================
--- zope.publisher/trunk/src/zope/publisher/skinnable.py	2012-05-17 21:54:59 UTC (rev 125985)
+++ zope.publisher/trunk/src/zope/publisher/skinnable.py	2012-05-17 21:55:52 UTC (rev 125986)
@@ -27,10 +27,10 @@
 from zope.publisher import interfaces
 
 
+ at zope.interface.implementer(interfaces.ISkinChangedEvent)
 class SkinChangedEvent(object):
     """Skin changed event."""
 
-    zope.interface.implements(interfaces.ISkinChangedEvent)
 
     def __init__(self, request):
         self.request = request

Modified: zope.publisher/trunk/src/zope/publisher/skinnable.txt
===================================================================
--- zope.publisher/trunk/src/zope/publisher/skinnable.txt	2012-05-17 21:54:59 UTC (rev 125985)
+++ zope.publisher/trunk/src/zope/publisher/skinnable.txt	2012-05-17 21:55:52 UTC (rev 125986)
@@ -82,9 +82,9 @@
 
   >>> import zope.interface
   >>> from zope.publisher.base import BaseRequest
-  >>> class JSONRequest(BaseRequest):
+  >>> @zope.interface.implementer(IJSONRequest)
+  ... class JSONRequest(BaseRequest):
   ...     """JSON request implementation."""
-  ...     zope.interface.implements(IJSONRequest)
 
 Now our request provides IJSONRequest because it implement that interface:
 

Modified: zope.publisher/trunk/src/zope/publisher/tests/basetestipublicationrequest.py
===================================================================
--- zope.publisher/trunk/src/zope/publisher/tests/basetestipublicationrequest.py	2012-05-17 21:54:59 UTC (rev 125985)
+++ zope.publisher/trunk/src/zope/publisher/tests/basetestipublicationrequest.py	2012-05-17 21:55:52 UTC (rev 125986)
@@ -15,13 +15,13 @@
 """
 import sys
 
-from zope.interface import Interface, directlyProvides, implements
+from zope.interface import Interface, directlyProvides, implementer
 from zope.interface.verify import verifyObject
 from zope.publisher.interfaces import IPublicationRequest, IHeld
 from zope.publisher.interfaces.browser import IBrowserSkinType
 
+ at implementer(IHeld)
 class Held:
-    implements(IHeld)
 
     released = False
 

Modified: zope.publisher/trunk/src/zope/publisher/tests/publication.py
===================================================================
--- zope.publisher/trunk/src/zope/publisher/tests/publication.py	2012-05-17 21:54:59 UTC (rev 125985)
+++ zope.publisher/trunk/src/zope/publisher/tests/publication.py	2012-05-17 21:55:52 UTC (rev 125986)
@@ -15,12 +15,11 @@
 """
 
 from zope.publisher.interfaces import IPublication
-from zope.interface import implements
+from zope.interface import implementer
 
+ at implementer(IPublication)
 class TestPublication(object):
 
-    implements(IPublication)
-
     def afterCall(self, request, ob):
         '''See interface IPublication'''
         self._afterCall = getattr(self, '_afterCall', 0) + 1

Modified: zope.publisher/trunk/src/zope/publisher/tests/test_browserrequest.py
===================================================================
--- zope.publisher/trunk/src/zope/publisher/tests/test_browserrequest.py	2012-05-17 21:54:59 UTC (rev 125985)
+++ zope.publisher/trunk/src/zope/publisher/tests/test_browserrequest.py	2012-05-17 21:55:52 UTC (rev 125986)
@@ -16,7 +16,7 @@
 import unittest
 from StringIO import StringIO
 
-from zope.interface import implements, directlyProvides, Interface
+from zope.interface import implementer, directlyProvides, Interface
 from zope.interface.verify import verifyObject
 
 from zope.publisher.publish import publish as publish_
@@ -540,8 +540,8 @@
         self.assertEqual(request.bodyStream.read(), '')
         self.assertEqual(dict(request.form), dict(x='1', y='2'))
 
+ at implementer(IBrowserPublication)
 class TestBrowserPublication(TestPublication):
-    implements(IBrowserPublication)
 
     def getDefaultTraversal(self, request, ob):
         return ob, ()

Modified: zope.publisher/trunk/src/zope/publisher/tests/test_http.py
===================================================================
--- zope.publisher/trunk/src/zope/publisher/tests/test_http.py	2012-05-17 21:54:59 UTC (rev 125985)
+++ zope.publisher/trunk/src/zope/publisher/tests/test_http.py	2012-05-17 21:55:52 UTC (rev 125986)
@@ -29,7 +29,7 @@
 from zope.security.checker import ProxyFactory
 from zope.security.proxy import removeSecurityProxy
 
-from zope.interface import implements
+from zope.interface import implementer
 from zope.publisher.interfaces.logginginfo import ILoggingInfo
 from zope.publisher.http import HTTPRequest, HTTPResponse
 from zope.publisher.http import HTTPInputStream, DirectResult, HTTPCharsets
@@ -50,8 +50,8 @@
 
 
 
+ at implementer(ILoggingInfo)
 class UserStub(object):
-    implements(ILoggingInfo)
 
     def __init__(self, id):
         self._id = id

Modified: zope.publisher/trunk/src/zope/publisher/tests/test_zcml.py
===================================================================
--- zope.publisher/trunk/src/zope/publisher/tests/test_zcml.py	2012-05-17 21:54:59 UTC (rev 125985)
+++ zope.publisher/trunk/src/zope/publisher/tests/test_zcml.py	2012-05-17 21:55:52 UTC (rev 125986)
@@ -25,15 +25,16 @@
 from zope.publisher.defaultview import getDefaultViewName
 from zope.publisher.interfaces import IDefaultViewName, IDefaultSkin
 from zope.publisher.interfaces.browser import IBrowserRequest
-from zope.interface import Interface, implements, providedBy, directlyProvides
+from zope.interface import Interface, implementer, providedBy, directlyProvides
 
 import zope.publisher
 
 class IOb(Interface):
     pass
 
+ at implementer(IOb)
 class Ob(object):
-    implements(IOb)
+    pass
 
 class ITestLayer(IBrowserRequest):
     """Test Layer."""
@@ -78,8 +79,9 @@
         self.assertEqual(getDefaultViewName(ob, request), 'test')
 
     def testDefaultViewWithLayer(self):
+        @implementer(ITestLayer)
         class FakeRequest(TestRequest):
-            implements(ITestLayer)
+            pass
         request2 = FakeRequest()
 
         self.assertEqual(

Modified: zope.publisher/trunk/src/zope/publisher/tests/xmlrpcviews.py
===================================================================
--- zope.publisher/trunk/src/zope/publisher/tests/xmlrpcviews.py	2012-05-17 21:54:59 UTC (rev 125985)
+++ zope.publisher/trunk/src/zope/publisher/tests/xmlrpcviews.py	2012-05-17 21:55:52 UTC (rev 125986)
@@ -13,13 +13,13 @@
 ##############################################################################
 """XML-RPC Views test objects
 """
-from zope.interface import Interface, implements
+from zope.interface import Interface, implementer
 from zope.publisher.interfaces.xmlrpc import IXMLRPCPublisher
 
 class IC(Interface): pass
 
+ at implementer(IXMLRPCPublisher)
 class V1(object):
-    implements(IXMLRPCPublisher)
 
     def __init__(self, context, request):
         self.context = context
@@ -28,11 +28,11 @@
 class VZMI(V1):
     pass
 
+ at implementer(IXMLRPCPublisher)
 class R1(object):
     def __init__(self, request):
         self.request = request
 
-    implements(IXMLRPCPublisher)
 
 class RZMI(R1):
     pass

Modified: zope.publisher/trunk/src/zope/publisher/xmlrpc.py
===================================================================
--- zope.publisher/trunk/src/zope/publisher/xmlrpc.py	2012-05-17 21:54:59 UTC (rev 125985)
+++ zope.publisher/trunk/src/zope/publisher/xmlrpc.py	2012-05-17 21:55:52 UTC (rev 125986)
@@ -24,15 +24,15 @@
 
 import zope.component
 import zope.interface
-from zope.interface import implements
+from zope.interface import implementer
 from zope.publisher.interfaces.xmlrpc import \
         IXMLRPCPublisher, IXMLRPCRequest, IXMLRPCPremarshaller, IXMLRPCView
 
 from zope.publisher.http import HTTPRequest, HTTPResponse, DirectResult
 from zope.security.proxy import isinstance
 
+ at implementer(IXMLRPCRequest)
 class XMLRPCRequest(HTTPRequest):
-    implements(IXMLRPCRequest)
 
     _args = ()
 
@@ -166,18 +166,18 @@
         self.setStatus(200)
 
 
+ at implementer(IXMLRPCView)
 class XMLRPCView(object):
     """A base XML-RPC view that can be used as mix-in for XML-RPC views.""" 
-    implements(IXMLRPCView)
 
     def __init__(self, context, request):
         self.context = context
         self.request = request
 
 
+ at implementer(IXMLRPCPremarshaller)
 class PreMarshallerBase(object):
     """Abstract base class for pre-marshallers."""
-    zope.interface.implements(IXMLRPCPremarshaller)
 
     def __init__(self, data):
         self.data = data
@@ -185,34 +185,35 @@
     def __call__(self):
         raise Exception, "Not implemented"
 
+ at zope.component.adapter(dict)
 class DictPreMarshaller(PreMarshallerBase):
     """Pre-marshaller for dicts"""
-    zope.component.adapts(dict)
 
     def __call__(self):
         return dict([(premarshal(k), premarshal(v))
                      for (k, v) in self.data.items()])
 
+ at zope.component.adapter(list)
 class ListPreMarshaller(PreMarshallerBase):
     """Pre-marshaller for list"""
-    zope.component.adapts(list)
 
     def __call__(self):
         return map(premarshal, self.data)
 
+ at zope.component.adapter(tuple)
 class TuplePreMarshaller(ListPreMarshaller):
-    zope.component.adapts(tuple)
+    pass
 
+ at zope.component.adapter(xmlrpclib.Binary)
 class BinaryPreMarshaller(PreMarshallerBase):
     """Pre-marshaller for xmlrpc.Binary"""
-    zope.component.adapts(xmlrpclib.Binary)
 
     def __call__(self):
         return xmlrpclib.Binary(self.data.data)
 
+ at zope.component.adapter(xmlrpclib.Fault)
 class FaultPreMarshaller(PreMarshallerBase):
     """Pre-marshaller for xmlrpc.Fault"""
-    zope.component.adapts(xmlrpclib.Fault)
 
     def __call__(self):
         return xmlrpclib.Fault(
@@ -220,16 +221,16 @@
             premarshal(self.data.faultString),
             )
 
+ at zope.component.adapter(xmlrpclib.DateTime)
 class DateTimePreMarshaller(PreMarshallerBase):
     """Pre-marshaller for xmlrpc.DateTime"""
-    zope.component.adapts(xmlrpclib.DateTime)
 
     def __call__(self):
         return xmlrpclib.DateTime(self.data.value)
 
+ at zope.component.adapter(datetime.datetime)
 class PythonDateTimePreMarshaller(PreMarshallerBase):
     """Pre-marshaller for datetime.datetime"""
-    zope.component.adapts(datetime.datetime)
 
     def __call__(self):
         return xmlrpclib.DateTime(self.data.isoformat())



More information about the checkins mailing list