comparison 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
comparison
equal deleted inserted replaced
821:70f722a1f447 823:ad12a942cadd
1 from piecrust.commands.base import HelpCommand
2 from piecrust.commands.builtin.admin import AdministrationPanelCommand
3 from piecrust.commands.builtin.baking import (
4 BakeCommand, ShowRecordCommand)
5 from piecrust.commands.builtin.info import (
6 RootCommand, ShowConfigCommand,
7 FindCommand, ShowSourcesCommand, ShowRoutesCommand, ShowPathsCommand)
8 from piecrust.commands.builtin.plugins import PluginsCommand
9 from piecrust.commands.builtin.publishing import PublishCommand
10 from piecrust.commands.builtin.scaffolding import (
11 PrepareCommand,
12 DefaultPrepareTemplatesCommandExtension,
13 UserDefinedPrepareTemplatesCommandExtension,
14 DefaultPrepareTemplatesHelpTopic)
15 from piecrust.commands.builtin.serving import (ServeCommand)
16 from piecrust.commands.builtin.themes import (ThemesCommand)
17 from piecrust.commands.builtin.util import (
18 InitCommand, PurgeCommand, ImportCommand)
19 from piecrust.data.provider import (IteratorDataProvider, BlogDataProvider)
20 from piecrust.formatting.hoedownformatter import HoedownFormatter
21 from piecrust.formatting.markdownformatter import MarkdownFormatter
22 from piecrust.formatting.textileformatter import TextileFormatter
23 from piecrust.formatting.smartypantsformatter import SmartyPantsFormatter
24 from piecrust.generation.blogarchives import BlogArchivesPageGenerator
25 from piecrust.generation.taxonomy import TaxonomyPageGenerator
26 from piecrust.importing.jekyll import JekyllImporter
27 from piecrust.importing.piecrust import PieCrust1Importer
28 from piecrust.importing.wordpress import WordpressXmlImporter
29 from piecrust.plugins.base import PieCrustPlugin 1 from piecrust.plugins.base import PieCrustPlugin
30 from piecrust.processing.base import CopyFileProcessor
31 from piecrust.processing.compass import CompassProcessor
32 from piecrust.processing.compressors import (
33 CleanCssProcessor, UglifyJSProcessor)
34 from piecrust.processing.less import LessProcessor
35 from piecrust.processing.pygments_style import PygmentsStyleProcessor
36 from piecrust.processing.requirejs import RequireJSProcessor
37 from piecrust.processing.sass import SassProcessor
38 from piecrust.processing.sitemap import SitemapProcessor
39 from piecrust.processing.util import ConcatProcessor
40 from piecrust.publishing.sftp import SftpPublisher
41 from piecrust.publishing.shell import ShellCommandPublisher
42 from piecrust.publishing.rsync import RsyncPublisher
43 from piecrust.sources.default import DefaultPageSource
44 from piecrust.sources.posts import (
45 FlatPostsSource, ShallowPostsSource, HierarchyPostsSource)
46 from piecrust.sources.autoconfig import (
47 AutoConfigSource, OrderedPageSource)
48 from piecrust.sources.prose import ProseSource
49 from piecrust.templating.jinjaengine import JinjaTemplateEngine
50 from piecrust.templating.pystacheengine import PystacheTemplateEngine
51 2
52 3
53 class BuiltInPlugin(PieCrustPlugin): 4 class BuiltInPlugin(PieCrustPlugin):
54 name = '__builtin__' 5 name = '__builtin__'
55 6
56 def getCommands(self): 7 def getCommands(self):
8 from piecrust.commands.base import HelpCommand
9 from piecrust.commands.builtin.admin import AdministrationPanelCommand
10 from piecrust.commands.builtin.baking import (
11 BakeCommand, ShowRecordCommand)
12 from piecrust.commands.builtin.info import (
13 RootCommand, ShowConfigCommand,
14 FindCommand, ShowSourcesCommand, ShowRoutesCommand,
15 ShowPathsCommand)
16 from piecrust.commands.builtin.plugins import PluginsCommand
17 from piecrust.commands.builtin.publishing import PublishCommand
18 from piecrust.commands.builtin.scaffolding import PrepareCommand
19 from piecrust.commands.builtin.serving import (ServeCommand)
20 from piecrust.commands.builtin.themes import (ThemesCommand)
21 from piecrust.commands.builtin.util import (
22 InitCommand, PurgeCommand, ImportCommand)
23
57 return [ 24 return [
58 InitCommand(), 25 InitCommand(),
59 ImportCommand(), 26 ImportCommand(),
60 HelpCommand(), 27 HelpCommand(),
61 RootCommand(), 28 RootCommand(),
62 PurgeCommand(), 29 PurgeCommand(),
63 ShowConfigCommand(), 30 ShowConfigCommand(),
64 FindCommand(), 31 FindCommand(),
65 PrepareCommand(), 32 PrepareCommand(),
66 ShowSourcesCommand(), 33 ShowSourcesCommand(),
67 ShowRoutesCommand(), 34 ShowRoutesCommand(),
68 ShowPathsCommand(), 35 ShowPathsCommand(),
69 ThemesCommand(), 36 ThemesCommand(),
70 PluginsCommand(), 37 PluginsCommand(),
71 BakeCommand(), 38 BakeCommand(),
72 ShowRecordCommand(), 39 ShowRecordCommand(),
73 ServeCommand(), 40 ServeCommand(),
74 AdministrationPanelCommand(), 41 AdministrationPanelCommand(),
75 PublishCommand()] 42 PublishCommand()]
76 43
77 def getCommandExtensions(self): 44 def getCommandExtensions(self):
45 from piecrust.commands.builtin.scaffolding import (
46 DefaultPrepareTemplatesCommandExtension,
47 UserDefinedPrepareTemplatesCommandExtension,
48 DefaultPrepareTemplatesHelpTopic)
49
78 return [ 50 return [
79 DefaultPrepareTemplatesCommandExtension(), 51 DefaultPrepareTemplatesCommandExtension(),
80 UserDefinedPrepareTemplatesCommandExtension(), 52 UserDefinedPrepareTemplatesCommandExtension(),
81 DefaultPrepareTemplatesHelpTopic()] 53 DefaultPrepareTemplatesHelpTopic()]
82 54
83 def getSources(self): 55 def getSources(self):
56 from piecrust.sources.default import DefaultPageSource
57 from piecrust.sources.posts import (
58 FlatPostsSource, ShallowPostsSource, HierarchyPostsSource)
59 from piecrust.sources.autoconfig import (
60 AutoConfigSource, OrderedPageSource)
61 from piecrust.sources.prose import ProseSource
62
84 return [ 63 return [
85 DefaultPageSource, 64 DefaultPageSource,
86 FlatPostsSource, 65 FlatPostsSource,
87 ShallowPostsSource, 66 ShallowPostsSource,
88 HierarchyPostsSource, 67 HierarchyPostsSource,
89 AutoConfigSource, 68 AutoConfigSource,
90 OrderedPageSource, 69 OrderedPageSource,
91 ProseSource] 70 ProseSource]
92 71
93 def getPageGenerators(self): 72 def getPageGenerators(self):
73 from piecrust.generation.blogarchives import BlogArchivesPageGenerator
74 from piecrust.generation.taxonomy import TaxonomyPageGenerator
75
94 return [ 76 return [
95 TaxonomyPageGenerator, 77 TaxonomyPageGenerator,
96 BlogArchivesPageGenerator] 78 BlogArchivesPageGenerator]
97 79
98 def getDataProviders(self): 80 def getDataProviders(self):
81 from piecrust.data.provider import (
82 IteratorDataProvider, BlogDataProvider)
83
99 return [ 84 return [
100 IteratorDataProvider, 85 IteratorDataProvider,
101 BlogDataProvider] 86 BlogDataProvider]
102 87
103 def getTemplateEngines(self): 88 def getTemplateEngines(self):
89 from piecrust.templating.jinjaengine import JinjaTemplateEngine
90 from piecrust.templating.pystacheengine import PystacheTemplateEngine
91
104 return [ 92 return [
105 JinjaTemplateEngine(), 93 JinjaTemplateEngine(),
106 PystacheTemplateEngine()] 94 PystacheTemplateEngine()]
107 95
108 def getFormatters(self): 96 def getFormatters(self):
97 from piecrust.formatting.hoedownformatter import HoedownFormatter
98 from piecrust.formatting.markdownformatter import MarkdownFormatter
99 from piecrust.formatting.textileformatter import TextileFormatter
100 from piecrust.formatting.smartypantsformatter import (
101 SmartyPantsFormatter)
102
109 return [ 103 return [
110 HoedownFormatter(), 104 HoedownFormatter(),
111 MarkdownFormatter(), 105 MarkdownFormatter(),
112 SmartyPantsFormatter(), 106 SmartyPantsFormatter(),
113 TextileFormatter()] 107 TextileFormatter()]
114 108
115 def getProcessors(self): 109 def getProcessors(self):
110 from piecrust.processing.base import CopyFileProcessor
111 from piecrust.processing.compass import CompassProcessor
112 from piecrust.processing.compressors import (
113 CleanCssProcessor, UglifyJSProcessor)
114 from piecrust.processing.less import LessProcessor
115 from piecrust.processing.pygments_style import PygmentsStyleProcessor
116 from piecrust.processing.requirejs import RequireJSProcessor
117 from piecrust.processing.sass import SassProcessor
118 from piecrust.processing.sitemap import SitemapProcessor
119 from piecrust.processing.util import ConcatProcessor
120
116 return [ 121 return [
117 CopyFileProcessor(), 122 CopyFileProcessor(),
118 ConcatProcessor(), 123 ConcatProcessor(),
119 PygmentsStyleProcessor(), 124 PygmentsStyleProcessor(),
120 CompassProcessor(), 125 CompassProcessor(),
121 LessProcessor(), 126 LessProcessor(),
122 SassProcessor(), 127 SassProcessor(),
123 RequireJSProcessor(), 128 RequireJSProcessor(),
124 SitemapProcessor(), 129 SitemapProcessor(),
125 CleanCssProcessor(), 130 CleanCssProcessor(),
126 UglifyJSProcessor()] 131 UglifyJSProcessor()]
127 132
128 def getImporters(self): 133 def getImporters(self):
134 from piecrust.importing.jekyll import JekyllImporter
135 from piecrust.importing.piecrust import PieCrust1Importer
136 from piecrust.importing.wordpress import WordpressXmlImporter
137
129 return [ 138 return [
130 PieCrust1Importer(), 139 PieCrust1Importer(),
131 JekyllImporter(), 140 JekyllImporter(),
132 WordpressXmlImporter()] 141 WordpressXmlImporter()]
133 142
134 def getPublishers(self): 143 def getPublishers(self):
144 from piecrust.publishing.sftp import SftpPublisher
145 from piecrust.publishing.shell import ShellCommandPublisher
146 from piecrust.publishing.rsync import RsyncPublisher
147
135 return [ 148 return [
136 ShellCommandPublisher, 149 ShellCommandPublisher,
137 SftpPublisher, 150 SftpPublisher,
138 RsyncPublisher] 151 RsyncPublisher]
139 152