Test urlparse cache with try/except instead of has_key.
This makes it thread-safe again.
diff --git a/Lib/urlparse.py b/Lib/urlparse.py
index 31d853a..aeed393 100644
--- a/Lib/urlparse.py
+++ b/Lib/urlparse.py
@@ -44,8 +44,10 @@
# (e.g. netloc is a single string) and we don't expand % escapes.
def urlparse(url, scheme = '', allow_framents = 1):
key = url, scheme, allow_framents
- if _parse_cache.has_key(key):
+ try:
return _parse_cache[key]
+ except KeyError:
+ pass
if len(_parse_cache) >= MAX_CACHE_SIZE: # avoid runaway growth
clear_cache()
netloc = path = params = query = fragment = ''