From 671dc20efccf7fb75fa4aa7ac2d94593c58c4abf Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Fri, 27 Dec 1996 15:26:15 +0000 Subject: [PATCH] Crude but effective hack to clear the parser cache every so often. (Fred Drake.) --- Lib/urlparse.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Lib/urlparse.py b/Lib/urlparse.py index 571ef0eb0c..91775333c7 100644 --- a/Lib/urlparse.py +++ b/Lib/urlparse.py @@ -19,9 +19,11 @@ uses_fragment = ['ftp', 'hdl', 'http', 'gopher', 'news', 'nntp', 'wais', # Characters valid in scheme names scheme_chars = string.letters + string.digits + '+-.' +MAX_CACHE_SIZE = 2000 _parse_cache = {} def clear_cache(): + """Clear the parse cache.""" global _parse_cache _parse_cache = {} @@ -35,6 +37,8 @@ def urlparse(url, scheme = '', allow_framents = 1): key = url, scheme, allow_framents if _parse_cache.has_key(key): return _parse_cache[key] + if len(_parse_cache) >= MAX_CACHE_SIZE: # avoid runaway growth + clear_cache() netloc = path = params = query = fragment = '' i = string.find(url, ':') if i > 0: -- 2.50.1