本文整理汇总了Python中twisted.application.service.Application方法的典型用法代码示例。如果您正苦于以下问题:Python service.Application方法的具体用法?Python service.Application怎么用?Python service.Application使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类twisted.application.service
的用法示例。
在下文中一共展示了service.Application方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: getApplication
# 需要导入模块: from twisted.application import service [as 别名]
# 或者: from twisted.application.service import Application [as 别名]
def getApplication(config, passphrase):
s = [(config[t], t)
for t in ['python', 'source', 'file'] if config[t]][0]
filename, style = s[0], {'file': 'pickle'}.get(s[1], s[1])
try:
log.msg("Loading %s..." % filename)
application = service.loadApplication(filename, style, passphrase)
log.msg("Loaded.")
except Exception as e:
s = "Failed to load application: %s" % e
if isinstance(e, KeyError) and e.args[0] == "application":
s += """
Could not find 'application' in the file. To use 'twistd -y', your .tac
file must create a suitable object (e.g., by calling service.Application())
and store it in a variable named 'application'. twistd loads your .tac file
and scans the global variables for one of this name.
Please read the 'Using Application' HOWTO for details.
"""
traceback.print_exc(file=log.logfile)
log.msg(s)
log.deferr()
sys.exit('\n' + s + '\n')
return application
示例2: testLoadApplication
# 需要导入模块: from twisted.application import service [as 别名]
# 或者: from twisted.application.service import Application [as 别名]
def testLoadApplication(self):
"""
Test loading an application file in different dump format.
"""
a = service.Application("hello")
baseconfig = {'file': None, 'source': None, 'python':None}
for style in 'source pickle'.split():
config = baseconfig.copy()
config[{'pickle': 'file'}.get(style, style)] = 'helloapplication'
sob.IPersistable(a).setStyle(style)
sob.IPersistable(a).save(filename='helloapplication')
a1 = app.getApplication(config, None)
self.assertEqual(service.IService(a1).name, "hello")
config = baseconfig.copy()
config['python'] = 'helloapplication'
with open("helloapplication", 'w') as f:
f.writelines([
"from twisted.application import service\n",
"application = service.Application('hello')\n",
])
a1 = app.getApplication(config, None)
self.assertEqual(service.IService(a1).name, "hello")
示例3: test_applicationRunnerGetsCorrectApplication
# 需要导入模块: from twisted.application import service [as 别名]
# 或者: from twisted.application.service import Application [as 别名]
def test_applicationRunnerGetsCorrectApplication(self):
"""
Ensure that a twistd plugin gets used in appropriate ways: it
is passed its Options instance, and the service it returns is
added to the application.
"""
arunner = CrippledApplicationRunner(self.config)
arunner.run()
self.assertIs(
self.serviceMaker.options, self.config.subOptions,
"ServiceMaker.makeService needs to be passed the correct "
"sub Command object.")
self.assertIs(
self.serviceMaker.service,
service.IService(arunner.application).services[0],
"ServiceMaker.makeService's result needs to be set as a child "
"of the Application.")
示例4: test_loggerComponentBeatsLegacyLoggerComponent
# 需要导入模块: from twisted.application import service [as 别名]
# 或者: from twisted.application.service import Application [as 别名]
def test_loggerComponentBeatsLegacyLoggerComponent(self):
"""
A L{ILogObserver} takes precedence over a L{LegacyILogObserver}
component set on Application.
"""
nonlogs = []
observer = self._makeObserver()
application = Componentized()
application.setComponent(ILogObserver, observer)
application.setComponent(LegacyILogObserver, nonlogs.append)
logger = app.AppLogger({})
logger.start(application)
self._checkObserver(observer)
self.assertEqual(nonlogs, [])
示例5: _setupConfiguredLogger
# 需要导入模块: from twisted.application import service [as 别名]
# 或者: from twisted.application.service import Application [as 别名]
def _setupConfiguredLogger(self, application, extraLogArgs={},
appLogger=app.AppLogger):
"""
Set up an AppLogger which exercises the C{logger} configuration option.
@type application: L{Componentized}
@param application: The L{Application} object to pass to
L{app.AppLogger.start}.
@type extraLogArgs: C{dict}
@param extraLogArgs: extra values to pass to AppLogger.
@type appLogger: L{AppLogger} class, or a subclass
@param appLogger: factory for L{AppLogger} instances.
@rtype: C{list}
@return: The logs accumulated by the log observer.
"""
observer = self._makeObserver()
logArgs = {"logger": lambda: observer}
logArgs.update(extraLogArgs)
logger = appLogger(logArgs)
logger.start(application)
return observer
示例6: test_nonAsciiLog
# 需要导入模块: from twisted.application import service [as 别名]
# 或者: from twisted.application.service import Application [as 别名]
def test_nonAsciiLog(self):
"""
Make sure that the file based error log can write non ascii data
"""
logpath = self.mktemp()
service = ErrorLoggingMultiService(
True,
logpath,
10000,
10,
False,
)
app = Application("non-ascii")
service.setServiceParent(app)
observer = app.getComponent(ILogObserver, None)
self.assertTrue(observer is not None)
log = Logger(observer=observer)
log.error(u"Couldn\u2019t be wrong")
with open(logpath) as f:
logentry = f.read()
self.assertIn("Couldn\xe2\x80\x99t be wrong", logentry)
示例7: main
# 需要导入模块: from twisted.application import service [as 别名]
# 或者: from twisted.application.service import Application [as 别名]
def main():
with open('/tmp/server.pem', 'rb') as fp:
certData = fp.read()
sslcert = ssl.PrivateCertificate.loadPEM(certData)
logging.basicConfig(level=logging.INFO)
socks = MySOCKSv4Factory("http://127.0.0.1:2357", "http://127.0.0.1:8080", sslcert)
socks.protocol = MySOCKSv4
srv = service.MultiService()
srv.addService(internet.TCPServer(9050, socks))
srv.addService(internet.TCPServer(2357, server.Site(WebEchoService())))
application = service.Application("Receive Request")
srv.setServiceParent(application)
srv.startService()
reactor.run()
示例8: getApplication
# 需要导入模块: from twisted.application import service [as 别名]
# 或者: from twisted.application.service import Application [as 别名]
def getApplication(config, passphrase):
s = [(config[t], t)
for t in ['python', 'source', 'file'] if config[t]][0]
filename, style = s[0], {'file':'pickle'}.get(s[1],s[1])
try:
log.msg("Loading %s..." % filename)
application = service.loadApplication(filename, style, passphrase)
log.msg("Loaded.")
except Exception, e:
s = "Failed to load application: %s" % e
if isinstance(e, KeyError) and e.args[0] == "application":
s += """
Could not find 'application' in the file. To use 'twistd -y', your .tac
file must create a suitable object (e.g., by calling service.Application())
and store it in a variable named 'application'. twistd loads your .tac file
and scans the global variables for one of this name.
Please read the 'Using Application' HOWTO for details.
"""
traceback.print_exc(file=log.logfile)
log.msg(s)
log.deferr()
sys.exit('\n' + s + '\n')
示例9: test_simpleStoreAndLoad
# 需要导入模块: from twisted.application import service [as 别名]
# 或者: from twisted.application.service import Application [as 别名]
def test_simpleStoreAndLoad(self):
a = service.Application("hello")
p = sob.IPersistable(a)
for style in 'source pickle'.split():
p.setStyle(style)
p.save()
a1 = service.loadApplication("hello.ta"+style[0], style)
self.assertEqual(service.IService(a1).name, "hello")
f = open("hello.tac", 'w')
f.writelines([
"from twisted.application import service\n",
"application = service.Application('hello')\n",
])
f.close()
a1 = service.loadApplication("hello.tac", 'python')
self.assertEqual(service.IService(a1).name, "hello")
示例10: testLoadApplication
# 需要导入模块: from twisted.application import service [as 别名]
# 或者: from twisted.application.service import Application [as 别名]
def testLoadApplication(self):
"""
Test loading an application file in different dump format.
"""
a = service.Application("hello")
baseconfig = {'file': None, 'source': None, 'python':None}
for style in 'source pickle'.split():
config = baseconfig.copy()
config[{'pickle': 'file'}.get(style, style)] = 'helloapplication'
sob.IPersistable(a).setStyle(style)
sob.IPersistable(a).save(filename='helloapplication')
a1 = app.getApplication(config, None)
self.assertEqual(service.IService(a1).name, "hello")
config = baseconfig.copy()
config['python'] = 'helloapplication'
f = open("helloapplication", 'w')
f.writelines([
"from twisted.application import service\n",
"application = service.Application('hello')\n",
])
f.close()
a1 = app.getApplication(config, None)
self.assertEqual(service.IService(a1).name, "hello")
示例11: test_applicationRunnerGetsCorrectApplication
# 需要导入模块: from twisted.application import service [as 别名]
# 或者: from twisted.application.service import Application [as 别名]
def test_applicationRunnerGetsCorrectApplication(self):
"""
Ensure that a twistd plugin gets used in appropriate ways: it
is passed its Options instance, and the service it returns is
added to the application.
"""
arunner = CrippledApplicationRunner(self.config)
arunner.run()
self.assertIdentical(
self.serviceMaker.options, self.config.subOptions,
"ServiceMaker.makeService needs to be passed the correct "
"sub Command object.")
self.assertIdentical(
self.serviceMaker.service,
service.IService(arunner.application).services[0],
"ServiceMaker.makeService's result needs to be set as a child "
"of the Application.")
示例12: getApplication
# 需要导入模块: from twisted.application import service [as 别名]
# 或者: from twisted.application.service import Application [as 别名]
def getApplication(config, passphrase):
s = [(config[t], t)
for t in ['python', 'xml', 'source', 'file'] if config[t]][0]
filename, style = s[0], {'file':'pickle'}.get(s[1],s[1])
try:
log.msg("Loading %s..." % filename)
application = service.loadApplication(filename, style, passphrase)
log.msg("Loaded.")
except Exception, e:
s = "Failed to load application: %s" % e
if isinstance(e, KeyError) and e.args[0] == "application":
s += """
Could not find 'application' in the file. To use 'twistd -y', your .tac
file must create a suitable object (e.g., by calling service.Application())
and store it in a variable named 'application'. twistd loads your .tac file
and scans the global variables for one of this name.
Please read the 'Using Application' HOWTO for details.
"""
traceback.print_exc(file=log.logfile)
log.msg(s)
log.deferr()
sys.exit('\n' + s + '\n')
示例13: test_simpleStoreAndLoad
# 需要导入模块: from twisted.application import service [as 别名]
# 或者: from twisted.application.service import Application [as 别名]
def test_simpleStoreAndLoad(self):
a = service.Application("hello")
p = sob.IPersistable(a)
for style in 'xml source pickle'.split():
if style == 'xml' and not gotMicrodom:
continue
p.setStyle(style)
p.save()
a1 = service.loadApplication("hello.ta"+style[0], style)
self.assertEqual(service.IService(a1).name, "hello")
open("hello.tac", 'w').writelines([
"from twisted.application import service\n",
"application = service.Application('hello')\n",
])
a1 = service.loadApplication("hello.tac", 'python')
self.assertEqual(service.IService(a1).name, "hello")
示例14: testLoadApplication
# 需要导入模块: from twisted.application import service [as 别名]
# 或者: from twisted.application.service import Application [as 别名]
def testLoadApplication(self):
a = service.Application("hello")
baseconfig = {'file': None, 'xml': None, 'source': None, 'python':None}
for style in 'source xml pickle'.split():
if style == 'xml' and not gotMicrodom:
continue
config = baseconfig.copy()
config[{'pickle': 'file'}.get(style, style)] = 'helloapplication'
sob.IPersistable(a).setStyle(style)
sob.IPersistable(a).save(filename='helloapplication')
a1 = app.getApplication(config, None)
self.assertEqual(service.IService(a1).name, "hello")
config = baseconfig.copy()
config['python'] = 'helloapplication'
open("helloapplication", 'w').writelines([
"from twisted.application import service\n",
"application = service.Application('hello')\n",
])
a1 = app.getApplication(config, None)
self.assertEqual(service.IService(a1).name, "hello")
示例15: testSimpleUNIX
# 需要导入模块: from twisted.application import service [as 别名]
# 或者: from twisted.application.service import Application [as 别名]
def testSimpleUNIX(self):
# XXX - replace this test with one that does the same thing, but
# with no web dependencies.
if not interfaces.IReactorUNIX(reactor, None):
raise unittest.SkipTest, "This reactor does not support UNIX domain sockets"
if not gotMicrodom:
raise unittest.SkipTest("Need twisted.web to run this test.")
s = "(dp0\nS'udpConnectors'\np1\n(lp2\nsS'unixConnectors'\np3\n(lp4\nsS'twisted.internet.app.Application.persistenceVersion'\np5\nI12\nsS'name'\np6\nS'web'\np7\nsS'sslConnectors'\np8\n(lp9\nsS'sslPorts'\np10\n(lp11\nsS'tcpPorts'\np12\n(lp13\nsS'unixPorts'\np14\n(lp15\n(S'/home/moshez/.twistd-web-pb'\np16\n(itwisted.spread.pb\nBrokerFactory\np17\n(dp19\nS'objectToBroker'\np20\n(itwisted.web.distrib\nResourcePublisher\np21\n(dp22\nS'twisted.web.distrib.ResourcePublisher.persistenceVersion'\np23\nI2\nsS'site'\np24\n(itwisted.web.server\nSite\np25\n(dp26\nS'resource'\np27\n(itwisted.web.static\nFile\np28\n(dp29\nS'ignoredExts'\np30\n(lp31\nsS'defaultType'\np32\nS'text/html'\np33\nsS'registry'\np34\n(itwisted.web.static\nRegistry\np35\n(dp36\nS'twisted.web.static.Registry.persistenceVersion'\np37\nI1\nsS'twisted.python.components.Componentized.persistenceVersion'\np38\nI1\nsS'_pathCache'\np39\n(dp40\nsS'_adapterCache'\np41\n(dp42\nS'twisted.internet.interfaces.IServiceCollection'\np43\n(itwisted.internet.app\nApplication\np44\n(dp45\ng1\ng2\nsg3\ng4\nsg5\nI12\nsg6\ng7\nsg8\ng9\nsg10\ng11\nsg12\ng13\nsg14\ng15\nsS'extraPorts'\np46\n(lp47\nsS'gid'\np48\nI1053\nsS'tcpConnectors'\np49\n(lp50\nsS'extraConnectors'\np51\n(lp52\nsS'udpPorts'\np53\n(lp54\nsS'services'\np55\n(dp56\nsS'persistStyle'\np57\nS'pickle'\np58\nsS'delayeds'\np59\n(lp60\nsS'uid'\np61\nI1053\nsbssbsS'encoding'\np62\nNsS'twisted.web.static.File.persistenceVersion'\np63\nI6\nsS'path'\np64\nS'/home/moshez/public_html.twistd'\np65\nsS'type'\np66\ng33\nsS'children'\np67\n(dp68\nsS'processors'\np69\n(dp70\nS'.php3'\np71\nctwisted.web.twcgi\nPHP3Script\np72\nsS'.rpy'\np73\nctwisted.web.script\nResourceScript\np74\nsS'.php'\np75\nctwisted.web.twcgi\nPHPScript\np76\nsS'.cgi'\np77\nctwisted.web.twcgi\nCGIScript\np78\nsS'.epy'\np79\nctwisted.web.script\nPythonScript\np80\nsS'.trp'\np81\nctwisted.web.trp\nResourceUnpickler\np82\nssbsS'logPath'\np83\nNsS'sessions'\np84\n(dp85\nsbsbsS'twisted.spread.pb.BrokerFactory.persistenceVersion'\np86\nI3\nsbI5\nI438\ntp87\nasg55\ng56\nsg48\nI1053\nsg49\ng50\nsg51\ng52\nsg53\ng54\nsg46\ng47\nsg57\ng58\nsg61\nI1053\nsg59\ng60\ns."
d = pickle.loads(s)
a = Dummy()
a.__dict__ = d
appl = compat.convert(a)
self.assertEqual(service.IProcess(appl).uid, 1053)
self.assertEqual(service.IProcess(appl).gid, 1053)
self.assertEqual(service.IService(appl).name, "web")
services = list(service.IServiceCollection(appl))
self.assertEqual(len(services), 1)
s = services[0]
self.assertEqual(s.parent, service.IServiceCollection(appl))
self.assert_(s.privileged)
self.assert_(isinstance(s, internet.UNIXServer))
args = s.args
self.assertEqual(args[0], '/home/moshez/.twistd-web-pb')