r47237 - Merge implementer-windows-8291: Change uses of implements to implementer in Windows support code

hawkowl-TA+aISz0psMTMxyoc4vAAJOcrHinNvQL0E9HWUfgJXw@public.gmane.org Thu, 14 Apr 2016 19:26:48 -0600 (MDT)
Newsgroups gmane.comp.python.twisted.commits
Message-ID <[email protected]>
Author: hawkowl
Date: Thu Apr 14 19:26:41 2016
New Revision: 47237

Added:
   trunk/twisted/topfiles/8291.misc
Modified:
   trunk/twisted/internet/_dumbwin32proc.py
   trunk/twisted/internet/_pollingfile.py
   trunk/twisted/internet/_threadedselect.py
   trunk/twisted/internet/_win32stdio.py
   trunk/twisted/internet/iocpreactor/abstract.py
   trunk/twisted/internet/iocpreactor/reactor.py
   trunk/twisted/internet/iocpreactor/tcp.py
   trunk/twisted/internet/iocpreactor/udp.py
   trunk/twisted/internet/win32eventreactor.py

Log:
Merge implementer-windows-8291: Change uses of implements to implementer in Windows support code

Author: hawkowl
Reviewer: adiroiban
Fixes: #8291

Modified: trunk/twisted/internet/_dumbwin32proc.py
==============================================================================
--- trunk/twisted/internet/_dumbwin32proc.py	(original)
+++ trunk/twisted/internet/_dumbwin32proc.py	Thu Apr 14 19:26:41 2016
@@ -23,7 +23,7 @@
 PIPE_ATTRS_INHERITABLE = win32security.SECURITY_ATTRIBUTES()
 PIPE_ATTRS_INHERITABLE.bInheritHandle = 1
 
-from zope.interface import implements
+from zope.interface import implementer
 from twisted.internet.interfaces import IProcessTransport, IConsumer, IProducer
 
 from twisted.python.win32 import quoteArguments
@@ -94,6 +94,8 @@
 
     return pywinerr.args[0] == 193
 
+
+@implementer(IProcessTransport, IConsumer, IProducer)
 class Process(_pollingfile._PollingTimer, BaseProcess):
     """A process that integrates with the Twisted event loop.
 
@@ -112,8 +114,6 @@
         msvcrt.setmode(sys.stderr.fileno(), os.O_BINARY)
 
     """
-    implements(IProcessTransport, IConsumer, IProducer)
-
     closedNotifies = 0
 
     def __init__(self, reactor, protocol, command, args, environment, path):

