add create_renderer() function to create a blurp from a dictionary (#6345)

This commit is contained in:
Frédéric Péters 2015-01-24 12:33:55 +01:00
parent 0f44ca35f6
commit 229e6e18a8
1 changed files with 7 additions and 3 deletions

View File

@ -17,13 +17,17 @@ def renderers_choices():
renderer = resolve_renderer(slug)
yield slug, renderer_description(renderer) or slug
def create_renderer(name, instance):
'''Create a renderer instance of given name from a settings dictionary'''
module_name, class_name = instance['class'].rsplit('.', 1)
module = import_module(module_name)
return getattr(module, class_name)(name, instance)
def resolve_renderer(name):
'''Create a renderer instance from slug name of its settings'''
instance = app_settings.RENDERERS.get(name)
if instance:
module_name, class_name = instance['class'].rsplit('.', 1)
module = import_module(module_name)
return getattr(module, class_name)(name, instance)
return create_renderer(name, instance)
def insert_blurp_in_context(name, context):
renderer = resolve_renderer(name)