translation(): Minor optimization patch which avoids instantiating the
default value's instance unless it's absolutely necessary.
This commit is contained in:
parent
7d1219d9bd
commit
293b03f73f
|
@ -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
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue