Mercurial > piecrust2
comparison piecrust/baking/worker.py @ 430:21e26ed867b6
internal: Create full route metadata in one place.
Instead of combining things at different moments to make up route metadata,
build it once and for all up-front and use that.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Sat, 27 Jun 2015 08:27:35 -0700 |
parents | ed5ccd4cce49 |
children | 32c7c2d219d2 |
comparison
equal
deleted
inserted
replaced
429:ca5a3c970263 | 430:21e26ed867b6 |
---|---|
4 import logging | 4 import logging |
5 from piecrust.app import PieCrust | 5 from piecrust.app import PieCrust |
6 from piecrust.baking.single import PageBaker, BakingError | 6 from piecrust.baking.single import PageBaker, BakingError |
7 from piecrust.rendering import ( | 7 from piecrust.rendering import ( |
8 QualifiedPage, PageRenderingContext, render_page_segments) | 8 QualifiedPage, PageRenderingContext, render_page_segments) |
9 from piecrust.routing import create_route_metadata | |
9 from piecrust.sources.base import PageFactory | 10 from piecrust.sources.base import PageFactory |
10 | 11 |
11 | 12 |
12 logger = logging.getLogger(__name__) | 13 logger = logging.getLogger(__name__) |
13 | 14 |
216 route = self.app.getRoute(fac.source.name, fac.metadata, | 217 route = self.app.getRoute(fac.source.name, fac.metadata, |
217 skip_taxonomies=True) | 218 skip_taxonomies=True) |
218 assert route is not None | 219 assert route is not None |
219 | 220 |
220 page = fac.buildPage() | 221 page = fac.buildPage() |
221 route_metadata = copy.deepcopy(fac.metadata) | 222 route_metadata = create_route_metadata(page) |
222 qp = QualifiedPage(page, route, route_metadata) | 223 qp = QualifiedPage(page, route, route_metadata) |
223 ctx = PageRenderingContext(qp) | 224 ctx = PageRenderingContext(qp) |
224 | 225 |
225 result = RenderFirstSubJobResult(fac.path) | 226 result = RenderFirstSubJobResult(fac.path) |
226 logger.debug("Preparing page: %s" % fac.ref_spec) | 227 logger.debug("Preparing page: %s" % fac.ref_spec) |
252 else: | 253 else: |
253 route = self.app.getRoute(fac.source.name, route_metadata, | 254 route = self.app.getRoute(fac.source.name, route_metadata, |
254 skip_taxonomies=True) | 255 skip_taxonomies=True) |
255 assert route is not None | 256 assert route is not None |
256 | 257 |
258 page = fac.buildPage() | |
259 qp = QualifiedPage(page, route, route_metadata) | |
260 | |
257 result = BakeJobResult(fac.path, tax_info) | 261 result = BakeJobResult(fac.path, tax_info) |
258 previous_entry = job.payload.previous_entry | 262 previous_entry = job.payload.previous_entry |
259 dirty_source_names = job.payload.dirty_source_names | 263 dirty_source_names = job.payload.dirty_source_names |
260 logger.debug("Baking page: %s" % fac.ref_spec) | 264 logger.debug("Baking page: %s" % fac.ref_spec) |
261 try: | 265 try: |
262 sub_entries = self.page_baker.bake( | 266 sub_entries = self.page_baker.bake( |
263 fac, route, route_metadata, previous_entry, | 267 qp, previous_entry, dirty_source_names, tax_info) |
264 dirty_source_names, tax_info) | |
265 result.sub_entries = sub_entries | 268 result.sub_entries = sub_entries |
266 | 269 |
267 except BakingError as ex: | 270 except BakingError as ex: |
268 logger.debug("Got baking error. Sending it to master.") | 271 logger.debug("Got baking error. Sending it to master.") |
269 result.errors = _get_errors(ex) | 272 result.errors = _get_errors(ex) |