Modified: trunk/twisted/internet/_pollingfile.py
==============================================================================
--- trunk/twisted/internet/_pollingfile.py	(original)
+++ trunk/twisted/internet/_pollingfile.py	Thu Apr 14 19:26:41 2016
@@ -7,8 +7,8 @@
 select() - this is pretty much only useful on Windows.
 """
 
-from zope.interface import implements
 
+from zope.interface import implementer
 from twisted.internet.interfaces import IConsumer, IPushProducer
 
 
@@ -103,10 +103,9 @@
 import win32api
 import pywintypes
 
+@implementer(IPushProducer)
 class _PollableReadPipe(_PollableResource):
 
-    implements(IPushProducer)
-
     def __init__(self, pipe, receivedCallback, lostCallback):
         # security attributes for pipes
         self.pipe = pipe
@@ -159,10 +158,9 @@
 
 FULL_BUFFER_SIZE = 64 * 1024
 
+@implementer(IConsumer)
 class _PollableWritePipe(_PollableResource):
 
-    implements(IConsumer)
-
     def __init__(self, writePipe, lostCallback):
         self.disconnecting = False
         self.producer = None

Modified: trunk/twisted/internet/_threadedselect.py
==============================================================================
--- trunk/twisted/internet/_threadedselect.py	(original)
+++ trunk/twisted/internet/_threadedselect.py	Thu Apr 14 19:26:41 2016
@@ -54,7 +54,7 @@
 from Queue import Queue, Empty
 import sys
 
-from zope.interface import implements
+from zope.interface import implementer
 
 from twisted.internet.interfaces import IReactorFDSet
 from twisted.internet import posixbase
@@ -75,11 +75,13 @@
 def raiseException(e):
     raise e
 
+
+
+@implementer(IReactorFDSet)
 class ThreadedSelectReactor(posixbase.PosixReactorBase):
     """A threaded select() based reactor - runs on all POSIX platforms and on
     Win32.
     """
-    implements(IReactorFDSet)
 
     def __init__(self):
         threadable.init(1)

Modified: trunk/twisted/internet/_win32stdio.py
==============================================================================
--- trunk/twisted/internet/_win32stdio.py	(original)
+++ trunk/twisted/internet/_win32stdio.py	Thu Apr 14 19:26:41 2016
@@ -7,7 +7,7 @@
 import win32api
 import os, msvcrt
 
-from zope.interface import implements
+from zope.interface import implementer
 
 from twisted.internet.interfaces import IHalfCloseableProtocol, ITransport, IAddress
 from twisted.internet.interfaces import IConsumer, IPushProducer
@@ -15,18 +15,14 @@
 from twisted.internet import _pollingfile, main
 from twisted.python.failure import Failure
 
-
+@implementer(IAddress)
 class Win32PipeAddress(object):
-    implements(IAddress)
-
+    pass
 
 
+@implementer(ITransport, IConsumer, IPushProducer)
 class StandardIO(_pollingfile._PollingTimer):
 
-    implements(ITransport,
-               IConsumer,
-               IPushProducer)
-
     disconnecting = False
     disconnected = False
 

Modified: trunk/twisted/internet/iocpreactor/abstract.py
==============================================================================
--- trunk/twisted/internet/iocpreactor/abstract.py	(original)
+++ trunk/twisted/internet/iocpreactor/abstract.py	Thu Apr 14 19:26:41 2016
@@ -9,7 +9,7 @@
 from twisted.internet.abstract import _ConsumerMixin, _LogOwner
 from twisted.python import failure
 
-from zope.interface import implements
+from zope.interface import implementer
 import errno
 
 from twisted.internet.iocpreactor.const import ERROR_HANDLE_EOF
@@ -17,13 +17,12 @@
 from twisted.internet.iocpreactor import iocpsupport as _iocp
 
 
-
+@implementer(interfaces.IPushProducer, interfaces.IConsumer,
+             interfaces.ITransport, interfaces.IHalfCloseableDescriptor)
 class FileHandle(_ConsumerMixin, _LogOwner):
     """
     File handle that can read and write asynchronously
     """
-    implements(interfaces.IPushProducer, interfaces.IConsumer,
-               interfaces.ITransport, interfaces.IHalfCloseableDescriptor)
     # read stuff
     maxReadBuffers = 16
     readBufferSize = 4096
@@ -397,4 +396,3 @@
 
 
 __all__ = ['FileHandle']
-

Modified: trunk/twisted/internet/iocpreactor/reactor.py
==============================================================================
--- trunk/twisted/internet/iocpreactor/reactor.py	(original)
+++ trunk/twisted/internet/iocpreactor/reactor.py	Thu Apr 14 19:26:41 2016
@@ -8,7 +8,7 @@
 
 import warnings, socket, sys
 
-from zope.interface import implements
+from zope.interface import implementer
 
 from twisted.internet import base, interfaces, main, error
 from twisted.python import log, failure
@@ -45,11 +45,12 @@
 
 
 
+@implementer(interfaces.IReactorTCP, interfaces.IReactorUDP,
+             interfaces.IReactorMulticast, interfaces.IReactorProcess,
+             *_extraInterfaces)
 class IOCPReactor(base._SignalReactorMixin, base.ReactorBase,
                   _ThreadedWin32EventsMixin):
-    implements(interfaces.IReactorTCP, interfaces.IReactorUDP,
-               interfaces.IReactorMulticast, interfaces.IReactorProcess,
-               *_extraInterfaces)
+
 
     port = None
 
@@ -270,4 +271,3 @@
 
 
 __all__ = ['IOCPReactor', 'install']
-

Modified: trunk/twisted/internet/iocpreactor/tcp.py
==============================================================================
--- trunk/twisted/internet/iocpreactor/tcp.py	(original)
+++ trunk/twisted/internet/iocpreactor/tcp.py	Thu Apr 14 19:26:41 2016
@@ -7,7 +7,7 @@
 
 import socket, operator, errno, struct
 
-from zope.interface import implements, classImplements
+from zope.interface import implementer, classImplements
 
 from twisted.internet import interfaces, error, address, main, defer
 from twisted.internet.protocol import Protocol
@@ -35,15 +35,14 @@
         ERROR_NETWORK_UNREACHABLE: errno.WSAENETUNREACH,
         }
 
+@implementer(IReadWriteHandle, interfaces.ITCPTransport,
+             interfaces.ISystemHandle)
 class Connection(abstract.FileHandle, _SocketCloser, _AbortingMixin):
     """
     @ivar TLS: C{False} to indicate the connection is in normal TCP mode,
         C{True} to indicate that TLS has been started and that operations must
         be routed through the L{TLSMemoryBIOProtocol} instance.
     """
-    implements(IReadWriteHandle, interfaces.ITCPTransport,
-               interfaces.ISystemHandle)
-
     TLS = False
 
 
@@ -388,8 +387,8 @@
 
 
 
+@implementer(interfaces.IListeningPort)
 class Port(_SocketCloser, _LogOwner):
-    implements(interfaces.IListeningPort)
 
     connected = False
     disconnected = False
@@ -586,5 +585,3 @@
 
         if rc and rc != ERROR_IO_PENDING:
             self.handleAccept(rc, evt)
-
-

Modified: trunk/twisted/internet/iocpreactor/udp.py
==============================================================================
--- trunk/twisted/internet/iocpreactor/udp.py	(original)
+++ trunk/twisted/internet/iocpreactor/udp.py	Thu Apr 14 19:26:41 2016
@@ -7,7 +7,7 @@
 
 import socket, operator, struct, warnings, errno
 
-from zope.interface import implements
+from zope.interface import implementer
 
 from twisted.internet import defer, address, error, interfaces
 from twisted.internet.abstract import isIPAddress, isIPv6Address
@@ -21,6 +21,8 @@
 
 
 
+@implementer(IReadWriteHandle, interfaces.IListeningPort,
+             interfaces.IUDPTransport, interfaces.ISystemHandle)
 class Port(abstract.FileHandle):
     """
     UDP port, listening for packets.
