[z3-checkins] r55524 - z3/deliverance/sandboxes/paul/environ

paul at codespeak.net paul at codespeak.net
Tue Jun 3 17:35:37 CEST 2008


Author: paul
Date: Tue Jun  3 17:35:34 2008
New Revision: 55524

Modified:
   z3/deliverance/sandboxes/paul/environ/README.txt
   z3/deliverance/sandboxes/paul/environ/serve.ini
   z3/deliverance/sandboxes/paul/environ/switcher.py
Log:
Better implementation, mimics having Deliverance as filter middleware

Modified: z3/deliverance/sandboxes/paul/environ/README.txt
==============================================================================
--- z3/deliverance/sandboxes/paul/environ/README.txt	(original)
+++ z3/deliverance/sandboxes/paul/environ/README.txt	Tue Jun  3 17:35:34 2008
@@ -25,13 +25,16 @@
 
   PYTHONPATH=. paster serve serve.ini
   Creating filter right
+  Creating filter middle
   Creating filter left
-  Starting server in PID 3410.
+  Starting server in PID 3654.
   serving on http://127.0.0.1:8080
 
 Here is what you get when you go to a URL such as
 ``http://localhost:8080/`` (any URL on 8080 will do):
 
-  In __call__ for filter left
-  In __call__ for filter right
-  In echo
+  Entering left, FI keys are []
+  Entering middle, FI keys are ['FI_left']
+  Entering right, FI keys are ['FI_middle', 'FI_left']
+  Entering echo, FI keys are ['FI_right', 'FI_middle', 'FI_left']
+

Modified: z3/deliverance/sandboxes/paul/environ/serve.ini
==============================================================================
--- z3/deliverance/sandboxes/paul/environ/serve.ini	(original)
+++ z3/deliverance/sandboxes/paul/environ/serve.ini	Tue Jun  3 17:35:34 2008
@@ -5,6 +5,7 @@
 pipeline = egg:Paste#evalerror
 	 egg:Paste#httpexceptions
 	 left
+	 middle
 	 right
 	 echo
 
@@ -12,7 +13,13 @@
 paste.app_factory = switcher:make_echo
 
 [filter:left]
-paste.filter_app_factory = switcher:make_left
+paste.filter_app_factory = switcher:make_filter
+position = left
+
+[filter:middle]
+paste.filter_app_factory = switcher:make_filter
+position = middle
 
 [filter:right]
-paste.filter_app_factory = switcher:make_right
+paste.filter_app_factory = switcher:make_filter
+position = right

Modified: z3/deliverance/sandboxes/paul/environ/switcher.py
==============================================================================
--- z3/deliverance/sandboxes/paul/environ/switcher.py	(original)
+++ z3/deliverance/sandboxes/paul/environ/switcher.py	Tue Jun  3 17:35:34 2008
@@ -1,6 +1,11 @@
 from wsgifilter import Filter
 
-class Switcher(object):
+def print_fi(environ, spot):
+    ek = environ.keys()
+    preface = "Entering %s, FI keys are" % spot
+    print preface, [k for k in ek if k.startswith("FI")]
+
+class Switcher(Filter):
 
     def __init__(self, app, filtername):
         self.app = app
@@ -8,24 +13,20 @@
         print "Creating filter", filtername
 
     def __call__(self, environ, start_response):
-        environ[self.filtername] = self.filtername
-        print "In __call__ for filter", self.filtername
+        print_fi(environ, self.filtername)
+        environ["FI_" + self.filtername] = self.filtername
         response_iter = self.app(environ, start_response)
         return response_iter
 
-def make_left(app, global_conf, **kw):
-    """Choose which Deliverance theme should be used"""
-
-    return Switcher(app, "left")
-
-def make_right(app, global_conf, **kw):
+def make_filter(app, global_conf, **kw):
     """Choose which Deliverance theme should be used"""
 
-    return Switcher(app, "right")
+    place = kw.get("position")
+    return Switcher(app, place)
 
 def echo(environ, start_response):  
     start_response("200 OK", [('Content-type', 'text/html')])
-    print "In echo"
+    print_fi(environ, "echo")
     return ["<h2>Hello World</h2>"]
       
 


More information about the z3-checkins mailing list