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

Tres Seaver cvs-admin at zope.org
Fri May 18 16:19:18 UTC 2012


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

Changed:
  U   zope.server/trunk/CHANGES.txt
  U   zope.server/trunk/setup.py
  U   zope.server/trunk/src/zope/server/fixedstreamreceiver.py
  U   zope.server/trunk/src/zope/server/ftp/publisher.py
  U   zope.server/trunk/src/zope/server/ftp/server.py
  U   zope.server/trunk/src/zope/server/ftp/tests/demofs.py
  U   zope.server/trunk/src/zope/server/http/chunking.py
  U   zope.server/trunk/src/zope/server/http/httprequestparser.py
  U   zope.server/trunk/src/zope/server/http/httptask.py
  U   zope.server/trunk/src/zope/server/http/tests/test_httpserver.py
  U   zope.server/trunk/src/zope/server/linereceiver/linecommandparser.py
  U   zope.server/trunk/src/zope/server/linereceiver/linetask.py
  U   zope.server/trunk/src/zope/server/logger/filelogger.py
  U   zope.server/trunk/src/zope/server/logger/pythonlogger.py
  U   zope.server/trunk/src/zope/server/logger/resolvinglogger.py
  U   zope.server/trunk/src/zope/server/logger/socketlogger.py
  U   zope.server/trunk/src/zope/server/logger/sysloglogger.py
  U   zope.server/trunk/src/zope/server/logger/taillogger.py
  U   zope.server/trunk/src/zope/server/logger/unresolvinglogger.py
  U   zope.server/trunk/src/zope/server/serverbase.py
  U   zope.server/trunk/src/zope/server/serverchannelbase.py
  U   zope.server/trunk/src/zope/server/taskthreads.py

-=-
Modified: zope.server/trunk/CHANGES.txt
===================================================================
--- zope.server/trunk/CHANGES.txt	2012-05-18 16:13:59 UTC (rev 126157)
+++ zope.server/trunk/CHANGES.txt	2012-05-18 16:19:15 UTC (rev 126158)
@@ -2,12 +2,15 @@
 CHANGES
 =======
 
-3.8.7 (unreleased)
+4.0.0 (unreleased)
 ------------------
 
-- Nothing changed yet.
+- Replaced deprecated ``zope.interface.implements`` usage with equivalent
+  ``zope.interface.implementer`` decorator.
 
+- Dropped support for Python 2.4 and 2.5.
 
+
 3.8.6 (2012-01-07)
 ------------------
 

