Esempio n. 1
0
    def setup(self):
        '''This method is called once only to setup the WSGI application
handler as described in :ref:`lazy wsgi handler <wsgi-lazy-handler>`
section. It creates a :ref:`publish/subscribe handler <apps-pubsub>`
and subscribe it to the ``webchat`` channel.'''
        backend = self.cfg.get('backend_server')
        self.pubsub = pubsub.PubSub(backend, encoder=self.encode_message)
        self.pubsub.subscribe('webchat')
        return wsgi.WsgiHandler([
            wsgi.Router('/', get=self.home_page),
            ws.WebSocket('/message', Chat(self.pubsub)),
            wsgi.Router('/rpc', post=Rpc(self.pubsub))
        ])
Esempio n. 2
0
 def setup(self, environ):
     '''Called once to setup the list of wsgi middleware.'''
     json_handler = Root().putSubHandler('calc', Calculator())
     middleware = wsgi.Router('/', post=json_handler,
                              accept_content_types=JSON_CONTENT_TYPES)
     response = [wsgi.GZipMiddleware(200)]
     return wsgi.WsgiHandler(middleware=[middleware],
                             response_middleware=response)
Esempio n. 3
0
    def setup(self, environ):
        '''Called once only to setup the WSGI application handler.

        Check :ref:`lazy wsgi handler <wsgi-lazy-handler>`
        section for further information.
        '''
        cfg = environ['pulsar.cfg']
        loop = environ['pulsar.connection']._loop
        self.store = data.create_store(cfg.data_store, loop=loop)
        pubsub = self.store.pubsub(protocol=WsProtocol())
        channel = '%s_messages' % self.name
        pubsub.subscribe(channel)
        middleware = [wsgi.Router('/', get=self.home_page),
                      ws.WebSocket('/message', PhilosopherWs(pubsub, channel)),
                      wsgi.FileRouter('/favicon.ico', FAVICON),
                      wsgi.MediaRouter('media', ASSET_DIR)]
        return wsgi.WsgiHandler(middleware)
Esempio n. 4
0
 def setup(self, environ):
     return wsgi.WsgiHandler([
         wsgi.Router('/', get=self.home),
         ws.WebSocket('/data', Graph(), parser_factory=self._factory),
         ws.WebSocket('/echo', Echo(), parser_factory=self._factory)
     ])
Esempio n. 5
0
 def setup(self, environ):
     return wsgi.WsgiHandler([
         ws.WebSocket('/message', WsMail()),
         wsgi.MediaRouter('/media', ASSET_DIR),
         wsgi.Router('/', get=self.home)
     ])
Esempio n. 6
0
 def setup(self):
     return wsgi.WsgiHandler([
         wsgi.Router('/', get=self.home),
         ws.WebSocket('/data', Graph()),
         ws.WebSocket('/echo', Echo())
     ])
Esempio n. 7
0
import asyncio
import json
import logging

import pulsar.api as pulsar

import pulsar.apps.wsgi as wsgi
from pulsar.apps.wsgi import AccessControl

import classifier_managers.network_manager, classifier_managers.bayes_manager, classifier_managers.svm_manager
from data_provider import init_data_provider

app = wsgi.Router('/')

arbiter = pulsar.arbiter()
algorithm_opts = ['svm', 'bayes', 'network', 'all']

svm_manager_actor, bayes_manager_actor, network_manager_actor = None, None, None
data_provider = None


async def spawn_managers(algo='all'):
    global arbiter, svm_manager_actor, bayes_manager_actor, network_manager_actor

    if not svm_manager_actor and algo in ['svm', 'all']:
        svm_manager_actor = await pulsar.spawn(name='svm_manager_actor',
                                               aid='svm_manager_actor')

    if not bayes_manager_actor and algo in ['bayes', 'all']:
        bayes_manager_actor = await pulsar.spawn(name='bayes_manager_actor',
                                                 aid='bayes_manager_actor')
Esempio n. 8
0
 def setup(self, environ):
     # only post allowed by the JSON RPC handler
     request = [wsgi.Router('/', post=RpcRoot(self.tqname))]
     response = [wsgi.GZipMiddleware(200)]
     return wsgi.WsgiHandler(middleware=request,
                             response_middleware=response)