@@ -28,10 +30,6 @@
     @ivar addressFamily: L{socket.AF_INET} or L{socket.AF_INET6}, depending on
         whether this port is listening on an IPv4 address or an IPv6 address.
     """
-    implements(
-        IReadWriteHandle, interfaces.IListeningPort, interfaces.IUDPTransport,
-        interfaces.ISystemHandle)
-
     addressFamily = socket.AF_INET
     socketType = socket.SOCK_DGRAM
     dynamicReadBuffers = False
@@ -410,14 +408,12 @@
 
 
 
+@implementer(interfaces.IMulticastTransport)
 class MulticastPort(MulticastMixin, Port):
     """
     UDP Port that supports multicasting.
     """
 
-    implements(interfaces.IMulticastTransport)
-
-
     def __init__(self, port, proto, interface='', maxPacketSize=8192,
                  reactor=None, listenMultiple=False):
         Port.__init__(self, port, proto, interface, maxPacketSize, reactor)

Modified: trunk/twisted/internet/win32eventreactor.py
==============================================================================
--- trunk/twisted/internet/win32eventreactor.py	(original)
+++ trunk/twisted/internet/win32eventreactor.py	Thu Apr 14 19:26:41 2016
@@ -50,7 +50,7 @@
 from threading import Thread
 from weakref import WeakKeyDictionary
 
-from zope.interface import implements
+from zope.interface import implementer
 
 # Win32 imports
 from win32file import FD_READ, FD_CLOSE, FD_ACCEPT, FD_CONNECT, WSAEventSelect
@@ -78,6 +78,7 @@
 from twisted.internet.threads import blockingCallFromThread
 
 
+@implementer(IReactorFDSet, IReactorWin32Events)
 class Win32Reactor(posixbase.PosixReactorBase):
     """
     Reactor that uses Win32 event APIs.
@@ -118,8 +119,6 @@
         will also forget about it.
     @type _closedAndNotReading: C{WeakKeyDictionary}
     """
-    implements(IReactorFDSet, IReactorWin32Events)
-
     dummyEvent = CreateEvent(None, 0, 0, None)
 
     def __init__(self):
@@ -359,6 +358,7 @@
 
 
 
+@implementer(IReactorWin32Events)
 class _ThreadedWin32EventsMixin(object):
     """
     This mixin implements L{IReactorWin32Events} for another reactor by running
@@ -370,7 +370,6 @@
     @ivar _reactorThread: The L{threading.Thread} which is running the
         L{Win32Reactor}.  This is C{None} until it is actually needed.
     """
-    implements(IReactorWin32Events)
 
     _reactor = None
     _reactorThread = None