Index: third_party/twisted_8_1/twisted/internet/_posixstdio.py |
diff --git a/third_party/twisted_8_1/twisted/internet/_posixstdio.py b/third_party/twisted_8_1/twisted/internet/_posixstdio.py |
deleted file mode 100644 |
index 56eb141ec3752c6676d10ceae92edbbc48ab3967..0000000000000000000000000000000000000000 |
--- a/third_party/twisted_8_1/twisted/internet/_posixstdio.py |
+++ /dev/null |
@@ -1,171 +0,0 @@ |
-# -*- test-case-name: twisted.test.test_stdio -*- |
- |
-"""Standard input/out/err support. |
- |
-Future Plans:: |
- |
- support for stderr, perhaps |
- Rewrite to use the reactor instead of an ad-hoc mechanism for connecting |
- protocols to transport. |
- |
-Maintainer: U{James Y Knight <mailto:foom@fuhm.net>} |
-""" |
- |
-import warnings |
-from zope.interface import implements |
- |
-from twisted.internet import process, error, interfaces |
-from twisted.python import log, failure |
- |
- |
-class PipeAddress(object): |
- implements(interfaces.IAddress) |
- |
- |
-class StandardIO(object): |
- implements(interfaces.ITransport, interfaces.IProducer, interfaces.IConsumer, interfaces.IHalfCloseableDescriptor) |
- _reader = None |
- _writer = None |
- disconnected = False |
- disconnecting = False |
- |
- def __init__(self, proto, stdin=0, stdout=1): |
- from twisted.internet import reactor |
- self.protocol = proto |
- |
- self._reader=process.ProcessReader(reactor, self, 'read', stdin) |
- self._reader.startReading() |
- self._writer=process.ProcessWriter(reactor, self, 'write', stdout) |
- self._writer.startReading() |
- self.protocol.makeConnection(self) |
- |
- # ITransport |
- def loseWriteConnection(self): |
- if self._writer is not None: |
- self._writer.loseConnection() |
- |
- def write(self, data): |
- if self._writer is not None: |
- self._writer.write(data) |
- |
- def writeSequence(self, data): |
- if self._writer is not None: |
- self._writer.writeSequence(data) |
- |
- def loseConnection(self): |
- self.disconnecting = True |
- |
- if self._writer is not None: |
- self._writer.loseConnection() |
- if self._reader is not None: |
- # Don't loseConnection, because we don't want to SIGPIPE it. |
- self._reader.stopReading() |
- |
- def getPeer(self): |
- return PipeAddress() |
- |
- def getHost(self): |
- return PipeAddress() |
- |
- |
- # Callbacks from process.ProcessReader/ProcessWriter |
- def childDataReceived(self, fd, data): |
- self.protocol.dataReceived(data) |
- |
- def childConnectionLost(self, fd, reason): |
- if self.disconnected: |
- return |
- |
- if reason.value.__class__ == error.ConnectionDone: |
- # Normal close |
- if fd == 'read': |
- self._readConnectionLost(reason) |
- else: |
- self._writeConnectionLost(reason) |
- else: |
- self.connectionLost(reason) |
- |
- def connectionLost(self, reason): |
- self.disconnected = True |
- |
- # Make sure to cleanup the other half |
- _reader = self._reader |
- _writer = self._writer |
- protocol = self.protocol |
- self._reader = self._writer = None |
- self.protocol = None |
- |
- if _writer is not None and not _writer.disconnected: |
- _writer.connectionLost(reason) |
- |
- if _reader is not None and not _reader.disconnected: |
- _reader.connectionLost(reason) |
- |
- try: |
- protocol.connectionLost(reason) |
- except: |
- log.err() |
- |
- def _writeConnectionLost(self, reason): |
- self._writer=None |
- if self.disconnecting: |
- self.connectionLost(reason) |
- return |
- |
- p = interfaces.IHalfCloseableProtocol(self.protocol, None) |
- if p: |
- try: |
- p.writeConnectionLost() |
- except: |
- log.err() |
- self.connectionLost(failure.Failure()) |
- |
- def _readConnectionLost(self, reason): |
- self._reader=None |
- p = interfaces.IHalfCloseableProtocol(self.protocol, None) |
- if p: |
- try: |
- p.readConnectionLost() |
- except: |
- log.err() |
- self.connectionLost(failure.Failure()) |
- else: |
- self.connectionLost(reason) |
- |
- # IConsumer |
- def registerProducer(self, producer, streaming): |
- if self._writer is None: |
- producer.stopProducing() |
- else: |
- self._writer.registerProducer(producer, streaming) |
- |
- def unregisterProducer(self): |
- if self._writer is not None: |
- self._writer.unregisterProducer() |
- |
- # IProducer |
- def stopProducing(self): |
- self.loseConnection() |
- |
- def pauseProducing(self): |
- if self._reader is not None: |
- self._reader.pauseProducing() |
- |
- def resumeProducing(self): |
- if self._reader is not None: |
- self._reader.resumeProducing() |
- |
- # Stupid compatibility: |
- def closeStdin(self): |
- """Compatibility only, don't use. Same as loseWriteConnection.""" |
- warnings.warn("This function is deprecated, use loseWriteConnection instead.", |
- category=DeprecationWarning, stacklevel=2) |
- self.loseWriteConnection() |
- |
- def stopReading(self): |
- """Compatibility only, don't use. Call pauseProducing.""" |
- self.pauseProducing() |
- |
- def startReading(self): |
- """Compatibility only, don't use. Call resumeProducing.""" |
- self.resumeProducing() |