From: Barry Warsaw Date: Thu, 5 Oct 2000 18:48:12 +0000 (+0000) Subject: translation(): Minor optimization patch which avoids instantiating the X-Git-Tag: v2.0c1~101 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=293b03f73f5ad48719a0f07fb45857182dfb1d51;p=python translation(): Minor optimization patch which avoids instantiating the default value's instance unless it's absolutely necessary. --- diff --git a/Lib/gettext.py b/Lib/gettext.py index 724cecb4c0..578490f68c 100644 --- a/Lib/gettext.py +++ b/Lib/gettext.py @@ -235,7 +235,11 @@ def translation(domain, localedir=None, languages=None, class_=None): raise IOError(ENOENT, 'No translation file found for domain', domain) key = os.path.abspath(mofile) # TBD: do we need to worry about the file pointer getting collected? - t = _translations.setdefault(key, class_(open(mofile, 'rb'))) + # Avoid opening, reading, and parsing the .mo file after it's been done + # once. + t = _translations.get(key) + if t is None: + t = _translations.setdefault(key, class_(open(mofile, 'rb'))) return t