Mercurial > piecrust2
diff 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 |
line wrap: on
line diff
--- a/piecrust/plugins/base.py Thu Sep 29 21:52:18 2016 -0700 +++ b/piecrust/plugins/base.py Thu Sep 29 21:59:20 2016 -0700 @@ -63,7 +63,8 @@ def getTemplateEngines(self): return self._getPluginComponents( 'getTemplateEngines', - initialize=True, register_timer=True) + initialize=True, register_timer=True, + register_timer_suffixes=['_segment', '_layout']) def getDataProviders(self): return self._getPluginComponents('getDataProviders') @@ -135,7 +136,9 @@ return plugin def _getPluginComponents(self, name, *, - initialize=False, register_timer=False, + initialize=False, + register_timer=False, + register_timer_suffixes=None, order_key=None): if name in self._componentCache: return self._componentCache[name] @@ -151,7 +154,12 @@ if register_timer: for comp in plugin_components: - self.app.env.registerTimer(comp.__class__.__name__) + if not register_timer_suffixes: + self.app.env.registerTimer(comp.__class__.__name__) + else: + for s in register_timer_suffixes: + self.app.env.registerTimer( + comp.__class__.__name__ + s) if order_key is not None: all_components.sort(key=order_key)