Adding ReallyLazyProxy, a proxy that does what we expect :)

This commit is contained in:
Christopher Allan Webber 2013-04-24 16:39:59 -05:00
parent a789b713f5
commit c47be4b8ba

View File

@ -42,6 +42,15 @@ def set_available_locales():
AVAILABLE_LOCALES = locales
class ReallyLazyProxy(LazyProxy):
"""
Like LazyProxy, except that it doesn't cache the value ;)
"""
@property
def value(self):
return self._func(*self._args, **self._kwargs)
def locale_to_lower_upper(locale):
"""
Take a locale, regardless of style, and format it like "en_US"
@ -127,7 +136,6 @@ def pass_to_ugettext(*args, **kwargs):
return mg_globals.thread_scope.translations.ugettext(
*args, **kwargs)
def pass_to_ungettext(*args, **kwargs):
"""
Pass a translation on to the appropriate ungettext method.
@ -138,6 +146,7 @@ def pass_to_ungettext(*args, **kwargs):
return mg_globals.thread_scope.translations.ungettext(
*args, **kwargs)
def lazy_pass_to_ugettext(*args, **kwargs):
"""
Lazily pass to ugettext.
@ -149,7 +158,7 @@ def lazy_pass_to_ugettext(*args, **kwargs):
you would want to use the lazy version for _.
"""
return LazyProxy(pass_to_ugettext, *args, **kwargs)
return ReallyLazyProxy(pass_to_ugettext, *args, **kwargs)
def pass_to_ngettext(*args, **kwargs):
@ -171,7 +180,7 @@ def lazy_pass_to_ngettext(*args, **kwargs):
level but you need it to not translate until the time that it's
used as a string.
"""
return LazyProxy(pass_to_ngettext, *args, **kwargs)
return ReallyLazyProxy(pass_to_ngettext, *args, **kwargs)
def lazy_pass_to_ungettext(*args, **kwargs):
"""
@ -181,7 +190,7 @@ def lazy_pass_to_ungettext(*args, **kwargs):
level but you need it to not translate until the time that it's
used as a string.
"""
return LazyProxy(pass_to_ungettext, *args, **kwargs)
return ReallyLazyProxy(pass_to_ungettext, *args, **kwargs)
def fake_ugettext_passthrough(string):