[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