Python twisted.application.service.IServiceMaker() Examples
The following are 12
code examples of twisted.application.service.IServiceMaker().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
twisted.application.service
, or try the search function
.
Example #1
Source File: epoptesd.py From epoptes with GNU General Public License v3.0 | 5 votes |
def makeService(self, options): """Override IServiceMaker.makeService.""" factory = bashplex.DelimitedBashReceiverFactory() factory.ping_interval = int(options['ping-interval']) factory.ping_timeout = int(options['ping-timeout']) factory.startup_commands = filter_bash( '/usr/share/epoptes/client-functions') if config.system['ENCRYPTION']: client_service = internet.SSLServer( int(config.system['PORT']), factory, ServerContextFactory()) else: client_service = internet.TCPServer( int(config.system['PORT']), factory) gid = grp.getgrnam(config.system['SOCKET_GROUP'])[2] if not os.path.isdir(config.system['DIR']): # TODO: for some reason this does 0750 instead os.makedirs(config.system['DIR'], 0o2770) os.chmod(config.system['DIR'], 0o2770) os.chown(config.system['DIR'], -1, gid) gui_service = internet.UNIXServer( "%s/epoptes.socket" % config.system['DIR'], guiplex.GUIFactory()) top_service = service.MultiService() top_service.addService(client_service) top_service.addService(gui_service) return top_service
Example #2
Source File: app.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def createOrGetApplication(self): """ Create or load an Application based on the parameters found in the given L{ServerOptions} instance. If a subcommand was used, the L{service.IServiceMaker} that it represents will be used to construct a service to be added to a newly-created Application. Otherwise, an application will be loaded based on parameters in the config. """ if self.config.subCommand: # If a subcommand was given, it's our responsibility to create # the application, instead of load it from a file. # loadedPlugins is set up by the ServerOptions.subCommands # property, which is iterated somewhere in the bowels of # usage.Options. plg = self.config.loadedPlugins[self.config.subCommand] ser = plg.makeService(self.config.subOptions) application = service.Application(plg.tapname) ser.setServiceParent(application) else: passphrase = getPassphrase(self.config['encrypted']) application = getApplication(self.config, passphrase) return application
Example #3
Source File: app.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def subCommands(self): plugins = self._getPlugins(service.IServiceMaker) self.loadedPlugins = {} for plug in sorted(plugins, key=attrgetter('tapname')): self.loadedPlugins[plug.tapname] = plug yield (plug.tapname, None, # Avoid resolving the options attribute right away, in case # it's a property with a non-trivial getter (eg, one which # imports modules). lambda plug=plug: plug.options(), plug.description)
Example #4
Source File: test_twistd.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def test_subCommands(self): """ subCommands is built from IServiceMaker plugins, and is sorted alphabetically. """ class FakePlugin(object): def __init__(self, name): self.tapname = name self._options = 'options for ' + name self.description = 'description of ' + name def options(self): return self._options apple = FakePlugin('apple') banana = FakePlugin('banana') coconut = FakePlugin('coconut') donut = FakePlugin('donut') def getPlugins(interface): self.assertEqual(interface, IServiceMaker) yield coconut yield banana yield donut yield apple config = twistd.ServerOptions() self.assertEqual(config._getPlugins, plugin.getPlugins) config._getPlugins = getPlugins # "subCommands is a list of 4-tuples of (command name, command # shortcut, parser class, documentation)." subCommands = config.subCommands expectedOrder = [apple, banana, coconut, donut] for subCommand, expectedCommand in zip(subCommands, expectedOrder): name, shortcut, parserClass, documentation = subCommand self.assertEqual(name, expectedCommand.tapname) self.assertIsNone(shortcut) self.assertEqual(parserClass(), expectedCommand._options), self.assertEqual(documentation, expectedCommand.description)
Example #5
Source File: masterchild.py From ccs-twistedextensions with Apache License 2.0 | 5 votes |
def __init__(self, className, *args, **kwargs): """ @param className: The fully qualified name of the L{IServiceMaker}-providing class to instantiate. @type className: L{str} @param args: Sequential arguments to pass to the class's constructor. @type args: arguments L{list} @param kwargs: Keyword arguments to pass to the class's constructor. @type args: arguments L{dict} """ self.className = className self.args = args self.kwargs = kwargs
Example #6
Source File: app.py From learn_python3_spider with MIT License | 5 votes |
def createOrGetApplication(self): """ Create or load an Application based on the parameters found in the given L{ServerOptions} instance. If a subcommand was used, the L{service.IServiceMaker} that it represents will be used to construct a service to be added to a newly-created Application. Otherwise, an application will be loaded based on parameters in the config. """ if self.config.subCommand: # If a subcommand was given, it's our responsibility to create # the application, instead of load it from a file. # loadedPlugins is set up by the ServerOptions.subCommands # property, which is iterated somewhere in the bowels of # usage.Options. plg = self.config.loadedPlugins[self.config.subCommand] ser = plg.makeService(self.config.subOptions) application = service.Application(plg.tapname) ser.setServiceParent(application) else: passphrase = getPassphrase(self.config['encrypted']) application = getApplication(self.config, passphrase) return application
Example #7
Source File: app.py From learn_python3_spider with MIT License | 5 votes |
def subCommands(self): plugins = self._getPlugins(service.IServiceMaker) self.loadedPlugins = {} for plug in sorted(plugins, key=attrgetter('tapname')): self.loadedPlugins[plug.tapname] = plug yield (plug.tapname, None, # Avoid resolving the options attribute right away, in case # it's a property with a non-trivial getter (eg, one which # imports modules). lambda plug=plug: plug.options(), plug.description)
Example #8
Source File: test_twistd.py From learn_python3_spider with MIT License | 5 votes |
def test_subCommands(self): """ subCommands is built from IServiceMaker plugins, and is sorted alphabetically. """ class FakePlugin(object): def __init__(self, name): self.tapname = name self._options = 'options for ' + name self.description = 'description of ' + name def options(self): return self._options apple = FakePlugin('apple') banana = FakePlugin('banana') coconut = FakePlugin('coconut') donut = FakePlugin('donut') def getPlugins(interface): self.assertEqual(interface, IServiceMaker) yield coconut yield banana yield donut yield apple config = twistd.ServerOptions() self.assertEqual(config._getPlugins, plugin.getPlugins) config._getPlugins = getPlugins # "subCommands is a list of 4-tuples of (command name, command # shortcut, parser class, documentation)." subCommands = config.subCommands expectedOrder = [apple, banana, coconut, donut] for subCommand, expectedCommand in zip(subCommands, expectedOrder): name, shortcut, parserClass, documentation = subCommand self.assertEqual(name, expectedCommand.tapname) self.assertIsNone(shortcut) self.assertEqual(parserClass(), expectedCommand._options), self.assertEqual(documentation, expectedCommand.description)
Example #9
Source File: app.py From python-for-android with Apache License 2.0 | 5 votes |
def createOrGetApplication(self): """ Create or load an Application based on the parameters found in the given L{ServerOptions} instance. If a subcommand was used, the L{service.IServiceMaker} that it represents will be used to construct a service to be added to a newly-created Application. Otherwise, an application will be loaded based on parameters in the config. """ if self.config.subCommand: # If a subcommand was given, it's our responsibility to create # the application, instead of load it from a file. # loadedPlugins is set up by the ServerOptions.subCommands # property, which is iterated somewhere in the bowels of # usage.Options. plg = self.config.loadedPlugins[self.config.subCommand] ser = plg.makeService(self.config.subOptions) application = service.Application(plg.tapname) ser.setServiceParent(application) else: passphrase = getPassphrase(self.config['encrypted']) application = getApplication(self.config, passphrase) return application
Example #10
Source File: app.py From python-for-android with Apache License 2.0 | 5 votes |
def subCommands(self): from twisted import plugin plugins = plugin.getPlugins(service.IServiceMaker) self.loadedPlugins = {} for plug in plugins: self.loadedPlugins[plug.tapname] = plug yield (plug.tapname, None, lambda: plug.options(), plug.description)
Example #11
Source File: mktap.py From python-for-android with Apache License 2.0 | 5 votes |
def loadPlugins(debug = None, progress = None): tapLookup = {} plugins = plugin.getPlugins(IServiceMaker) for plug in plugins: tapLookup[plug.tapname] = plug return tapLookup
Example #12
Source File: mktap.py From python-for-android with Apache License 2.0 | 5 votes |
def init(self, tapLookup): sc = [] for (name, module) in tapLookup.iteritems(): if IServiceMaker.providedBy(module): sc.append(( name, None, lambda m=module: m.options(), module.description)) else: sc.append(( name, None, lambda obj=module: obj.load().Options(), getattr(module, 'description', ''))) sc.sort() self.subCommands = sc