diff piecrust/sources/base.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 58ebf50235a5
children 69d16e1afb95
line wrap: on
line diff
--- a/piecrust/sources/base.py	Mon Jan 02 16:30:57 2017 -0500
+++ b/piecrust/sources/base.py	Wed Dec 28 01:27:02 2016 -0500
@@ -125,14 +125,7 @@
         raise NotImplementedError()
 
     def buildDataProvider(self, page, override):
-        if self._provider_type is None:
-            cls = next((pt for pt in self.app.plugin_loader.getDataProviders()
-                        if pt.PROVIDER_NAME == self.data_type),
-                       None)
-            if cls is None:
-                raise ConfigurationError(
-                        "Unknown data provider type: %s" % self.data_type)
-            self._provider_type = cls
-
+        if not self._provider_type:
+            self._provider_type = self.app.getDataProviderClass(self.data_type)
         return self._provider_type(self, page, override)