def remove_globals(): # oddly enough popping "pylons.app_globals" was not enough to clear the # cached settings in all case (tests) so we do that explicitely. if is_object_registered(pylons.app_globals): pylons.app_globals.settings_cache.clear() for name in ('request', 'response', 'session', 'tmpl_context', 'url', 'translator', 'app_globals', ): global_ = getattr(pylons, name) if is_object_registered(global_): global_._pop_object()
def remove_globals(): # oddly enough popping "pylons.app_globals" was not enough to clear the # cached settings in all case (tests) so we do that explicitely. if is_object_registered(pylons.app_globals): pylons.app_globals.settings_cache.clear() for name in ( 'request', 'response', 'session', 'tmpl_context', 'url', 'translator', 'app_globals', ): global_ = getattr(pylons, name) if is_object_registered(global_): global_._pop_object()
def _paste_registry(pylons_request): "Internal helper method to get a new registry." paste_registry = None is_request_registered = is_object_registered(pylons_request) if is_request_registered: paste_registry = pylons_request.environ.get('paste.registry') if paste_registry is None: paste_registry = Registry() paste_registry.prepare() if is_request_registered: pylons_request.environ['paste.registry'] = paste_registry return paste_registry
def setup_global_translator(default_language='en', registry=None): """Load the primary translator during the first call of this function and reactivate it for each subsequent call until the primary language is changed.""" app_globs = pylons.app_globals._current_obj() lang = app_globs.settings['primary_language'] or default_language if app_globs.primary_language == lang and app_globs.primary_translator: translator = app_globs.primary_translator else: translator = Translator(lang, pylons.config['locale_dirs']) app_globs.primary_translator = translator app_globs.primary_language = lang # no need to replace the translator if it uses the same domain anyway if is_object_registered(pylons.translator): pylons_translator = pylons.translator._current_obj() uses_same_locale = (getattr(pylons_translator, 'locale', None) == translator.locale) if uses_same_locale: return registry.register(pylons.translator, translator)
def register_instance(registry, symbol_name, value): global_value = getattr(pylons, symbol_name) if not is_object_registered(global_value): registry.register(global_value, value) else: global_value._push_object(value)