Re: A 'shutdown' function in WSGI

Simon Sapin <[email protected]> Tue, 21 Feb 2012 10:26:41 +0100
Newsgroups gmane.comp.python.web
Message-ID <[email protected]>
Le 21/02/2012 09:23, Tarek Ziadé a écrit :
>     Instead of having to provide two or three objects separately to a
>     server, how about making the callbacks attributes of the application
>     callable?
>
>
> can you show us an example ?

Proposal:

Function-based:

     def startup():
         return open_resource(something)

     def shutdown(resource):
         resource.close()

     def application(environ, start_response):
         # ...
         return response_body

     application.startup = startup
     application.shutdown = shutdown

Class-based:

     class App(object):
         def startup(self):
             return open_resource(something)

         def shutdown(self, resource):
             resource.close()

         def __call__(self, environ, start_response):
             # ...
             return response_body

     application = App()

The return value of startup() can be any python object and is opaque to 
the server. It is passed as-is to shutdown()

startup() could take more parameters. Maybe the application (though can 
we already have it as self for class-based or in a closure for 
function-based)

Regards,
-- 
Simon Sapin
_______________________________________________
Web-SIG mailing list
[email protected]
Web SIG: http://www.python.org/sigs/web-sig
Unsubscribe: http://mail.python.org/mailman/options/web-sig/gcpw-web-sig%40m.gmane.org