From 1b8bd112ce962a331476aa354aa40a6d0dd2131b Mon Sep 17 00:00:00 2001 From: Alfredo Deza Date: Tue, 13 Mar 2012 16:49:56 -0400 Subject: [PATCH 1/2] a very simple approach for serving http requests --- pecan/commands/serve.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/pecan/commands/serve.py b/pecan/commands/serve.py index 0d699e9..2417fe4 100644 --- a/pecan/commands/serve.py +++ b/pecan/commands/serve.py @@ -1,7 +1,6 @@ """ PasteScript serve command for Pecan. """ -from paste import httpserver from paste.script.serve import ServeCommand as _ServeCommand from base import Command @@ -49,9 +48,14 @@ class ServeCommand(_ServeCommand, Command): _ServeCommand.command(self) def loadserver(self, server_spec, name, relative_to, **kw): - return (lambda app: httpserver.serve( - app, app.config.server.host, app.config.server.port - )) - + return (lambda app: WSGIRefServer(self.config.server.host, self.config.server.port, app)) + def loadapp(self, app_spec, name, relative_to, **kw): - return self.load_app() + return self.load_app(self.config) + + +def WSGIRefServer(host, port, app, **options): + from wsgiref.simple_server import make_server + port = int(port) + srv = make_server(host, port, app, **options) + srv.serve_forever() From a03a6e8cdbf5fea10b4c3e16ee550a1c20f0aef0 Mon Sep 17 00:00:00 2001 From: Alfredo Deza Date: Wed, 14 Mar 2012 13:57:00 -0400 Subject: [PATCH 2/2] adds the docstring for the WSGIRefserver --- pecan/commands/serve.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pecan/commands/serve.py b/pecan/commands/serve.py index 2417fe4..95cbabf 100644 --- a/pecan/commands/serve.py +++ b/pecan/commands/serve.py @@ -48,13 +48,16 @@ class ServeCommand(_ServeCommand, Command): _ServeCommand.command(self) def loadserver(self, server_spec, name, relative_to, **kw): - return (lambda app: WSGIRefServer(self.config.server.host, self.config.server.port, app)) + return (lambda app: WSGIRefServer(app.config.server.host, app.config.server.port, app)) def loadapp(self, app_spec, name, relative_to, **kw): - return self.load_app(self.config) + return self.load_app() def WSGIRefServer(host, port, app, **options): + """ + A very simple approach for a WSGI server. + """ from wsgiref.simple_server import make_server port = int(port) srv = make_server(host, port, app, **options)