diff options
Diffstat (limited to 'google-appengine/google/appengine/ext/webapp/__init__.py')
-rwxr-xr-x | google-appengine/google/appengine/ext/webapp/__init__.py | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/google-appengine/google/appengine/ext/webapp/__init__.py b/google-appengine/google/appengine/ext/webapp/__init__.py index 446475a..cc025e4 100755 --- a/google-appengine/google/appengine/ext/webapp/__init__.py +++ b/google-appengine/google/appengine/ext/webapp/__init__.py @@ -66,9 +66,12 @@ import sys import traceback import urlparse import webob +import wsgiref.handlers import wsgiref.headers import wsgiref.util +wsgiref.handlers.BaseHandler.os_environ = {} + RE_FIND_GROUPS = re.compile('\(.*?\)') _CHARSET_RE = re.compile(r';\s*charset=([^;\s]*)', re.I) @@ -473,7 +476,8 @@ class WSGIApplication(object): """Initializes this application with the given URL mapping. Args: - url_mapping: list of (URI, RequestHandler) pairs (e.g., [('/', ReqHan)]) + url_mapping: list of (URI regular expression, RequestHandler) pairs + (e.g., [('/', ReqHan)]) debug: if true, we send Python stack traces to the browser on errors """ self._init_url_mappings(url_mapping) @@ -541,7 +545,12 @@ class WSGIApplication(object): for regexp, handler in handler_tuples: - handler_map[handler.__name__] = handler + try: + handler_name = handler.__name__ + except AttributeError: + pass + else: + handler_map[handler_name] = handler if not regexp.startswith('^'): regexp = '^' + regexp |