Example #1
0
class FlupSCGIServer(object):
    """Adapter for a flup.server.scgi.WSGIServer."""

    def __init__(self, *args, **kwargs):
        self.args = args
        self.kwargs = kwargs
        self.ready = False

    def start(self):
        """Start the SCGI server."""
        # We have to instantiate the server class here because its __init__
        # starts a threadpool. If we do it too early, daemonize won't work.
        from flup.server.scgi import WSGIServer
        self.scgiserver = WSGIServer(*self.args, **self.kwargs)
        # TODO: report this bug upstream to flup.
        # If we don't set _oldSIGs on Windows, we get:
        #   File "C:\Python24\Lib\site-packages\flup\server\threadedserver.py",
        #   line 108, in run
        #     self._restoreSignalHandlers()
        #   File "C:\Python24\Lib\site-packages\flup\server\threadedserver.py",
        #   line 156, in _restoreSignalHandlers
        #     for signum,handler in self._oldSIGs:
        #   AttributeError: 'WSGIServer' object has no attribute '_oldSIGs'
        self.scgiserver._installSignalHandlers = lambda: None
        self.scgiserver._oldSIGs = []
        self.ready = True
        self.scgiserver.run()

    def stop(self):
        """Stop the HTTP server."""
        self.ready = False
        # Forcibly stop the scgi server main event loop.
        self.scgiserver._keepGoing = False
        # Force all worker threads to die off.
        self.scgiserver._threadPool.maxSpare = 0
Example #2
0
class FlupFCGIServer(object):
    """Adapter for a flup.server.fcgi.WSGIServer."""

    def __init__(self, *args, **kwargs):
        if kwargs.get('bindAddress', None) is None:
            import socket
            if not hasattr(socket, 'fromfd'):
                raise ValueError('Dynamic FCGI server not available on this platform. You must use a static or external one by providing a legal bindAddress.')
        self.args = args
        self.kwargs = kwargs
        self.ready = False

    def start(self):
        """Start the FCGI server."""
        from flup.server.fcgi import WSGIServer
        self.fcgiserver = WSGIServer(*self.args, **self.kwargs)
        self.fcgiserver._installSignalHandlers = lambda : None
        self.fcgiserver._oldSIGs = []
        self.ready = True
        self.fcgiserver.run()

    def stop(self):
        """Stop the HTTP server."""
        self.fcgiserver._keepGoing = False
        self.fcgiserver._threadPool.maxSpare = self.fcgiserver._threadPool._idleCount
        self.ready = False
Example #3
0
 def start(self):
     from flup.server.scgi import WSGIServer
     self.scgiserver = WSGIServer(*self.args, **self.kwargs)
     self.scgiserver._installSignalHandlers = lambda : None
     self.scgiserver._oldSIGs = []
     self.ready = True
     self.scgiserver.run()
Example #4
0
    def start(self):
        """Start the CGI server."""
        # We have to instantiate the server class here because its __init__
        # starts a threadpool. If we do it too early, daemonize won't work.
        from flup.server.cgi import WSGIServer

        self.cgiserver = WSGIServer(*self.args, **self.kwargs)
        self.ready = True
        self.cgiserver.run()
Example #5
0
class FlupCGIServer(object):
    def __init__(self, *args, **kwargs):
        self.args = args
        self.kwargs = kwargs
        self.ready = False

    def start(self):
        from flup.server.cgi import WSGIServer
        self.cgiserver = WSGIServer(*self.args, **self.kwargs)
        self.ready = True
        self.cgiserver.run()

    def stop(self):
        self.ready = False
Example #6
0
class FlupCGIServer(object):

    def __init__(self, *args, **kwargs):
        self.args = args
        self.kwargs = kwargs
        self.ready = False

    def start(self):
        from flup.server.cgi import WSGIServer
        self.cgiserver = WSGIServer(*self.args, **self.kwargs)
        self.ready = True
        self.cgiserver.run()

    def stop(self):
        self.ready = False
Example #7
0
 def start(self):
     from flup.server.scgi import WSGIServer
     self.scgiserver = WSGIServer(*self.args, **self.kwargs)
     self.scgiserver._installSignalHandlers = lambda : None
     self.scgiserver._oldSIGs = []
     self.ready = True
     self.scgiserver.run()
