translation(): Minor optimization patch which avoids instantiating the

default value's instance unless it's absolutely necessary.
This commit is contained in:
Barry Warsaw 2000-10-05 18:48:12 +00:00
parent 7d1219d9bd
commit 293b03f73f
1 changed files with 5 additions and 1 deletions

View File

@ -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