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