Modified: zope.server/trunk/setup.py
===================================================================
--- zope.server/trunk/setup.py	2012-05-18 16:13:59 UTC (rev 126157)
+++ zope.server/trunk/setup.py	2012-05-18 16:19:15 UTC (rev 126158)
@@ -34,7 +34,7 @@
 
 setup(
     name='zope.server',
-    version='3.8.7dev',
+    version='4.0.0dev',
     author='Zope Foundation and Contributors',
     author_email='zope-dev at zope.org',
     description='Zope Server (Web and FTP)',
@@ -51,6 +51,9 @@
         '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',

Modified: zope.server/trunk/src/zope/server/fixedstreamreceiver.py
===================================================================
--- zope.server/trunk/src/zope/server/fixedstreamreceiver.py	2012-05-18 16:13:59 UTC (rev 126157)
+++ zope.server/trunk/src/zope/server/fixedstreamreceiver.py	2012-05-18 16:19:15 UTC (rev 126158)
@@ -15,13 +15,12 @@
 """
 
 from zope.server.interfaces import IStreamConsumer
-from zope.interface import implements
+from zope.interface import implementer
 
 
+ at implementer(IStreamConsumer)
 class FixedStreamReceiver(object):
 
-    implements(IStreamConsumer)
-
     # See IStreamConsumer
     completed = 0
 

Modified: zope.server/trunk/src/zope/server/ftp/publisher.py
===================================================================
--- zope.server/trunk/src/zope/server/ftp/publisher.py	2012-05-18 16:13:59 UTC (rev 126157)
+++ zope.server/trunk/src/zope/server/ftp/publisher.py	2012-05-18 16:19:15 UTC (rev 126158)
@@ -25,13 +25,12 @@
 from zope.server.ftp.server import FTPServer
 from zope.publisher.publish import publish
 
-from zope.interface import implements
+from zope.interface import implementer
 
+ at implementer(IFileSystem)
 class PublisherFileSystem(object):
     """Generic Publisher FileSystem implementation."""
 
-    implements(IFileSystem)
-
     def __init__ (self, credentials, request_factory):
         self.credentials = credentials
         self.request_factory = request_factory
@@ -131,10 +130,9 @@
         super(PublisherFTPServer, self).__init__(ip, port, fs_access,
                                                  *args, **kw)
 
+ at implementer(IFileSystemAccess)
 class PublisherFileSystemAccess(object):
 
-    implements(IFileSystemAccess)
-
     def __init__(self, request_factory):
         self.request_factory = request_factory
 

Modified: zope.server/trunk/src/zope/server/ftp/server.py
===================================================================
--- zope.server/trunk/src/zope/server/ftp/server.py	2012-05-18 16:13:59 UTC (rev 126157)
+++ zope.server/trunk/src/zope/server/ftp/server.py	2012-05-18 16:19:15 UTC (rev 126158)
@@ -20,7 +20,7 @@
 from getopt import getopt, GetoptError
 
 from zope.security.interfaces import Unauthorized
-from zope.interface import implements
+from zope.interface import implementer
 from zope.server.buffers import OverflowableBuffer
 from zope.server.interfaces import ITask
 from zope.server.interfaces.ftp import IFileSystemAccess
@@ -82,13 +82,12 @@
     'ERR_RNFR_SOURCE'  : '560 No source filename specify. Call RNFR first.',
     }
 
+ at implementer(IFTPCommandHandler)
 class FTPServerChannel(LineServerChannel):
     """The FTP Server Channel represents a connection to a particular
        client. We can therefore store information here."""
 
-    implements(IFTPCommandHandler)
 
-
     # List of commands that are always available
     special_commands = (
         'cmd_quit', 'cmd_type', 'cmd_noop', 'cmd_user', 'cmd_pass')
@@ -835,14 +834,13 @@
         # provide a complete reply through finishSTOR().
 
 
+ at implementer(ITask)
 class FinishSTORTask(object):
     """Calls control_channel.finishSTOR() in an application thread.
 
     This task executes after the client has finished uploading.
     """
 
-    implements(ITask)
-
     def __init__(self, control_channel, inbuf, finish_args):
         self.control_channel = control_channel
         self.inbuf = inbuf

Modified: zope.server/trunk/src/zope/server/ftp/tests/demofs.py
===================================================================
--- zope.server/trunk/src/zope/server/ftp/tests/demofs.py	2012-05-18 16:13:59 UTC (rev 126157)
+++ zope.server/trunk/src/zope/server/ftp/tests/demofs.py	2012-05-18 16:19:15 UTC (rev 126158)
@@ -15,7 +15,7 @@
 from zope.security.interfaces import Unauthorized
 from zope.server.interfaces.ftp import IFileSystem
 from zope.server.interfaces.ftp import IFileSystemAccess
-from zope.interface import implements
+from zope.interface import implementer
 
 execute = 1
 read = 2
@@ -66,10 +66,10 @@
     def __iter__(self):
         return iter(self.files)
 
+ at implementer(IFileSystem)
 class DemoFileSystem(object):
     __doc__ = IFileSystem.__doc__
 
-    implements(IFileSystem)
 
     File = File
     Directory = Directory
@@ -285,10 +285,10 @@
         f = d[name]
         return f.type == 'f' and f.accessable(self.user, write)
 
+ at implementer(IFileSystemAccess)
 class DemoFileSystemAccess(object):
     __doc__ = IFileSystemAccess.__doc__
 
-    implements(IFileSystemAccess)
 
     def __init__(self, files, users):
         self.files = files

Modified: zope.server/trunk/src/zope/server/http/chunking.py
===================================================================
--- zope.server/trunk/src/zope/server/http/chunking.py	2012-05-18 16:13:59 UTC (rev 126157)
+++ zope.server/trunk/src/zope/server/http/chunking.py	2012-05-18 16:19:15 UTC (rev 126158)
@@ -16,13 +16,12 @@
 
 from zope.server.utilities import find_double_newline
 from zope.server.interfaces import IStreamConsumer
-from zope.interface import implements
+from zope.interface import implementer
 
 
+ at implementer(IStreamConsumer)
 class ChunkedReceiver(object):
 
-    implements(IStreamConsumer)
-
     chunk_remainder = 0
     control_line = ''
     all_chunks_received = 0

Modified: zope.server/trunk/src/zope/server/http/httprequestparser.py
===================================================================
--- zope.server/trunk/src/zope/server/http/httprequestparser.py	2012-05-18 16:13:59 UTC (rev 126157)
+++ zope.server/trunk/src/zope/server/http/httprequestparser.py	2012-05-18 16:19:15 UTC (rev 126158)
@@ -24,7 +24,7 @@
 from zope.server.buffers import OverflowableBuffer
 from zope.server.utilities import find_double_newline
 from zope.server.interfaces import IStreamConsumer
-from zope.interface import implements
+from zope.interface import implementer
 
 try:
     from cStringIO import StringIO
@@ -32,6 +32,7 @@
     from StringIO import StringIO
 
 
+ at implementer(IStreamConsumer)
 class HTTPRequestParser(object):
     """A structure that collects the HTTP request.
 
@@ -39,8 +40,6 @@
     a server task constructor.
     """
 
-    implements(IStreamConsumer)
-
     completed = 0  # Set once request is completed.
     empty = 0        # Set if no request was made.
     header_plus = ''

Modified: zope.server/trunk/src/zope/server/http/httptask.py
===================================================================
--- zope.server/trunk/src/zope/server/http/httptask.py	2012-05-18 16:13:59 UTC (rev 126157)
+++ zope.server/trunk/src/zope/server/http/httptask.py	2012-05-18 16:19:15 UTC (rev 126158)
@@ -23,7 +23,7 @@
 from zope.publisher.interfaces.http import IHeaderOutput
 from zope.server.interfaces import ITask
 
-from zope.interface import implements
+from zope.interface import implementer
 
 rename_headers = {
     'CONTENT_LENGTH' : 'CONTENT_LENGTH',
@@ -31,14 +31,13 @@
     'CONNECTION'     : 'CONNECTION_TYPE',
     }
 
+ at implementer(ITask, IHeaderOutput)  #, IOutputStream
 class HTTPTask(object):
     """An HTTP task accepts a request and writes to a channel.
 
        Subclass this and override the execute() method.
     """
 
-    implements(ITask, IHeaderOutput)  #, IOutputStream
-
     instream = None
     close_on_finish = 1
     status = '200'

Modified: zope.server/trunk/src/zope/server/http/tests/test_httpserver.py
===================================================================
--- zope.server/trunk/src/zope/server/http/tests/test_httpserver.py	2012-05-18 16:13:59 UTC (rev 126157)
+++ zope.server/trunk/src/zope/server/http/tests/test_httpserver.py	2012-05-18 16:19:15 UTC (rev 126158)
@@ -22,7 +22,7 @@
 from zope.server.adjustments import Adjustments
 from zope.server.interfaces import ITask
 from zope.server.tests.asyncerror import AsyncoreErrorHook
-from zope.interface import implements
+from zope.interface import implementer
 
 from httplib import HTTPConnection
 from httplib import HTTPResponse as ClientHTTPResponse
@@ -43,10 +43,9 @@
 
 
 
+ at implementer(ITask)
 class SleepingTask(object):
 
-    implements(ITask)
-
     def service(self):
         sleep(0.2)
 

Modified: zope.server/trunk/src/zope/server/linereceiver/linecommandparser.py
===================================================================
--- zope.server/trunk/src/zope/server/linereceiver/linecommandparser.py	2012-05-18 16:13:59 UTC (rev 126157)
+++ zope.server/trunk/src/zope/server/linereceiver/linecommandparser.py	2012-05-18 16:19:15 UTC (rev 126158)
@@ -14,14 +14,13 @@
 """Line Command Parser
 """
 from zope.server.interfaces import IStreamConsumer
-from zope.interface import implements
+from zope.interface import implementer
 
 
+ at implementer(IStreamConsumer)
 class LineCommandParser(object):
     """Line Command parser. Arguments are left alone for now."""
 
-    implements(IStreamConsumer)
-
     # See IStreamConsumer
     completed = 0
     inbuf = ''

Modified: zope.server/trunk/src/zope/server/linereceiver/linetask.py
===================================================================
--- zope.server/trunk/src/zope/server/linereceiver/linetask.py	2012-05-18 16:13:59 UTC (rev 126157)
+++ zope.server/trunk/src/zope/server/linereceiver/linetask.py	2012-05-18 16:19:15 UTC (rev 126158)
@@ -16,14 +16,14 @@
 import socket
 import time
 from zope.server.interfaces import ITask
-from zope.interface import implements
+from zope.interface import implementer
 
 
+ at implementer(ITask)
 class LineTask(object):
     """This is a generic task that can be used with command line
        protocols to handle commands in a separate thread.
     """
-    implements(ITask)
 
     def __init__(self, channel, command, m_name):
         self.channel = channel

Modified: zope.server/trunk/src/zope/server/logger/filelogger.py
===================================================================
--- zope.server/trunk/src/zope/server/logger/filelogger.py	2012-05-18 16:13:59 UTC (rev 126157)
+++ zope.server/trunk/src/zope/server/logger/filelogger.py	2012-05-18 16:19:15 UTC (rev 126158)
@@ -16,14 +16,13 @@
 from types import StringType
 
 from zope.server.interfaces.logger import IMessageLogger
-from zope.interface import implements
+from zope.interface import implementer
 
+ at implementer(IMessageLogger)
 class FileLogger(object):
     """Simple File Logger
     """
 
-    implements(IMessageLogger)
-
     def __init__(self, file, flush=1, mode='a'):
         """pass this either a path or a file object."""
         if type(file) is StringType:

Modified: zope.server/trunk/src/zope/server/logger/pythonlogger.py
===================================================================
--- zope.server/trunk/src/zope/server/logger/pythonlogger.py	2012-05-18 16:13:59 UTC (rev 126157)
+++ zope.server/trunk/src/zope/server/logger/pythonlogger.py	2012-05-18 16:19:15 UTC (rev 126158)
@@ -16,13 +16,12 @@
 import logging
 
 from zope.server.interfaces.logger import IMessageLogger
-from zope.interface import implements
+from zope.interface import implementer
 
+ at implementer(IMessageLogger)
 class PythonLogger(object):
     """Proxy for Python's logging module"""
 
-    implements(IMessageLogger)
-
     def __init__(self, name=None, level=logging.INFO):
         self.name = name
         self.level = level

Modified: zope.server/trunk/src/zope/server/logger/resolvinglogger.py
===================================================================
--- zope.server/trunk/src/zope/server/logger/resolvinglogger.py	2012-05-18 16:13:59 UTC (rev 126157)
+++ zope.server/trunk/src/zope/server/logger/resolvinglogger.py	2012-05-18 16:19:15 UTC (rev 126158)
@@ -14,16 +14,15 @@
 """Resolving Logger
 """
 from zope.server.interfaces.logger import IRequestLogger
-from zope.interface import implements
+from zope.interface import implementer
 
 
+ at implementer(IRequestLogger)
 class ResolvingLogger(object):
     """Feed (ip, message) combinations into this logger to get a
     resolved hostname in front of the message.  The message will not
     be logged until the PTR request finishes (or fails)."""
 
-    implements(IRequestLogger)
-
     def __init__(self, resolver, logger):
         self.resolver = resolver
         # logger is an IMessageLogger

Modified: zope.server/trunk/src/zope/server/logger/socketlogger.py
===================================================================
--- zope.server/trunk/src/zope/server/logger/socketlogger.py	2012-05-18 16:13:59 UTC (rev 126157)
+++ zope.server/trunk/src/zope/server/logger/socketlogger.py	2012-05-18 16:19:15 UTC (rev 126158)
@@ -19,13 +19,12 @@
 import socket
 
 from zope.server.interfaces.logger import IMessageLogger
-from zope.interface import implements
+from zope.interface import implementer
 
+ at implementer(IMessageLogger)
 class SocketLogger(asynchat.async_chat):
     """Log to a stream socket, asynchronously."""
 
-    implements(IMessageLogger)
-
     def __init__(self, address):
         if type(address) == type(''):
             self.create_socket(socket.AF_UNIX, socket.SOCK_STREAM)

Modified: zope.server/trunk/src/zope/server/logger/sysloglogger.py
===================================================================
--- zope.server/trunk/src/zope/server/logger/sysloglogger.py	2012-05-18 16:13:59 UTC (rev 126157)
+++ zope.server/trunk/src/zope/server/logger/sysloglogger.py	2012-05-18 16:19:15 UTC (rev 126158)
@@ -20,9 +20,10 @@
 from zope.server.logger import m_syslog
 
 from zope.server.interfaces.logger import IMessageLogger
-from zope.interface import implements
+from zope.interface import implementer
 
 
+ at implementer(IMessageLogger)
 class SyslogLogger(m_syslog.syslog_client):
     """syslog is a line-oriented log protocol - this class would be
        appropriate for FTP or HTTP logs, but not for dumping stderr
@@ -35,8 +36,6 @@
        blocking send()
     """
 
-    implements(IMessageLogger)
-
     svc_name = 'zope'
     pid_str  = str(os.getpid())
 

Modified: zope.server/trunk/src/zope/server/logger/taillogger.py
===================================================================
--- zope.server/trunk/src/zope/server/logger/taillogger.py	2012-05-18 16:13:59 UTC (rev 126157)
+++ zope.server/trunk/src/zope/server/logger/taillogger.py	2012-05-18 16:19:15 UTC (rev 126158)
@@ -14,13 +14,12 @@
 """Tail Logger
 """
 from zope.server.interfaces.logger import IMessageLogger
-from zope.interface import implements
+from zope.interface import implementer
 
+ at implementer(IMessageLogger)
 class TailLogger(object):
     """Keep track of the last <size> log messages"""
 
-    implements(IMessageLogger)
-
     def __init__(self, logger, size=500):
         self.size = size
         self.logger = logger

Modified: zope.server/trunk/src/zope/server/logger/unresolvinglogger.py
===================================================================
--- zope.server/trunk/src/zope/server/logger/unresolvinglogger.py	2012-05-18 16:13:59 UTC (rev 126157)
+++ zope.server/trunk/src/zope/server/logger/unresolvinglogger.py	2012-05-18 16:19:15 UTC (rev 126158)
@@ -14,13 +14,12 @@
 """Unresolving Logger
 """
 from zope.server.interfaces.logger import IRequestLogger
-from zope.interface import implements
+from zope.interface import implementer
 
+ at implementer(IRequestLogger)
 class UnresolvingLogger(object):
     """Just in case you don't want to resolve"""
 
-    implements(IRequestLogger)
-
     def __init__(self, logger):
         self.logger = logger
 

Modified: zope.server/trunk/src/zope/server/serverbase.py
===================================================================
--- zope.server/trunk/src/zope/server/serverbase.py	2012-05-18 16:13:59 UTC (rev 126157)
+++ zope.server/trunk/src/zope/server/serverbase.py	2012-05-18 16:19:15 UTC (rev 126158)
@@ -22,14 +22,13 @@
 
 from zope.server.adjustments import default_adj
 from zope.server.interfaces import IServer
-from zope.interface import implements
+from zope.interface import implementer
 
 
+ at implementer(IServer)
 class ServerBase(asyncore.dispatcher, object):
     """Async. server base for launching derivatives of ServerChannelBase."""
 
-    implements(IServer)
-
     # See zope.server.interfaces.IServer
     channel_class = None    # Override with a channel class.
     SERVER_IDENT = 'zope.server.serverbase'  # Override.

Modified: zope.server/trunk/src/zope/server/serverchannelbase.py
===================================================================
--- zope.server/trunk/src/zope/server/serverchannelbase.py	2012-05-18 16:13:59 UTC (rev 126157)
+++ zope.server/trunk/src/zope/server/serverchannelbase.py	2012-05-18 16:19:15 UTC (rev 126158)
@@ -21,7 +21,7 @@
 import sys
 import asyncore
 from thread import allocate_lock
-from zope.interface import implements
+from zope.interface import implementer
 
 from zope.server.dualmodechannel import DualModeChannel
 from zope.server.interfaces import IServerChannel, ITask
@@ -30,10 +30,10 @@
 task_lock = allocate_lock()
 
 
+ at implementer(IServerChannel, ITask)
 class ServerChannelBase(DualModeChannel, object):
     """Base class for a high-performance, mixed-mode server-side channel."""
 
-    implements(IServerChannel, ITask)
 
     # See zope.server.interfaces.IServerChannel
     parser_class = None       # Subclasses must provide a parser class

Modified: zope.server/trunk/src/zope/server/taskthreads.py
===================================================================
--- zope.server/trunk/src/zope/server/taskthreads.py	2012-05-18 16:13:59 UTC (rev 126157)
+++ zope.server/trunk/src/zope/server/taskthreads.py	2012-05-18 16:19:15 UTC (rev 126158)
@@ -19,17 +19,16 @@
 import logging
 
 from zope.server.interfaces import ITaskDispatcher
-from zope.interface import implements
+from zope.interface import implementer
 
 
 log = logging.getLogger(__name__)
 
 
+ at implementer(ITaskDispatcher)
 class ThreadedTaskDispatcher(object):
     """A Task Dispatcher that creates a thread for each task."""
 
-    implements(ITaskDispatcher)
-
     stop_count = 0  # Number of threads that will stop soon.
 
     def __init__(self):



More information about the checkins mailing list