summaryrefslogtreecommitdiffstats
path: root/google-appengine/google/appengine/ext/webapp/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'google-appengine/google/appengine/ext/webapp/__init__.py')
-rwxr-xr-xgoogle-appengine/google/appengine/ext/webapp/__init__.py13
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