Mercurial > piecrust2
comparison piecrust/plugins/base.py @ 803:bf9f4e55f751
rendering: Separate performance timers for renering segments and layouts.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Thu, 29 Sep 2016 21:59:20 -0700 |
parents | ab5c6a8ae90a |
children | 7d83b9484b98 |
comparison
equal
deleted
inserted
replaced
802:0da1207472d3 | 803:bf9f4e55f751 |
---|---|
61 order_key=lambda f: f.priority) | 61 order_key=lambda f: f.priority) |
62 | 62 |
63 def getTemplateEngines(self): | 63 def getTemplateEngines(self): |
64 return self._getPluginComponents( | 64 return self._getPluginComponents( |
65 'getTemplateEngines', | 65 'getTemplateEngines', |
66 initialize=True, register_timer=True) | 66 initialize=True, register_timer=True, |
67 register_timer_suffixes=['_segment', '_layout']) | |
67 | 68 |
68 def getDataProviders(self): | 69 def getDataProviders(self): |
69 return self._getPluginComponents('getDataProviders') | 70 return self._getPluginComponents('getDataProviders') |
70 | 71 |
71 def getProcessors(self): | 72 def getProcessors(self): |
133 return | 134 return |
134 | 135 |
135 return plugin | 136 return plugin |
136 | 137 |
137 def _getPluginComponents(self, name, *, | 138 def _getPluginComponents(self, name, *, |
138 initialize=False, register_timer=False, | 139 initialize=False, |
140 register_timer=False, | |
141 register_timer_suffixes=None, | |
139 order_key=None): | 142 order_key=None): |
140 if name in self._componentCache: | 143 if name in self._componentCache: |
141 return self._componentCache[name] | 144 return self._componentCache[name] |
142 | 145 |
143 all_components = [] | 146 all_components = [] |
149 for comp in plugin_components: | 152 for comp in plugin_components: |
150 comp.initialize(self.app) | 153 comp.initialize(self.app) |
151 | 154 |
152 if register_timer: | 155 if register_timer: |
153 for comp in plugin_components: | 156 for comp in plugin_components: |
154 self.app.env.registerTimer(comp.__class__.__name__) | 157 if not register_timer_suffixes: |
158 self.app.env.registerTimer(comp.__class__.__name__) | |
159 else: | |
160 for s in register_timer_suffixes: | |
161 self.app.env.registerTimer( | |
162 comp.__class__.__name__ + s) | |
155 | 163 |
156 if order_key is not None: | 164 if order_key is not None: |
157 all_components.sort(key=order_key) | 165 all_components.sort(key=order_key) |
158 | 166 |
159 self._componentCache[name] = all_components | 167 self._componentCache[name] = all_components |