comparison piecrust/generation/base.py @ 815:69d16e1afb95

internal: Keep things out of the `PieCrust` class, and other clean-ups.
author Ludovic Chabant <ludovic@chabant.com>
date Wed, 11 Jan 2017 09:01:01 -0800
parents aca04e175488
children
comparison
equal deleted inserted replaced
814:aca04e175488 815:69d16e1afb95
122 page_ref = config.get('page') 122 page_ref = config.get('page')
123 if page_ref is None: 123 if page_ref is None:
124 raise ConfigurationError( 124 raise ConfigurationError(
125 "Generator '%s' requires a listing page ref." % name) 125 "Generator '%s' requires a listing page ref." % name)
126 self.page_ref = PageRef(app, page_ref) 126 self.page_ref = PageRef(app, page_ref)
127
127 self.data_endpoint = config.get('data_endpoint') 128 self.data_endpoint = config.get('data_endpoint')
128 self.data_type = config.get('data_type') 129 self.data_type = config.get('data_type')
129
130 if self.data_endpoint and not self.data_type: 130 if self.data_endpoint and not self.data_type:
131 raise ConfigurationError( 131 raise ConfigurationError(
132 "Generator '%s' requires a data type because it has a data endpoint." % name) 132 "Generator '%s' requires a data type because it has "
133 133 "a data endpoint." % name)
134
134 self._provider_type = None 135 self._provider_type = None
135 136
136 @cached_property 137 @cached_property
137 def source(self): 138 def source(self):
138 for src in self.app.sources: 139 for src in self.app.sources:
154 def onRouteFunctionUsed(self, route, route_metadata): 155 def onRouteFunctionUsed(self, route, route_metadata):
155 pass 156 pass
156 157
157 def buildDataProvider(self, page, override): 158 def buildDataProvider(self, page, override):
158 if not self._provider_type: 159 if not self._provider_type:
159 self._provider_type = self.app.getDataProviderClass(self.data_type) 160 from piecrust.data.provider import get_data_provider_class
161 self._provider_type = get_data_provider_class(self.app,
162 self.data_type)
160 return self._provider_type(self, page, override) 163 return self._provider_type(self, page, override)