| Index: third_party/twisted_8_1/twisted/internet/utils.py
|
| diff --git a/third_party/twisted_8_1/twisted/internet/utils.py b/third_party/twisted_8_1/twisted/internet/utils.py
|
| deleted file mode 100644
|
| index 47ae37912b77c778ea8f6066096d63a99cbf764c..0000000000000000000000000000000000000000
|
| --- a/third_party/twisted_8_1/twisted/internet/utils.py
|
| +++ /dev/null
|
| @@ -1,172 +0,0 @@
|
| -# -*- test-case-name: twisted.test.test_iutils -*-
|
| -# Copyright (c) 2001-2004 Twisted Matrix Laboratories.
|
| -# See LICENSE for details.
|
| -
|
| -"""Utility methods."""
|
| -
|
| -import sys, warnings
|
| -
|
| -from twisted.internet import protocol, defer
|
| -from twisted.python import failure, util as tputil
|
| -
|
| -try:
|
| - import cStringIO as StringIO
|
| -except ImportError:
|
| - import StringIO
|
| -
|
| -def _callProtocolWithDeferred(protocol, executable, args, env, path, reactor=None):
|
| - if reactor is None:
|
| - from twisted.internet import reactor
|
| -
|
| - d = defer.Deferred()
|
| - p = protocol(d)
|
| - reactor.spawnProcess(p, executable, (executable,)+tuple(args), env, path)
|
| - return d
|
| -
|
| -
|
| -class _BackRelay(protocol.ProcessProtocol):
|
| -
|
| - def __init__(self, deferred, errortoo=0):
|
| - self.deferred = deferred
|
| - self.s = StringIO.StringIO()
|
| - if errortoo:
|
| - self.errReceived = self.errReceivedIsGood
|
| - else:
|
| - self.errReceived = self.errReceivedIsBad
|
| -
|
| - def errReceivedIsBad(self, text):
|
| - if self.deferred is not None:
|
| - self.deferred.errback(failure.Failure(IOError("got stderr: %r" % text)))
|
| - self.deferred = None
|
| - self.transport.loseConnection()
|
| -
|
| - def errReceivedIsGood(self, text):
|
| - self.s.write(text)
|
| -
|
| - def outReceived(self, text):
|
| - self.s.write(text)
|
| -
|
| - def processEnded(self, reason):
|
| - if self.deferred is not None:
|
| - self.deferred.callback(self.s.getvalue())
|
| -
|
| -
|
| -def getProcessOutput(executable, args=(), env={}, path='.', reactor=None,
|
| - errortoo=0):
|
| - """Spawn a process and return its output as a deferred returning a string.
|
| -
|
| - @param executable: The file name to run and get the output of - the
|
| - full path should be used.
|
| -
|
| - @param args: the command line arguments to pass to the process; a
|
| - sequence of strings. The first string should *NOT* be the
|
| - executable's name.
|
| -
|
| - @param env: the environment variables to pass to the processs; a
|
| - dictionary of strings.
|
| -
|
| - @param path: the path to run the subprocess in - defaults to the
|
| - current directory.
|
| -
|
| - @param reactor: the reactor to use - defaults to the default reactor
|
| - @param errortoo: if 1, capture stderr too
|
| - """
|
| - return _callProtocolWithDeferred(lambda d:
|
| - _BackRelay(d, errortoo=errortoo),
|
| - executable, args, env, path,
|
| - reactor)
|
| -
|
| -
|
| -class _ValueGetter(protocol.ProcessProtocol):
|
| -
|
| - def __init__(self, deferred):
|
| - self.deferred = deferred
|
| -
|
| - def processEnded(self, reason):
|
| - self.deferred.callback(reason.value.exitCode)
|
| -
|
| -
|
| -def getProcessValue(executable, args=(), env={}, path='.', reactor=None):
|
| - """Spawn a process and return its exit code as a Deferred."""
|
| - return _callProtocolWithDeferred(_ValueGetter, executable, args, env, path,
|
| - reactor)
|
| -
|
| -
|
| -class _EverythingGetter(protocol.ProcessProtocol):
|
| -
|
| - def __init__(self, deferred):
|
| - self.deferred = deferred
|
| - self.outBuf = StringIO.StringIO()
|
| - self.errBuf = StringIO.StringIO()
|
| - self.outReceived = self.outBuf.write
|
| - self.errReceived = self.errBuf.write
|
| -
|
| - def processEnded(self, reason):
|
| - out = self.outBuf.getvalue()
|
| - err = self.errBuf.getvalue()
|
| - e = reason.value
|
| - code = e.exitCode
|
| - if e.signal:
|
| - self.deferred.errback((out, err, e.signal))
|
| - else:
|
| - self.deferred.callback((out, err, code))
|
| -
|
| -def getProcessOutputAndValue(executable, args=(), env={}, path='.',
|
| - reactor=None):
|
| - """Spawn a process and returns a Deferred that will be called back with
|
| - its output (from stdout and stderr) and it's exit code as (out, err, code)
|
| - If a signal is raised, the Deferred will errback with the stdout and
|
| - stderr up to that point, along with the signal, as (out, err, signalNum)
|
| - """
|
| - return _callProtocolWithDeferred(_EverythingGetter, executable, args, env, path,
|
| - reactor)
|
| -
|
| -def _resetWarningFilters(passthrough, addedFilters):
|
| - for f in addedFilters:
|
| - try:
|
| - warnings.filters.remove(f)
|
| - except ValueError:
|
| - pass
|
| - return passthrough
|
| -
|
| -
|
| -def runWithWarningsSuppressed(suppressedWarnings, f, *a, **kw):
|
| - """Run the function C{f}, but with some warnings suppressed.
|
| -
|
| - @param suppressedWarnings: A list of arguments to pass to filterwarnings.
|
| - Must be a sequence of 2-tuples (args, kwargs).
|
| - @param f: A callable, followed by its arguments and keyword arguments
|
| - """
|
| - for args, kwargs in suppressedWarnings:
|
| - warnings.filterwarnings(*args, **kwargs)
|
| - addedFilters = warnings.filters[:len(suppressedWarnings)]
|
| - try:
|
| - result = f(*a, **kw)
|
| - except:
|
| - exc_info = sys.exc_info()
|
| - _resetWarningFilters(None, addedFilters)
|
| - raise exc_info[0], exc_info[1], exc_info[2]
|
| - else:
|
| - if isinstance(result, defer.Deferred):
|
| - result.addBoth(_resetWarningFilters, addedFilters)
|
| - else:
|
| - _resetWarningFilters(None, addedFilters)
|
| - return result
|
| -
|
| -
|
| -def suppressWarnings(f, *suppressedWarnings):
|
| - """
|
| - Wrap C{f} in a callable which suppresses the indicated warnings before
|
| - invoking C{f} and unsuppresses them afterwards. If f returns a Deferred,
|
| - warnings will remain suppressed until the Deferred fires.
|
| - """
|
| - def warningSuppressingWrapper(*a, **kw):
|
| - return runWithWarningsSuppressed(suppressedWarnings, f, *a, **kw)
|
| - return tputil.mergeFunctionMetadata(f, warningSuppressingWrapper)
|
| -
|
| -
|
| -__all__ = [
|
| - "runWithWarningsSuppressed", "suppressWarnings",
|
| -
|
| - "getProcessOutput", "getProcessValue", "getProcessOutputAndValue",
|
| - ]
|
|
|