summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Danjou <julien@danjou.info>2014-12-19 14:45:42 +0100
committerJulien Danjou <julien@danjou.info>2014-12-19 14:48:12 +0100
commita82e395118e09954383f915d5e463914407693cc (patch)
treef0d8f7b0a3832b523aafca99d75b0bb82d0f0a2c
parentfcfbd06ccceca449fa1703ab51fad4035f994525 (diff)
downloadpecan-a82e395118e09954383f915d5e463914407693cc.tar.gz
core: optimize renderer computing
This just use if/elif/else to do the proper renderer finding once and for all. Change-Id: I5e754afad2a7ce64e692d6898a9cf9eed5a7e94c
-rw-r--r--pecan/core.py15
1 files changed, 8 insertions, 7 deletions
diff --git a/pecan/core.py b/pecan/core.py
index 173210b..af5d943 100644
--- a/pecan/core.py
+++ b/pecan/core.py
@@ -390,18 +390,19 @@ class PecanBase(object):
return args, varargs, kwargs
def render(self, template, namespace):
- renderer = self.renderers.get(
- self.default_renderer,
- self.template_path
- )
if template == 'json':
renderer = self.renderers.get('json', self.template_path)
- if ':' in template:
+ elif ':' in template:
+ renderer_name, template = template.split(':', 1)
+ renderer = self.renderers.get(
+ renderer_name,
+ self.template_path
+ )
+ else:
renderer = self.renderers.get(
- template.split(':')[0],
+ self.default_renderer,
self.template_path
)
- template = template.split(':')[1]
return renderer.render(template, namespace)
def find_controller(self, state):