Mercurial > piecrust2
diff piecrust/app.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 | fd694f1297c7 |
children | 69d16e1afb95 |
line wrap: on
line diff
--- a/piecrust/app.py Mon Jan 02 16:30:57 2017 -0500 +++ b/piecrust/app.py Wed Dec 28 01:27:02 2016 -0500 @@ -200,6 +200,11 @@ tgts.append(tgt) return tgts + @cached_property + def dataProviderClasses(self): + return self.plugin_loader.getDataProviders() + + def getSource(self, source_name): for source in self.sources: if source.name == source_name: @@ -235,6 +240,14 @@ if pub.target == target_name: return pub return None + + def getDataProviderClass(cls, provider_type): + for prov in cls.dataProviderClasses: + if prov.PROVIDER_NAME == provider_type: + return prov + raise ConfigurationError( + "Unknown data provider type: %s" % provider_type) + def _get_dir(self, default_rel_dir): abs_dir = os.path.join(self.root_dir, default_rel_dir)