Example #8
0
class FlupFCGIServer(object):

    """Adapter for a flup.server.fcgi.WSGIServer."""

    def __init__(self, *args, **kwargs):
        if kwargs.get("bindAddress", None) is None:
            import socket

            if not hasattr(socket, "fromfd"):
                raise ValueError(
                    "Dynamic FCGI server not available on this platform. "
                    "You must use a static or external one by providing a "
                    "legal bindAddress."
                )
        self.args = args
        self.kwargs = kwargs
        self.ready = False

    def start(self):
        """Start the FCGI server."""
        # We have to instantiate the server class here because its __init__
        # starts a threadpool. If we do it too early, daemonize won't work.
        from flup.server.fcgi import WSGIServer

        self.fcgiserver = WSGIServer(*self.args, **self.kwargs)
        # TODO: report this bug upstream to flup.
        # If we don't set _oldSIGs on Windows, we get:
        #   File "C:\Python24\Lib\site-packages\flup\server\threadedserver.py",
        #   line 108, in run
        #     self._restoreSignalHandlers()
        #   File "C:\Python24\Lib\site-packages\flup\server\threadedserver.py",
        #   line 156, in _restoreSignalHandlers
        #     for signum,handler in self._oldSIGs:
        #   AttributeError: 'WSGIServer' object has no attribute '_oldSIGs'
        self.fcgiserver._installSignalHandlers = lambda: None
        self.fcgiserver._oldSIGs = []
        self.ready = True
        self.fcgiserver.run()

    def stop(self):
        """Stop the HTTP server."""
        # Forcibly stop the fcgi server main event loop.
        self.fcgiserver._keepGoing = False
        # Force all worker threads to die off.
        self.fcgiserver._threadPool.maxSpare = self.fcgiserver._threadPool._idleCount
        self.ready = False
Example #9
0
    def start(self):
        """Start the CGI server."""
        # We have to instantiate the server class here because its __init__
        # starts a threadpool. If we do it too early, daemonize won't work.
        from flup.server.cgi import WSGIServer

        self.cgiserver = WSGIServer(*self.args, **self.kwargs)
        self.ready = True
        self.cgiserver.run()
Example #10
0
class FlupSCGIServer(object):
    def __init__(self, *args, **kwargs):
        self.args = args
        self.kwargs = kwargs
        self.ready = False

    def start(self):
        from flup.server.scgi import WSGIServer
        self.scgiserver = WSGIServer(*self.args, **self.kwargs)
        self.scgiserver._installSignalHandlers = lambda: None
        self.scgiserver._oldSIGs = []
        self.ready = True
        self.scgiserver.run()

    def stop(self):
        self.ready = False
        self.scgiserver._keepGoing = False
        self.scgiserver._threadPool.maxSpare = 0
Example #11
0
class FlupCGIServer(object):
    """Adapter for a flup.server.cgi.WSGIServer."""

    def __init__(self, *args, **kwargs):
        self.args = args
        self.kwargs = kwargs
        self.ready = False

    def start(self):
        """Start the CGI server."""
        from flup.server.cgi import WSGIServer
        self.cgiserver = WSGIServer(*self.args, **self.kwargs)
        self.ready = True
        self.cgiserver.run()

    def stop(self):
        """Stop the HTTP server."""
        self.ready = False
