Mercurial > piecrust2
comparison piecrust/data/providersdata.py @ 814:aca04e175488
data: Allow page generators to have an associated data provider
author | Ben Artin <ben@artins.org> |
---|---|
date | Wed, 28 Dec 2016 01:27:02 -0500 |
parents | 32c7c2d219d2 |
children | 71c4f43d8fc1 |
comparison
equal
deleted
inserted
replaced
813:c3cb2f9df882 | 814:aca04e175488 |
---|---|
25 def _load(self): | 25 def _load(self): |
26 if self._dict is not None: | 26 if self._dict is not None: |
27 return | 27 return |
28 | 28 |
29 self._dict = {} | 29 self._dict = {} |
30 for source in self._page.app.sources: | 30 for source in self._page.app.sources + self._page.app.generators: |
31 endpoint_bits = re_endpoint_sep.split(source.data_endpoint) | 31 if source.data_endpoint: |
32 endpoint = self._dict | 32 endpoint_bits = re_endpoint_sep.split(source.data_endpoint) |
33 for e in endpoint_bits[:-1]: | 33 endpoint = self._dict |
34 if e not in endpoint: | 34 for e in endpoint_bits[:-1]: |
35 endpoint[e] = {} | 35 if e not in endpoint: |
36 endpoint = endpoint[e] | 36 endpoint[e] = {} |
37 override = endpoint.get(endpoint_bits[-1]) | 37 endpoint = endpoint[e] |
38 provider = source.buildDataProvider(self._page, override) | 38 override = endpoint.get(endpoint_bits[-1]) |
39 endpoint[endpoint_bits[-1]] = provider | 39 provider = source.buildDataProvider(self._page, override) |
40 endpoint[endpoint_bits[-1]] = provider |