Mercurial > piecrust2
diff piecrust/plugins/builtin.py @ 823:ad12a942cadd
internal: Import things in the builtin plugin only when needed.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Fri, 03 Feb 2017 20:08:04 -0800 |
parents | 6abb436fea5b |
children | 4850f8c21b6e |
line wrap: on
line diff
--- a/piecrust/plugins/builtin.py Thu Nov 17 01:53:14 2016 +0100 +++ b/piecrust/plugins/builtin.py Fri Feb 03 20:08:04 2017 -0800 @@ -1,139 +1,152 @@ -from piecrust.commands.base import HelpCommand -from piecrust.commands.builtin.admin import AdministrationPanelCommand -from piecrust.commands.builtin.baking import ( - BakeCommand, ShowRecordCommand) -from piecrust.commands.builtin.info import ( - RootCommand, ShowConfigCommand, - FindCommand, ShowSourcesCommand, ShowRoutesCommand, ShowPathsCommand) -from piecrust.commands.builtin.plugins import PluginsCommand -from piecrust.commands.builtin.publishing import PublishCommand -from piecrust.commands.builtin.scaffolding import ( - PrepareCommand, - DefaultPrepareTemplatesCommandExtension, - UserDefinedPrepareTemplatesCommandExtension, - DefaultPrepareTemplatesHelpTopic) -from piecrust.commands.builtin.serving import (ServeCommand) -from piecrust.commands.builtin.themes import (ThemesCommand) -from piecrust.commands.builtin.util import ( - InitCommand, PurgeCommand, ImportCommand) -from piecrust.data.provider import (IteratorDataProvider, BlogDataProvider) -from piecrust.formatting.hoedownformatter import HoedownFormatter -from piecrust.formatting.markdownformatter import MarkdownFormatter -from piecrust.formatting.textileformatter import TextileFormatter -from piecrust.formatting.smartypantsformatter import SmartyPantsFormatter -from piecrust.generation.blogarchives import BlogArchivesPageGenerator -from piecrust.generation.taxonomy import TaxonomyPageGenerator -from piecrust.importing.jekyll import JekyllImporter -from piecrust.importing.piecrust import PieCrust1Importer -from piecrust.importing.wordpress import WordpressXmlImporter from piecrust.plugins.base import PieCrustPlugin -from piecrust.processing.base import CopyFileProcessor -from piecrust.processing.compass import CompassProcessor -from piecrust.processing.compressors import ( - CleanCssProcessor, UglifyJSProcessor) -from piecrust.processing.less import LessProcessor -from piecrust.processing.pygments_style import PygmentsStyleProcessor -from piecrust.processing.requirejs import RequireJSProcessor -from piecrust.processing.sass import SassProcessor -from piecrust.processing.sitemap import SitemapProcessor -from piecrust.processing.util import ConcatProcessor -from piecrust.publishing.sftp import SftpPublisher -from piecrust.publishing.shell import ShellCommandPublisher -from piecrust.publishing.rsync import RsyncPublisher -from piecrust.sources.default import DefaultPageSource -from piecrust.sources.posts import ( - FlatPostsSource, ShallowPostsSource, HierarchyPostsSource) -from piecrust.sources.autoconfig import ( - AutoConfigSource, OrderedPageSource) -from piecrust.sources.prose import ProseSource -from piecrust.templating.jinjaengine import JinjaTemplateEngine -from piecrust.templating.pystacheengine import PystacheTemplateEngine class BuiltInPlugin(PieCrustPlugin): name = '__builtin__' def getCommands(self): + from piecrust.commands.base import HelpCommand + from piecrust.commands.builtin.admin import AdministrationPanelCommand + from piecrust.commands.builtin.baking import ( + BakeCommand, ShowRecordCommand) + from piecrust.commands.builtin.info import ( + RootCommand, ShowConfigCommand, + FindCommand, ShowSourcesCommand, ShowRoutesCommand, + ShowPathsCommand) + from piecrust.commands.builtin.plugins import PluginsCommand + from piecrust.commands.builtin.publishing import PublishCommand + from piecrust.commands.builtin.scaffolding import PrepareCommand + from piecrust.commands.builtin.serving import (ServeCommand) + from piecrust.commands.builtin.themes import (ThemesCommand) + from piecrust.commands.builtin.util import ( + InitCommand, PurgeCommand, ImportCommand) + return [ - InitCommand(), - ImportCommand(), - HelpCommand(), - RootCommand(), - PurgeCommand(), - ShowConfigCommand(), - FindCommand(), - PrepareCommand(), - ShowSourcesCommand(), - ShowRoutesCommand(), - ShowPathsCommand(), - ThemesCommand(), - PluginsCommand(), - BakeCommand(), - ShowRecordCommand(), - ServeCommand(), - AdministrationPanelCommand(), - PublishCommand()] + InitCommand(), + ImportCommand(), + HelpCommand(), + RootCommand(), + PurgeCommand(), + ShowConfigCommand(), + FindCommand(), + PrepareCommand(), + ShowSourcesCommand(), + ShowRoutesCommand(), + ShowPathsCommand(), + ThemesCommand(), + PluginsCommand(), + BakeCommand(), + ShowRecordCommand(), + ServeCommand(), + AdministrationPanelCommand(), + PublishCommand()] def getCommandExtensions(self): + from piecrust.commands.builtin.scaffolding import ( + DefaultPrepareTemplatesCommandExtension, + UserDefinedPrepareTemplatesCommandExtension, + DefaultPrepareTemplatesHelpTopic) + return [ - DefaultPrepareTemplatesCommandExtension(), - UserDefinedPrepareTemplatesCommandExtension(), - DefaultPrepareTemplatesHelpTopic()] + DefaultPrepareTemplatesCommandExtension(), + UserDefinedPrepareTemplatesCommandExtension(), + DefaultPrepareTemplatesHelpTopic()] def getSources(self): + from piecrust.sources.default import DefaultPageSource + from piecrust.sources.posts import ( + FlatPostsSource, ShallowPostsSource, HierarchyPostsSource) + from piecrust.sources.autoconfig import ( + AutoConfigSource, OrderedPageSource) + from piecrust.sources.prose import ProseSource + return [ - DefaultPageSource, - FlatPostsSource, - ShallowPostsSource, - HierarchyPostsSource, - AutoConfigSource, - OrderedPageSource, - ProseSource] + DefaultPageSource, + FlatPostsSource, + ShallowPostsSource, + HierarchyPostsSource, + AutoConfigSource, + OrderedPageSource, + ProseSource] def getPageGenerators(self): + from piecrust.generation.blogarchives import BlogArchivesPageGenerator + from piecrust.generation.taxonomy import TaxonomyPageGenerator + return [ - TaxonomyPageGenerator, - BlogArchivesPageGenerator] + TaxonomyPageGenerator, + BlogArchivesPageGenerator] def getDataProviders(self): + from piecrust.data.provider import ( + IteratorDataProvider, BlogDataProvider) + return [ - IteratorDataProvider, - BlogDataProvider] + IteratorDataProvider, + BlogDataProvider] def getTemplateEngines(self): + from piecrust.templating.jinjaengine import JinjaTemplateEngine + from piecrust.templating.pystacheengine import PystacheTemplateEngine + return [ - JinjaTemplateEngine(), - PystacheTemplateEngine()] + JinjaTemplateEngine(), + PystacheTemplateEngine()] def getFormatters(self): + from piecrust.formatting.hoedownformatter import HoedownFormatter + from piecrust.formatting.markdownformatter import MarkdownFormatter + from piecrust.formatting.textileformatter import TextileFormatter + from piecrust.formatting.smartypantsformatter import ( + SmartyPantsFormatter) + return [ - HoedownFormatter(), - MarkdownFormatter(), - SmartyPantsFormatter(), - TextileFormatter()] + HoedownFormatter(), + MarkdownFormatter(), + SmartyPantsFormatter(), + TextileFormatter()] def getProcessors(self): + from piecrust.processing.base import CopyFileProcessor + from piecrust.processing.compass import CompassProcessor + from piecrust.processing.compressors import ( + CleanCssProcessor, UglifyJSProcessor) + from piecrust.processing.less import LessProcessor + from piecrust.processing.pygments_style import PygmentsStyleProcessor + from piecrust.processing.requirejs import RequireJSProcessor + from piecrust.processing.sass import SassProcessor + from piecrust.processing.sitemap import SitemapProcessor + from piecrust.processing.util import ConcatProcessor + return [ - CopyFileProcessor(), - ConcatProcessor(), - PygmentsStyleProcessor(), - CompassProcessor(), - LessProcessor(), - SassProcessor(), - RequireJSProcessor(), - SitemapProcessor(), - CleanCssProcessor(), - UglifyJSProcessor()] + CopyFileProcessor(), + ConcatProcessor(), + PygmentsStyleProcessor(), + CompassProcessor(), + LessProcessor(), + SassProcessor(), + RequireJSProcessor(), + SitemapProcessor(), + CleanCssProcessor(), + UglifyJSProcessor()] def getImporters(self): + from piecrust.importing.jekyll import JekyllImporter + from piecrust.importing.piecrust import PieCrust1Importer + from piecrust.importing.wordpress import WordpressXmlImporter + return [ - PieCrust1Importer(), - JekyllImporter(), - WordpressXmlImporter()] + PieCrust1Importer(), + JekyllImporter(), + WordpressXmlImporter()] def getPublishers(self): + from piecrust.publishing.sftp import SftpPublisher + from piecrust.publishing.shell import ShellCommandPublisher + from piecrust.publishing.rsync import RsyncPublisher + return [ - ShellCommandPublisher, - SftpPublisher, - RsyncPublisher] + ShellCommandPublisher, + SftpPublisher, + RsyncPublisher]