blob: 68e85d50c42fc79d46d1fe96e720325cbad0cb90 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
from zope.component import getAdapter
from repoze.bfg.interfaces import IWSGIApplication
class Router:
def __init__(self, app, root_policy, traversal_policy):
self.app = app
self.root_policy = root_policy
self.traversal_policy = traversal_policy
def __call__(self, environ, start_response):
root = self.root_policy(environ)
context, name, subpath = self.traversal_policy(root, environ)
app = getAdapter(context, IWSGIApplication, name)
environ['repoze.bfg.context'] = context
environ['repoze.bfg.subpath'] = subpath
return app(environ, start_response)
|