Groups

SuPPort’s central pillar is the Group, a group of servers, web or otherwise, hosted within a given process group.

Defines a Group class for running and managing servers, as well as a set of base server types.

The following information is needed to start a server: 1- handler / wsgi app 2- address 3- ssl preference

class support.group.Group(wsgi_apps=(), stream_handlers=(), custom_servers=(), prefork=None, daemonize=None, **kw)[source]
iter_addresses()[source]
serve_forever()[source]
start()[source]
stop(timeout=30.0)[source]
class support.group.MakeFileCloseWSGIHandler(socket, address, server, rfile=None)[source]

quick work-around to re-enable gevent’s work-around of the makefile() call in the pywsgi handler keeping sockets alive past their shelf life

handle_one_request()[source]
process_result()[source]
run_application()[source]
class support.group.MultiProtocolWSGIServer(listener, application=None, backlog=None, spawn='default', log='default', handler_class=None, environ=None, **ssl_args)[source]
class support.group.RotatingGeventLog(size=10000)[source]
write(msg)[source]
class support.group.SimpleLogMiddleware[source]
provides = ['api_cal_trans']
request(next, request, _route)[source]
class support.group.SockConsole(sock)[source]
raw_input(prompt='')[source]
runcode(_code)[source]

Wraps base runcode to put displayhook around it. TODO: add a new displayhook dispatcher so that the current SockConsole is a greenlet-tree local. (In case the statement being executed itself causes greenlet switches.)

write(data)[source]
class support.group.SslContextWSGIServer(listener, application=None, backlog=None, spawn='default', log='default', handler_class=None, environ=None, **ssl_args)[source]
handler_class

alias of MakeFileCloseWSGIHandler

wrap_socket_and_handle(*a, **kw)[source]
class support.group.ThreadQueueServer(listener, handle=None, backlog=None, spawn='default', **ssl_args)[source]
do_read()[source]
start_accepting()[source]
class support.group.ThreadQueueWSGIServer(listener, application=None, backlog=None, spawn='default', log='default', handler_class=None, environ=None, **ssl_args)[source]
class support.group.ThreadWatcher(listener, loop, maxlen=128)[source]
run()[source]
start(callback)[source]
stop()[source]
support.group.console_sock_handle(sock, address)[source]