Example #12
0
class FlupFCGIServer(object):

    """Adapter for a flup.server.fcgi.WSGIServer."""

    def __init__(self, *args, **kwargs):
        if kwargs.get('bindAddress', None) is None:
            import socket
            if not hasattr(socket, 'fromfd'):
                raise ValueError(
                    'Dynamic FCGI server not available on this platform. '
                    'You must use a static or external one by providing a '
                    'legal bindAddress.')
        self.args = args
        self.kwargs = kwargs
        self.ready = False

    def start(self):
        """Start the FCGI server."""
        # We have to instantiate the server class here because its __init__
        # starts a threadpool. If we do it too early, daemonize won't work.
        from flup.server.fcgi import WSGIServer
        self.fcgiserver = WSGIServer(*self.args, **self.kwargs)
        # TODO: report this bug upstream to flup.
        # If we don't set _oldSIGs on Windows, we get:
        #   File "C:\Python24\Lib\site-packages\flup\server\threadedserver.py",
        #   line 108, in run
        #     self._restoreSignalHandlers()
        #   File "C:\Python24\Lib\site-packages\flup\server\threadedserver.py",
        #   line 156, in _restoreSignalHandlers
        #     for signum,handler in self._oldSIGs:
        #   AttributeError: 'WSGIServer' object has no attribute '_oldSIGs'
        self.fcgiserver._installSignalHandlers = lambda: None
        self.fcgiserver._oldSIGs = []
        self.ready = True
        self.fcgiserver.run()

    def stop(self):
        """Stop the HTTP server."""
        # Forcibly stop the fcgi server main event loop.
        self.fcgiserver._keepGoing = False
        # Force all worker threads to die off.
        self.fcgiserver._threadPool.maxSpare = (
            self.fcgiserver._threadPool._idleCount)
        self.ready = False
Example #13
0
 def start(self):
     """Start the SCGI server."""
     # We have to instantiate the server class here because its __init__
     # starts a threadpool. If we do it too early, daemonize won't work.
     from flup.server.scgi import WSGIServer
     self.scgiserver = WSGIServer(*self.args, **self.kwargs)
     # TODO: report this bug upstream to flup.
     # If we don't set _oldSIGs on Windows, we get:
     #   File "C:\Python24\Lib\site-packages\flup\server\threadedserver.py",
     #   line 108, in run
     #     self._restoreSignalHandlers()
     #   File "C:\Python24\Lib\site-packages\flup\server\threadedserver.py",
     #   line 156, in _restoreSignalHandlers
     #     for signum,handler in self._oldSIGs:
     #   AttributeError: 'WSGIServer' object has no attribute '_oldSIGs'
     self.scgiserver._installSignalHandlers = lambda: None
     self.scgiserver._oldSIGs = []
     self.ready = True
     self.scgiserver.run()
Example #14
0
class FlupSCGIServer(object):

    def __init__(self, *args, **kwargs):
        self.args = args
        self.kwargs = kwargs
        self.ready = False

    def start(self):
        from flup.server.scgi import WSGIServer
        self.scgiserver = WSGIServer(*self.args, **self.kwargs)
        self.scgiserver._installSignalHandlers = lambda : None
        self.scgiserver._oldSIGs = []
        self.ready = True
        self.scgiserver.run()

    def stop(self):
        self.ready = False
        self.scgiserver._keepGoing = False
        self.scgiserver._threadPool.maxSpare = 0
Example #15
0
class FlupCGIServer(object):
    """Adapter for a flup.server.cgi.WSGIServer."""
    def __init__(self, *args, **kwargs):
        self.args = args
        self.kwargs = kwargs
        self.ready = False

    def start(self):
        """Start the CGI server."""
        # We have to instantiate the server class here because its __init__
        # starts a threadpool. If we do it too early, daemonize won't work.
        from flup.server.cgi import WSGIServer

        self.cgiserver = WSGIServer(*self.args, **self.kwargs)
        self.ready = True
        self.cgiserver.run()

    def stop(self):
        """Stop the HTTP server."""
        self.ready = False
Example #16
0
class FlupCGIServer(object):
    """Adapter for a flup.server.cgi.WSGIServer."""

    def __init__(self, *args, **kwargs):
        self.args = args
        self.kwargs = kwargs
        self.ready = False

    def start(self):
        """Start the CGI server."""
        # We have to instantiate the server class here because its __init__
        # starts a threadpool. If we do it too early, daemonize won't work.
        from flup.server.cgi import WSGIServer

        self.cgiserver = WSGIServer(*self.args, **self.kwargs)
        self.ready = True
        self.cgiserver.run()

    def stop(self):
        """Stop the HTTP server."""
        self.ready = False
