diff piecrust/rendering.py @ 876:d1095774bfcf

refactor: Fix some issues with record/cache entry collisions, add counters.
author Ludovic Chabant <ludovic@chabant.com>
date Thu, 15 Jun 2017 07:33:40 -0700
parents 58e28ba02fb7
children d6d35b2efd04
line wrap: on
line diff
--- a/piecrust/rendering.py	Thu Jun 15 07:32:19 2017 -0700
+++ b/piecrust/rendering.py	Thu Jun 15 07:33:40 2017 -0700
@@ -322,11 +322,15 @@
     res = {
         'segments': formatted_segments,
         'pass_info': _pickle_object(pass_info)}
+
+    app.env.stats.stepCounter('PageRenderSegments')
+
     return res
 
 
 def _do_render_layout(layout_name, page, layout_data):
-    cur_ctx = page.app.env.render_ctx_stack.current_ctx
+    app = page.app
+    cur_ctx = app.env.render_ctx_stack.current_ctx
     assert cur_ctx is not None
     assert cur_ctx.page == page
 
@@ -340,10 +344,10 @@
 
     _, engine_name = os.path.splitext(full_names[0])
     engine_name = engine_name.lstrip('.')
-    engine = get_template_engine(page.app, engine_name)
+    engine = get_template_engine(app, engine_name)
 
     try:
-        with page.app.env.stats.timerScope(
+        with app.env.stats.timerScope(
                 engine.__class__.__name__ + '_layout'):
             output = engine.renderFile(full_names, layout_data)
     except TemplateNotFoundError as ex:
@@ -354,6 +358,9 @@
 
     pass_info = cur_ctx.render_passes[PASS_RENDERING]
     res = {'content': output, 'pass_info': _pickle_object(pass_info)}
+
+    app.env.stats.stepCounter('PageRenderLayout')
+
     return res