Mercurial > piecrust2
annotate piecrust/app.py @ 864:5c5b85d4f17d
debug: Raise Jinja template exceptions the same way in both render passes.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Thu, 08 Jun 2017 23:31:45 -0700 |
parents | 08e02c2a2a1a |
children | d1095774bfcf |
rev | line source |
---|---|
411
e7b865f8f335
bake: Enable multiprocess baking.
Ludovic Chabant <ludovic@chabant.com>
parents:
371
diff
changeset
|
1 import time |
0 | 2 import os.path |
3 import logging | |
758
6abb436fea5b
publish: Make publisher more powerful and better exposed on the command line.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
4 import urllib.parse |
3
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
5 from werkzeug.utils import cached_property |
271
12657039c436
internal: Re-use the cached resource directory.
Ludovic Chabant <ludovic@chabant.com>
parents:
260
diff
changeset
|
6 from piecrust import ( |
852
4850f8c21b6e
core: Start of the big refactor for PieCrust 3.0.
Ludovic Chabant <ludovic@chabant.com>
parents:
848
diff
changeset
|
7 RESOURCES_DIR, |
4850f8c21b6e
core: Start of the big refactor for PieCrust 3.0.
Ludovic Chabant <ludovic@chabant.com>
parents:
848
diff
changeset
|
8 CACHE_DIR, TEMPLATES_DIR, ASSETS_DIR, |
4850f8c21b6e
core: Start of the big refactor for PieCrust 3.0.
Ludovic Chabant <ludovic@chabant.com>
parents:
848
diff
changeset
|
9 THEME_DIR, PLUGINS_DIR, |
4850f8c21b6e
core: Start of the big refactor for PieCrust 3.0.
Ludovic Chabant <ludovic@chabant.com>
parents:
848
diff
changeset
|
10 CONFIG_PATH, THEME_CONFIG_PATH) |
584
9ccc933ac2c7
internal: Refactor the app configuration class.
Ludovic Chabant <ludovic@chabant.com>
parents:
568
diff
changeset
|
11 from piecrust.appconfig import PieCrustConfiguration |
9ccc933ac2c7
internal: Refactor the app configuration class.
Ludovic Chabant <ludovic@chabant.com>
parents:
568
diff
changeset
|
12 from piecrust.cache import ExtensibleCache, NullExtensibleCache |
852
4850f8c21b6e
core: Start of the big refactor for PieCrust 3.0.
Ludovic Chabant <ludovic@chabant.com>
parents:
848
diff
changeset
|
13 from piecrust.configuration import ConfigurationError |
3
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
14 from piecrust.environment import StandardEnvironment |
852
4850f8c21b6e
core: Start of the big refactor for PieCrust 3.0.
Ludovic Chabant <ludovic@chabant.com>
parents:
848
diff
changeset
|
15 from piecrust.page import Page |
758
6abb436fea5b
publish: Make publisher more powerful and better exposed on the command line.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
16 from piecrust.plugins.base import PluginLoader |
3
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
17 from piecrust.routing import Route |
0 | 18 |
19 | |
20 logger = logging.getLogger(__name__) | |
21 | |
22 | |
23 class PieCrust(object): | |
3
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
24 def __init__(self, root_dir, cache=True, debug=False, theme_site=False, |
666
81d9c3a3a0b5
internal: Get rid of the whole "sub cache" business.
Ludovic Chabant <ludovic@chabant.com>
parents:
663
diff
changeset
|
25 env=None, cache_key=None): |
3
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
26 self.root_dir = root_dir |
0 | 27 self.debug = debug |
3
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
28 self.theme_site = theme_site |
0 | 29 self.plugin_loader = PluginLoader(self) |
666
81d9c3a3a0b5
internal: Get rid of the whole "sub cache" business.
Ludovic Chabant <ludovic@chabant.com>
parents:
663
diff
changeset
|
30 self.cache_key = cache_key or 'default' |
3
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
31 |
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
32 if cache: |
666
81d9c3a3a0b5
internal: Get rid of the whole "sub cache" business.
Ludovic Chabant <ludovic@chabant.com>
parents:
663
diff
changeset
|
33 self.cache = ExtensibleCache(self.cache_dir) |
3
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
34 else: |
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
35 self.cache = NullExtensibleCache() |
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
36 |
853
f070a4fc033c
core: Continue PieCrust3 refactor, simplify pages.
Ludovic Chabant <ludovic@chabant.com>
parents:
852
diff
changeset
|
37 if env is None: |
f070a4fc033c
core: Continue PieCrust3 refactor, simplify pages.
Ludovic Chabant <ludovic@chabant.com>
parents:
852
diff
changeset
|
38 env = StandardEnvironment() |
0 | 39 self.env = env |
853
f070a4fc033c
core: Continue PieCrust3 refactor, simplify pages.
Ludovic Chabant <ludovic@chabant.com>
parents:
852
diff
changeset
|
40 env.initialize(self) |
f070a4fc033c
core: Continue PieCrust3 refactor, simplify pages.
Ludovic Chabant <ludovic@chabant.com>
parents:
852
diff
changeset
|
41 |
f070a4fc033c
core: Continue PieCrust3 refactor, simplify pages.
Ludovic Chabant <ludovic@chabant.com>
parents:
852
diff
changeset
|
42 stats = env.stats |
f070a4fc033c
core: Continue PieCrust3 refactor, simplify pages.
Ludovic Chabant <ludovic@chabant.com>
parents:
852
diff
changeset
|
43 stats.registerTimer('SiteConfigLoad') |
f070a4fc033c
core: Continue PieCrust3 refactor, simplify pages.
Ludovic Chabant <ludovic@chabant.com>
parents:
852
diff
changeset
|
44 stats.registerTimer('PageLoad') |
f070a4fc033c
core: Continue PieCrust3 refactor, simplify pages.
Ludovic Chabant <ludovic@chabant.com>
parents:
852
diff
changeset
|
45 stats.registerTimer("PageDataBuild") |
f070a4fc033c
core: Continue PieCrust3 refactor, simplify pages.
Ludovic Chabant <ludovic@chabant.com>
parents:
852
diff
changeset
|
46 stats.registerTimer("BuildRenderData") |
f070a4fc033c
core: Continue PieCrust3 refactor, simplify pages.
Ludovic Chabant <ludovic@chabant.com>
parents:
852
diff
changeset
|
47 stats.registerTimer("PageRender") |
f070a4fc033c
core: Continue PieCrust3 refactor, simplify pages.
Ludovic Chabant <ludovic@chabant.com>
parents:
852
diff
changeset
|
48 stats.registerTimer("PageRenderSegments") |
f070a4fc033c
core: Continue PieCrust3 refactor, simplify pages.
Ludovic Chabant <ludovic@chabant.com>
parents:
852
diff
changeset
|
49 stats.registerTimer("PageRenderLayout") |
f070a4fc033c
core: Continue PieCrust3 refactor, simplify pages.
Ludovic Chabant <ludovic@chabant.com>
parents:
852
diff
changeset
|
50 stats.registerTimer("PageSerialize") |
411
e7b865f8f335
bake: Enable multiprocess baking.
Ludovic Chabant <ludovic@chabant.com>
parents:
371
diff
changeset
|
51 |
3
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
52 @cached_property |
0 | 53 def config(self): |
3
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
54 logger.debug("Creating site configuration...") |
411
e7b865f8f335
bake: Enable multiprocess baking.
Ludovic Chabant <ludovic@chabant.com>
parents:
371
diff
changeset
|
55 start_time = time.perf_counter() |
e7b865f8f335
bake: Enable multiprocess baking.
Ludovic Chabant <ludovic@chabant.com>
parents:
371
diff
changeset
|
56 |
663
3ceeca7bb71c
themes: Add support for a `--theme` argument to `chef`.
Ludovic Chabant <ludovic@chabant.com>
parents:
586
diff
changeset
|
57 if not self.theme_site: |
681
894d286b348f
internal: Refactor config loading some more.
Ludovic Chabant <ludovic@chabant.com>
parents:
675
diff
changeset
|
58 path = os.path.join(self.root_dir, CONFIG_PATH) |
663
3ceeca7bb71c
themes: Add support for a `--theme` argument to `chef`.
Ludovic Chabant <ludovic@chabant.com>
parents:
586
diff
changeset
|
59 else: |
681
894d286b348f
internal: Refactor config loading some more.
Ludovic Chabant <ludovic@chabant.com>
parents:
675
diff
changeset
|
60 path = os.path.join(self.root_dir, THEME_CONFIG_PATH) |
894d286b348f
internal: Refactor config loading some more.
Ludovic Chabant <ludovic@chabant.com>
parents:
675
diff
changeset
|
61 |
894d286b348f
internal: Refactor config loading some more.
Ludovic Chabant <ludovic@chabant.com>
parents:
675
diff
changeset
|
62 theme_path = None |
894d286b348f
internal: Refactor config loading some more.
Ludovic Chabant <ludovic@chabant.com>
parents:
675
diff
changeset
|
63 if not self.theme_site and self.theme_dir: |
894d286b348f
internal: Refactor config loading some more.
Ludovic Chabant <ludovic@chabant.com>
parents:
675
diff
changeset
|
64 theme_path = os.path.join(self.theme_dir, THEME_CONFIG_PATH) |
0 | 65 |
3
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
66 config_cache = self.cache.getCache('app') |
675
3df808b133f8
internal: Improve how theme configuration is validated and merged.
Ludovic Chabant <ludovic@chabant.com>
parents:
666
diff
changeset
|
67 config = PieCrustConfiguration( |
852
4850f8c21b6e
core: Start of the big refactor for PieCrust 3.0.
Ludovic Chabant <ludovic@chabant.com>
parents:
848
diff
changeset
|
68 path=path, theme_path=theme_path, |
4850f8c21b6e
core: Start of the big refactor for PieCrust 3.0.
Ludovic Chabant <ludovic@chabant.com>
parents:
848
diff
changeset
|
69 cache=config_cache, theme_config=self.theme_site) |
681
894d286b348f
internal: Refactor config loading some more.
Ludovic Chabant <ludovic@chabant.com>
parents:
675
diff
changeset
|
70 |
805
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
758
diff
changeset
|
71 local_path = os.path.join( |
852
4850f8c21b6e
core: Start of the big refactor for PieCrust 3.0.
Ludovic Chabant <ludovic@chabant.com>
parents:
848
diff
changeset
|
72 self.root_dir, 'configs', 'local.yml') |
805
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
758
diff
changeset
|
73 config.addVariant(local_path, raise_if_not_found=False) |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
758
diff
changeset
|
74 |
681
894d286b348f
internal: Refactor config loading some more.
Ludovic Chabant <ludovic@chabant.com>
parents:
675
diff
changeset
|
75 if self.theme_site: |
894d286b348f
internal: Refactor config loading some more.
Ludovic Chabant <ludovic@chabant.com>
parents:
675
diff
changeset
|
76 variant_path = os.path.join( |
852
4850f8c21b6e
core: Start of the big refactor for PieCrust 3.0.
Ludovic Chabant <ludovic@chabant.com>
parents:
848
diff
changeset
|
77 self.root_dir, 'configs', 'theme_preview.yml') |
681
894d286b348f
internal: Refactor config loading some more.
Ludovic Chabant <ludovic@chabant.com>
parents:
675
diff
changeset
|
78 config.addVariant(variant_path, raise_if_not_found=False) |
0 | 79 |
852
4850f8c21b6e
core: Start of the big refactor for PieCrust 3.0.
Ludovic Chabant <ludovic@chabant.com>
parents:
848
diff
changeset
|
80 self.env.stats.stepTimer('SiteConfigLoad', |
4850f8c21b6e
core: Start of the big refactor for PieCrust 3.0.
Ludovic Chabant <ludovic@chabant.com>
parents:
848
diff
changeset
|
81 time.perf_counter() - start_time) |
0 | 82 return config |
83 | |
3
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
84 @cached_property |
36
485682a6de50
New site layout support.
Ludovic Chabant <ludovic@chabant.com>
parents:
31
diff
changeset
|
85 def assets_dirs(self): |
584
9ccc933ac2c7
internal: Refactor the app configuration class.
Ludovic Chabant <ludovic@chabant.com>
parents:
568
diff
changeset
|
86 assets_dirs = self._get_configurable_dirs( |
852
4850f8c21b6e
core: Start of the big refactor for PieCrust 3.0.
Ludovic Chabant <ludovic@chabant.com>
parents:
848
diff
changeset
|
87 ASSETS_DIR, 'site/assets_dirs') |
36
485682a6de50
New site layout support.
Ludovic Chabant <ludovic@chabant.com>
parents:
31
diff
changeset
|
88 |
485682a6de50
New site layout support.
Ludovic Chabant <ludovic@chabant.com>
parents:
31
diff
changeset
|
89 # Also add the theme directory, if any. |
485682a6de50
New site layout support.
Ludovic Chabant <ludovic@chabant.com>
parents:
31
diff
changeset
|
90 if self.theme_dir: |
485682a6de50
New site layout support.
Ludovic Chabant <ludovic@chabant.com>
parents:
31
diff
changeset
|
91 default_theme_dir = os.path.join(self.theme_dir, ASSETS_DIR) |
485682a6de50
New site layout support.
Ludovic Chabant <ludovic@chabant.com>
parents:
31
diff
changeset
|
92 if os.path.isdir(default_theme_dir): |
485682a6de50
New site layout support.
Ludovic Chabant <ludovic@chabant.com>
parents:
31
diff
changeset
|
93 assets_dirs.append(default_theme_dir) |
485682a6de50
New site layout support.
Ludovic Chabant <ludovic@chabant.com>
parents:
31
diff
changeset
|
94 |
485682a6de50
New site layout support.
Ludovic Chabant <ludovic@chabant.com>
parents:
31
diff
changeset
|
95 return assets_dirs |
485682a6de50
New site layout support.
Ludovic Chabant <ludovic@chabant.com>
parents:
31
diff
changeset
|
96 |
485682a6de50
New site layout support.
Ludovic Chabant <ludovic@chabant.com>
parents:
31
diff
changeset
|
97 @cached_property |
0 | 98 def templates_dirs(self): |
584
9ccc933ac2c7
internal: Refactor the app configuration class.
Ludovic Chabant <ludovic@chabant.com>
parents:
568
diff
changeset
|
99 templates_dirs = self._get_configurable_dirs( |
852
4850f8c21b6e
core: Start of the big refactor for PieCrust 3.0.
Ludovic Chabant <ludovic@chabant.com>
parents:
848
diff
changeset
|
100 TEMPLATES_DIR, 'site/templates_dirs') |
0 | 101 |
36
485682a6de50
New site layout support.
Ludovic Chabant <ludovic@chabant.com>
parents:
31
diff
changeset
|
102 # Also, add the theme directory, if any. |
0 | 103 if self.theme_dir: |
104 default_theme_dir = os.path.join(self.theme_dir, TEMPLATES_DIR) | |
105 if os.path.isdir(default_theme_dir): | |
106 templates_dirs.append(default_theme_dir) | |
107 | |
108 return templates_dirs | |
109 | |
3
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
110 @cached_property |
0 | 111 def theme_dir(self): |
709
4285b2c9b872
themes: Add support for loading from a library of themes.
Ludovic Chabant <ludovic@chabant.com>
parents:
681
diff
changeset
|
112 # No theme if the curent site is already a theme. |
663
3ceeca7bb71c
themes: Add support for a `--theme` argument to `chef`.
Ludovic Chabant <ludovic@chabant.com>
parents:
586
diff
changeset
|
113 if self.theme_site: |
3ceeca7bb71c
themes: Add support for a `--theme` argument to `chef`.
Ludovic Chabant <ludovic@chabant.com>
parents:
586
diff
changeset
|
114 return None |
709
4285b2c9b872
themes: Add support for loading from a library of themes.
Ludovic Chabant <ludovic@chabant.com>
parents:
681
diff
changeset
|
115 |
4285b2c9b872
themes: Add support for loading from a library of themes.
Ludovic Chabant <ludovic@chabant.com>
parents:
681
diff
changeset
|
116 # See if there's a theme we absolutely want. |
3
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
117 td = self._get_dir(THEME_DIR) |
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
118 if td is not None: |
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
119 return td |
709
4285b2c9b872
themes: Add support for loading from a library of themes.
Ludovic Chabant <ludovic@chabant.com>
parents:
681
diff
changeset
|
120 |
4285b2c9b872
themes: Add support for loading from a library of themes.
Ludovic Chabant <ludovic@chabant.com>
parents:
681
diff
changeset
|
121 # Try to load a theme specified in the configuration. |
4285b2c9b872
themes: Add support for loading from a library of themes.
Ludovic Chabant <ludovic@chabant.com>
parents:
681
diff
changeset
|
122 from piecrust.themes.base import ThemeLoader |
4285b2c9b872
themes: Add support for loading from a library of themes.
Ludovic Chabant <ludovic@chabant.com>
parents:
681
diff
changeset
|
123 loader = ThemeLoader(self.root_dir) |
4285b2c9b872
themes: Add support for loading from a library of themes.
Ludovic Chabant <ludovic@chabant.com>
parents:
681
diff
changeset
|
124 theme_dir = loader.getThemeDir() |
4285b2c9b872
themes: Add support for loading from a library of themes.
Ludovic Chabant <ludovic@chabant.com>
parents:
681
diff
changeset
|
125 if theme_dir is not None: |
4285b2c9b872
themes: Add support for loading from a library of themes.
Ludovic Chabant <ludovic@chabant.com>
parents:
681
diff
changeset
|
126 return theme_dir |
4285b2c9b872
themes: Add support for loading from a library of themes.
Ludovic Chabant <ludovic@chabant.com>
parents:
681
diff
changeset
|
127 |
4285b2c9b872
themes: Add support for loading from a library of themes.
Ludovic Chabant <ludovic@chabant.com>
parents:
681
diff
changeset
|
128 # Nothing... use the default theme. |
271
12657039c436
internal: Re-use the cached resource directory.
Ludovic Chabant <ludovic@chabant.com>
parents:
260
diff
changeset
|
129 return os.path.join(RESOURCES_DIR, 'theme') |
3
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
130 |
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
131 @cached_property |
848
7d83b9484b98
plugins: Add support for "ad-hoc" local plugins.
Ludovic Chabant <ludovic@chabant.com>
parents:
815
diff
changeset
|
132 def plugins_dir(self): |
7d83b9484b98
plugins: Add support for "ad-hoc" local plugins.
Ludovic Chabant <ludovic@chabant.com>
parents:
815
diff
changeset
|
133 return self._get_dir(PLUGINS_DIR) |
7d83b9484b98
plugins: Add support for "ad-hoc" local plugins.
Ludovic Chabant <ludovic@chabant.com>
parents:
815
diff
changeset
|
134 |
7d83b9484b98
plugins: Add support for "ad-hoc" local plugins.
Ludovic Chabant <ludovic@chabant.com>
parents:
815
diff
changeset
|
135 @cached_property |
3
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
136 def cache_dir(self): |
666
81d9c3a3a0b5
internal: Get rid of the whole "sub cache" business.
Ludovic Chabant <ludovic@chabant.com>
parents:
663
diff
changeset
|
137 return os.path.join(self.root_dir, CACHE_DIR, self.cache_key) |
371
c2ca72fb7f0b
caching: Use separate caches for config variants and other contexts.
Ludovic Chabant <ludovic@chabant.com>
parents:
369
diff
changeset
|
138 |
3
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
139 @cached_property |
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
140 def sources(self): |
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
141 defs = {} |
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
142 for cls in self.plugin_loader.getSources(): |
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
143 defs[cls.SOURCE_NAME] = cls |
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
144 |
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
145 sources = [] |
5 | 146 for n, s in self.config.get('site/sources').items(): |
3
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
147 cls = defs.get(s['type']) |
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
148 if cls is None: |
584
9ccc933ac2c7
internal: Refactor the app configuration class.
Ludovic Chabant <ludovic@chabant.com>
parents:
568
diff
changeset
|
149 raise ConfigurationError("No such page source type: %s" % |
9ccc933ac2c7
internal: Refactor the app configuration class.
Ludovic Chabant <ludovic@chabant.com>
parents:
568
diff
changeset
|
150 s['type']) |
3
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
151 src = cls(self, n, s) |
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
152 sources.append(src) |
852
4850f8c21b6e
core: Start of the big refactor for PieCrust 3.0.
Ludovic Chabant <ludovic@chabant.com>
parents:
848
diff
changeset
|
153 |
3
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
154 return sources |
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
155 |
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
156 @cached_property |
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
157 def routes(self): |
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
158 routes = [] |
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
159 for r in self.config.get('site/routes'): |
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
160 rte = Route(self, r) |
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
161 routes.append(rte) |
854
08e02c2a2a1a
core: Keep refactoring, this time to prepare for generator sources.
Ludovic Chabant <ludovic@chabant.com>
parents:
853
diff
changeset
|
162 routes = sorted(routes, key=lambda r: r.pass_num) |
3
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
163 return routes |
0 | 164 |
3
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
165 @cached_property |
758
6abb436fea5b
publish: Make publisher more powerful and better exposed on the command line.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
166 def publishers(self): |
6abb436fea5b
publish: Make publisher more powerful and better exposed on the command line.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
167 defs_by_name = {} |
6abb436fea5b
publish: Make publisher more powerful and better exposed on the command line.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
168 defs_by_scheme = {} |
6abb436fea5b
publish: Make publisher more powerful and better exposed on the command line.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
169 for cls in self.plugin_loader.getPublishers(): |
6abb436fea5b
publish: Make publisher more powerful and better exposed on the command line.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
170 defs_by_name[cls.PUBLISHER_NAME] = cls |
6abb436fea5b
publish: Make publisher more powerful and better exposed on the command line.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
171 if cls.PUBLISHER_SCHEME: |
6abb436fea5b
publish: Make publisher more powerful and better exposed on the command line.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
172 defs_by_scheme[cls.PUBLISHER_SCHEME] = cls |
6abb436fea5b
publish: Make publisher more powerful and better exposed on the command line.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
173 |
6abb436fea5b
publish: Make publisher more powerful and better exposed on the command line.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
174 tgts = [] |
6abb436fea5b
publish: Make publisher more powerful and better exposed on the command line.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
175 publish_config = self.config.get('publish') |
6abb436fea5b
publish: Make publisher more powerful and better exposed on the command line.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
176 if publish_config is None: |
6abb436fea5b
publish: Make publisher more powerful and better exposed on the command line.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
177 return tgts |
6abb436fea5b
publish: Make publisher more powerful and better exposed on the command line.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
178 for n, t in publish_config.items(): |
6abb436fea5b
publish: Make publisher more powerful and better exposed on the command line.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
179 pub_type = None |
6abb436fea5b
publish: Make publisher more powerful and better exposed on the command line.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
180 is_scheme = False |
6abb436fea5b
publish: Make publisher more powerful and better exposed on the command line.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
181 if isinstance(t, dict): |
6abb436fea5b
publish: Make publisher more powerful and better exposed on the command line.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
182 pub_type = t.get('type') |
6abb436fea5b
publish: Make publisher more powerful and better exposed on the command line.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
183 elif isinstance(t, str): |
6abb436fea5b
publish: Make publisher more powerful and better exposed on the command line.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
184 comps = urllib.parse.urlparse(t) |
6abb436fea5b
publish: Make publisher more powerful and better exposed on the command line.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
185 pub_type = comps.scheme |
6abb436fea5b
publish: Make publisher more powerful and better exposed on the command line.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
186 is_scheme = True |
6abb436fea5b
publish: Make publisher more powerful and better exposed on the command line.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
187 cls = (defs_by_scheme.get(pub_type) if is_scheme |
852
4850f8c21b6e
core: Start of the big refactor for PieCrust 3.0.
Ludovic Chabant <ludovic@chabant.com>
parents:
848
diff
changeset
|
188 else defs_by_name.get(pub_type)) |
758
6abb436fea5b
publish: Make publisher more powerful and better exposed on the command line.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
189 if cls is None: |
6abb436fea5b
publish: Make publisher more powerful and better exposed on the command line.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
190 raise ConfigurationError("No such publisher: %s" % pub_type) |
6abb436fea5b
publish: Make publisher more powerful and better exposed on the command line.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
191 tgt = cls(self, n, t) |
6abb436fea5b
publish: Make publisher more powerful and better exposed on the command line.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
192 tgts.append(tgt) |
6abb436fea5b
publish: Make publisher more powerful and better exposed on the command line.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
193 return tgts |
6abb436fea5b
publish: Make publisher more powerful and better exposed on the command line.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
194 |
3
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
195 def getSource(self, source_name): |
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
196 for source in self.sources: |
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
197 if source.name == source_name: |
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
198 return source |
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
199 |
853
f070a4fc033c
core: Continue PieCrust3 refactor, simplify pages.
Ludovic Chabant <ludovic@chabant.com>
parents:
852
diff
changeset
|
200 from piecrust.sources.base import SourceNotFoundError |
f070a4fc033c
core: Continue PieCrust3 refactor, simplify pages.
Ludovic Chabant <ludovic@chabant.com>
parents:
852
diff
changeset
|
201 raise SourceNotFoundError(source_name) |
f070a4fc033c
core: Continue PieCrust3 refactor, simplify pages.
Ludovic Chabant <ludovic@chabant.com>
parents:
852
diff
changeset
|
202 |
f070a4fc033c
core: Continue PieCrust3 refactor, simplify pages.
Ludovic Chabant <ludovic@chabant.com>
parents:
852
diff
changeset
|
203 def getSourceRoute(self, source_name): |
3
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
204 for route in self.routes: |
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
205 if route.source_name == source_name: |
853
f070a4fc033c
core: Continue PieCrust3 refactor, simplify pages.
Ludovic Chabant <ludovic@chabant.com>
parents:
852
diff
changeset
|
206 return route |
3
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
207 |
853
f070a4fc033c
core: Continue PieCrust3 refactor, simplify pages.
Ludovic Chabant <ludovic@chabant.com>
parents:
852
diff
changeset
|
208 from piecrust.routing import RouteNotFoundError |
f070a4fc033c
core: Continue PieCrust3 refactor, simplify pages.
Ludovic Chabant <ludovic@chabant.com>
parents:
852
diff
changeset
|
209 raise RouteNotFoundError(source_name) |
3
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
210 |
758
6abb436fea5b
publish: Make publisher more powerful and better exposed on the command line.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
211 def getPublisher(self, target_name): |
6abb436fea5b
publish: Make publisher more powerful and better exposed on the command line.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
212 for pub in self.publishers: |
6abb436fea5b
publish: Make publisher more powerful and better exposed on the command line.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
213 if pub.target == target_name: |
6abb436fea5b
publish: Make publisher more powerful and better exposed on the command line.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
214 return pub |
6abb436fea5b
publish: Make publisher more powerful and better exposed on the command line.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
215 return None |
6abb436fea5b
publish: Make publisher more powerful and better exposed on the command line.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
216 |
853
f070a4fc033c
core: Continue PieCrust3 refactor, simplify pages.
Ludovic Chabant <ludovic@chabant.com>
parents:
852
diff
changeset
|
217 def getPage(self, source, content_item): |
852
4850f8c21b6e
core: Start of the big refactor for PieCrust 3.0.
Ludovic Chabant <ludovic@chabant.com>
parents:
848
diff
changeset
|
218 cache_key = content_item.spec |
4850f8c21b6e
core: Start of the big refactor for PieCrust 3.0.
Ludovic Chabant <ludovic@chabant.com>
parents:
848
diff
changeset
|
219 return self.env.page_repository.get( |
4850f8c21b6e
core: Start of the big refactor for PieCrust 3.0.
Ludovic Chabant <ludovic@chabant.com>
parents:
848
diff
changeset
|
220 cache_key, |
853
f070a4fc033c
core: Continue PieCrust3 refactor, simplify pages.
Ludovic Chabant <ludovic@chabant.com>
parents:
852
diff
changeset
|
221 lambda: Page(source, content_item)) |
852
4850f8c21b6e
core: Start of the big refactor for PieCrust 3.0.
Ludovic Chabant <ludovic@chabant.com>
parents:
848
diff
changeset
|
222 |
0 | 223 def _get_dir(self, default_rel_dir): |
3
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
224 abs_dir = os.path.join(self.root_dir, default_rel_dir) |
0 | 225 if os.path.isdir(abs_dir): |
226 return abs_dir | |
3
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
227 return None |
0 | 228 |
229 def _get_configurable_dirs(self, default_rel_dir, conf_name): | |
230 dirs = [] | |
231 | |
232 # Add custom directories from the configuration. | |
233 conf_dirs = self.config.get(conf_name) | |
234 if conf_dirs is not None: | |
5 | 235 if isinstance(conf_dirs, str): |
3
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
236 dirs.append(os.path.join(self.root_dir, conf_dirs)) |
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
237 else: |
56
2d617b889b00
Make template directories properly absolute.
Ludovic Chabant <ludovic@chabant.com>
parents:
39
diff
changeset
|
238 dirs += [os.path.join(self.root_dir, p) for p in conf_dirs] |
0 | 239 |
240 # Add the default directory if it exists. | |
3
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
241 default_dir = os.path.join(self.root_dir, default_rel_dir) |
0 | 242 if os.path.isdir(default_dir): |
243 dirs.append(default_dir) | |
244 | |
245 return dirs | |
246 | |
466
456db44dcc53
bake: Pass the config variants and values from the CLI to the baker.
Ludovic Chabant <ludovic@chabant.com>
parents:
419
diff
changeset
|
247 |
456db44dcc53
bake: Pass the config variants and values from the CLI to the baker.
Ludovic Chabant <ludovic@chabant.com>
parents:
419
diff
changeset
|
248 def apply_variant_and_values(app, config_variant=None, config_values=None): |
456db44dcc53
bake: Pass the config variants and values from the CLI to the baker.
Ludovic Chabant <ludovic@chabant.com>
parents:
419
diff
changeset
|
249 if config_variant is not None: |
666
81d9c3a3a0b5
internal: Get rid of the whole "sub cache" business.
Ludovic Chabant <ludovic@chabant.com>
parents:
663
diff
changeset
|
250 logger.debug("Adding configuration variant '%s'." % config_variant) |
81d9c3a3a0b5
internal: Get rid of the whole "sub cache" business.
Ludovic Chabant <ludovic@chabant.com>
parents:
663
diff
changeset
|
251 variant_path = os.path.join( |
852
4850f8c21b6e
core: Start of the big refactor for PieCrust 3.0.
Ludovic Chabant <ludovic@chabant.com>
parents:
848
diff
changeset
|
252 app.root_dir, 'configs', '%s.yml' % config_variant) |
666
81d9c3a3a0b5
internal: Get rid of the whole "sub cache" business.
Ludovic Chabant <ludovic@chabant.com>
parents:
663
diff
changeset
|
253 app.config.addVariant(variant_path) |
466
456db44dcc53
bake: Pass the config variants and values from the CLI to the baker.
Ludovic Chabant <ludovic@chabant.com>
parents:
419
diff
changeset
|
254 |
456db44dcc53
bake: Pass the config variants and values from the CLI to the baker.
Ludovic Chabant <ludovic@chabant.com>
parents:
419
diff
changeset
|
255 if config_values is not None: |
456db44dcc53
bake: Pass the config variants and values from the CLI to the baker.
Ludovic Chabant <ludovic@chabant.com>
parents:
419
diff
changeset
|
256 for name, value in config_values: |
852
4850f8c21b6e
core: Start of the big refactor for PieCrust 3.0.
Ludovic Chabant <ludovic@chabant.com>
parents:
848
diff
changeset
|
257 logger.debug("Adding configuration override '%s': %s" % |
4850f8c21b6e
core: Start of the big refactor for PieCrust 3.0.
Ludovic Chabant <ludovic@chabant.com>
parents:
848
diff
changeset
|
258 (name, value)) |
666
81d9c3a3a0b5
internal: Get rid of the whole "sub cache" business.
Ludovic Chabant <ludovic@chabant.com>
parents:
663
diff
changeset
|
259 app.config.addVariantValue(name, value) |
81d9c3a3a0b5
internal: Get rid of the whole "sub cache" business.
Ludovic Chabant <ludovic@chabant.com>
parents:
663
diff
changeset
|
260 |
466
456db44dcc53
bake: Pass the config variants and values from the CLI to the baker.
Ludovic Chabant <ludovic@chabant.com>
parents:
419
diff
changeset
|
261 |
666
81d9c3a3a0b5
internal: Get rid of the whole "sub cache" business.
Ludovic Chabant <ludovic@chabant.com>
parents:
663
diff
changeset
|
262 class PieCrustFactory(object): |
852
4850f8c21b6e
core: Start of the big refactor for PieCrust 3.0.
Ludovic Chabant <ludovic@chabant.com>
parents:
848
diff
changeset
|
263 """ A class that builds a PieCrust app instance. |
4850f8c21b6e
core: Start of the big refactor for PieCrust 3.0.
Ludovic Chabant <ludovic@chabant.com>
parents:
848
diff
changeset
|
264 """ |
666
81d9c3a3a0b5
internal: Get rid of the whole "sub cache" business.
Ludovic Chabant <ludovic@chabant.com>
parents:
663
diff
changeset
|
265 def __init__( |
81d9c3a3a0b5
internal: Get rid of the whole "sub cache" business.
Ludovic Chabant <ludovic@chabant.com>
parents:
663
diff
changeset
|
266 self, root_dir, *, |
81d9c3a3a0b5
internal: Get rid of the whole "sub cache" business.
Ludovic Chabant <ludovic@chabant.com>
parents:
663
diff
changeset
|
267 cache=True, cache_key=None, |
81d9c3a3a0b5
internal: Get rid of the whole "sub cache" business.
Ludovic Chabant <ludovic@chabant.com>
parents:
663
diff
changeset
|
268 config_variant=None, config_values=None, |
81d9c3a3a0b5
internal: Get rid of the whole "sub cache" business.
Ludovic Chabant <ludovic@chabant.com>
parents:
663
diff
changeset
|
269 debug=False, theme_site=False): |
81d9c3a3a0b5
internal: Get rid of the whole "sub cache" business.
Ludovic Chabant <ludovic@chabant.com>
parents:
663
diff
changeset
|
270 self.root_dir = root_dir |
81d9c3a3a0b5
internal: Get rid of the whole "sub cache" business.
Ludovic Chabant <ludovic@chabant.com>
parents:
663
diff
changeset
|
271 self.cache = cache |
81d9c3a3a0b5
internal: Get rid of the whole "sub cache" business.
Ludovic Chabant <ludovic@chabant.com>
parents:
663
diff
changeset
|
272 self.cache_key = cache_key |
81d9c3a3a0b5
internal: Get rid of the whole "sub cache" business.
Ludovic Chabant <ludovic@chabant.com>
parents:
663
diff
changeset
|
273 self.config_variant = config_variant |
81d9c3a3a0b5
internal: Get rid of the whole "sub cache" business.
Ludovic Chabant <ludovic@chabant.com>
parents:
663
diff
changeset
|
274 self.config_values = config_values |
81d9c3a3a0b5
internal: Get rid of the whole "sub cache" business.
Ludovic Chabant <ludovic@chabant.com>
parents:
663
diff
changeset
|
275 self.debug = debug |
81d9c3a3a0b5
internal: Get rid of the whole "sub cache" business.
Ludovic Chabant <ludovic@chabant.com>
parents:
663
diff
changeset
|
276 self.theme_site = theme_site |
81d9c3a3a0b5
internal: Get rid of the whole "sub cache" business.
Ludovic Chabant <ludovic@chabant.com>
parents:
663
diff
changeset
|
277 |
81d9c3a3a0b5
internal: Get rid of the whole "sub cache" business.
Ludovic Chabant <ludovic@chabant.com>
parents:
663
diff
changeset
|
278 def create(self): |
81d9c3a3a0b5
internal: Get rid of the whole "sub cache" business.
Ludovic Chabant <ludovic@chabant.com>
parents:
663
diff
changeset
|
279 app = PieCrust( |
852
4850f8c21b6e
core: Start of the big refactor for PieCrust 3.0.
Ludovic Chabant <ludovic@chabant.com>
parents:
848
diff
changeset
|
280 self.root_dir, |
4850f8c21b6e
core: Start of the big refactor for PieCrust 3.0.
Ludovic Chabant <ludovic@chabant.com>
parents:
848
diff
changeset
|
281 cache=self.cache, |
4850f8c21b6e
core: Start of the big refactor for PieCrust 3.0.
Ludovic Chabant <ludovic@chabant.com>
parents:
848
diff
changeset
|
282 cache_key=self.cache_key, |
4850f8c21b6e
core: Start of the big refactor for PieCrust 3.0.
Ludovic Chabant <ludovic@chabant.com>
parents:
848
diff
changeset
|
283 debug=self.debug, |
4850f8c21b6e
core: Start of the big refactor for PieCrust 3.0.
Ludovic Chabant <ludovic@chabant.com>
parents:
848
diff
changeset
|
284 theme_site=self.theme_site) |
666
81d9c3a3a0b5
internal: Get rid of the whole "sub cache" business.
Ludovic Chabant <ludovic@chabant.com>
parents:
663
diff
changeset
|
285 apply_variant_and_values( |
852
4850f8c21b6e
core: Start of the big refactor for PieCrust 3.0.
Ludovic Chabant <ludovic@chabant.com>
parents:
848
diff
changeset
|
286 app, self.config_variant, self.config_values) |
666
81d9c3a3a0b5
internal: Get rid of the whole "sub cache" business.
Ludovic Chabant <ludovic@chabant.com>
parents:
663
diff
changeset
|
287 return app |
81d9c3a3a0b5
internal: Get rid of the whole "sub cache" business.
Ludovic Chabant <ludovic@chabant.com>
parents:
663
diff
changeset
|
288 |