Example #17
0
class FlupFCGIServer(object):

    def __init__(self, *args, **kwargs):
        if kwargs.get('bindAddress', None) is None:
            import socket
            if not hasattr(socket, 'fromfd'):
                raise ValueError('Dynamic FCGI server not available on this platform. You must use a static or external one by providing a legal bindAddress.')
        self.args = args
        self.kwargs = kwargs
        self.ready = False

    def start(self):
        from flup.server.fcgi import WSGIServer
        self.fcgiserver = WSGIServer(*self.args, **self.kwargs)
        self.fcgiserver._installSignalHandlers = lambda : None
        self.fcgiserver._oldSIGs = []
        self.ready = True
        self.fcgiserver.run()

    def stop(self):
        self.fcgiserver._keepGoing = False
        self.fcgiserver._threadPool.maxSpare = self.fcgiserver._threadPool._idleCount
        self.ready = False
Example #18
0
 def start(self):
     """Start the SCGI server."""
     # We have to instantiate the server class here because its __init__
     # starts a threadpool. If we do it too early, daemonize won't work.
     from flup.server.scgi import WSGIServer
     self.scgiserver = WSGIServer(*self.args, **self.kwargs)
     # TODO: report this bug upstream to flup.
     # If we don't set _oldSIGs on Windows, we get:
     #   File "C:\Python24\Lib\site-packages\flup\server\threadedserver.py",
     #   line 108, in run
     #     self._restoreSignalHandlers()
     #   File "C:\Python24\Lib\site-packages\flup\server\threadedserver.py",
     #   line 156, in _restoreSignalHandlers
     #     for signum,handler in self._oldSIGs:
     #   AttributeError: 'WSGIServer' object has no attribute '_oldSIGs'
     self.scgiserver._installSignalHandlers = lambda: None
     self.scgiserver._oldSIGs = []
     self.ready = True
     self.scgiserver.run()
Example #19
0
        log(result)
        ret_code = '400 Bad Request'
        text = json.dumps({'error': 1, 'text': ret_code})

    start_response(ret_code,
                   [('Content-Type', 'application/json' + '; charset=UTF-8'),
                    ('Content-Length', str(len(text))),
                    ('Access-Control-Allow-Origin', '*')])
    return [text]


def myapp(environ, start_response):
    params = query_params(environ)

    if params['cmd'] == 'ping':
        return handle_ping(start_response)
    elif params['cmd'] == 'hocr':
        return handle_query(params, start_response)
    else:
        return handle_status(params, start_response)


if __name__ == "__main__":
    sys.stderr = open(os.path.expanduser('~/log/hocr_cgi.err'), 'a')

    from flup.server.cgi import WSGIServer
    try:
        WSGIServer(myapp).run()
    except BaseException:
        utils.print_traceback()
Example #20
0
 def start(self):
     from flup.server.cgi import WSGIServer
     self.cgiserver = WSGIServer(*self.args, **self.kwargs)
     self.ready = True
     self.cgiserver.run()
Example #21
0
 def start(self):
     """Start the CGI server."""
     from flup.server.cgi import WSGIServer
     self.cgiserver = WSGIServer(*self.args, **self.kwargs)
     self.ready = True
     self.cgiserver.run()
Example #22
0
    :param app: the WSGI application
    '''
    def __init__(self, app, script_name=None):
        self.app = app
        self.script_name = script_name

    def __call__(self, environ, start_response):
        if self.script_name is not None:
            environ['SCRIPT_NAME'] = self.script_name
            path_info = environ.get('PATH_INFO', '')
            if path_info.startswith(self.script_name):
                environ['PATH_INFO'] = path_info[len(self.script_name):]
        return self.app(environ, start_response)


if __name__ == '__main__':
    #from flup.server.fcgi import WSGIServer
    from flup.server.cgi import WSGIServer
    import cgitb
    cgitb.enable()
    try:
        from flask_angular_scaffold.app import app
        app.debug = True
        server = WSGIServer(CleanScriptName(app,
                                            '/flask_angular_scaffold')).run()
    except Exception as e:
        import logging
        logging.basicConfig()
        logging.getLogger(__name__).exception(e)
Example #23
0
def start_fcgi(server):
    from flup.server.fcgi import WSGIServer
    WSGIServer(server).run()
    sys.exit(0)