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) renderer = resolve_renderer(slug)
yield slug, renderer_description(renderer) or 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): def resolve_renderer(name):
'''Create a renderer instance from slug name of its settings''' '''Create a renderer instance from slug name of its settings'''
instance = app_settings.RENDERERS.get(name) instance = app_settings.RENDERERS.get(name)
if instance: if instance:
module_name, class_name = instance['class'].rsplit('.', 1) return create_renderer(name, instance)
module = import_module(module_name)
return getattr(module, class_name)(name, instance)
def insert_blurp_in_context(name, context): def insert_blurp_in_context(name, context):
renderer = resolve_renderer(name) renderer = resolve_renderer(name)