annotate piecrust/__init__.py @ 1188:a7c43131d871

bake: Fix file write flushing problem with Python 3.8+ Writing the cache files fails in Python 3.8 because it looks like flushing behaviour has changed. We need to explicitly flush. And even then, in very rare occurrences, it looks like it can still run into racing conditions, so we do a very hacky and ugly "retry" loop when fetching cached data :(
author Ludovic Chabant <ludovic@chabant.com>
date Tue, 15 Jun 2021 22:36:23 -0700
parents a9a592f655e3
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
1
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
2 CACHE_DIR = '_cache'
36
485682a6de50 New site layout support.
Ludovic Chabant <ludovic@chabant.com>
parents: 3
diff changeset
3 ASSETS_DIR = 'assets'
485682a6de50 New site layout support.
Ludovic Chabant <ludovic@chabant.com>
parents: 3
diff changeset
4 TEMPLATES_DIR = 'templates'
485682a6de50 New site layout support.
Ludovic Chabant <ludovic@chabant.com>
parents: 3
diff changeset
5 THEME_DIR = 'theme'
711
ab5c6a8ae90a bake: Replace hard-coded taxonomy support with "generator" system.
Ludovic Chabant <ludovic@chabant.com>
parents: 708
diff changeset
6 THEMES_DIR = 'themes'
848
7d83b9484b98 plugins: Add support for "ad-hoc" local plugins.
Ludovic Chabant <ludovic@chabant.com>
parents: 792
diff changeset
7 PLUGINS_DIR = 'plugins'
3
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
8
36
485682a6de50 New site layout support.
Ludovic Chabant <ludovic@chabant.com>
parents: 3
diff changeset
9 CONFIG_PATH = 'config.yml'
485682a6de50 New site layout support.
Ludovic Chabant <ludovic@chabant.com>
parents: 3
diff changeset
10 THEME_CONFIG_PATH = 'theme_config.yml'
273
d70a4adb61dd themes: Add the `chef themes` command
Ludovic Chabant <ludovic@chabant.com>
parents: 100
diff changeset
11 THEME_INFO_PATH = 'theme_info.yml'
415
0e9a94b7fdfa bake: Improve bake record information.
Ludovic Chabant <ludovic@chabant.com>
parents: 307
diff changeset
12 ASSET_DIR_SUFFIX = '-assets'
3
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
13
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
14 DEFAULT_FORMAT = 'markdown'
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
15 DEFAULT_TEMPLATE_ENGINE = 'jinja2'
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
16 DEFAULT_POSTS_FS = 'flat'
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
17 DEFAULT_DATE_FORMAT = '%b %d, %Y'
708
d3a5a086e5cd templating: Use HTTPS URLs for a couple things.
Ludovic Chabant <ludovic@chabant.com>
parents: 682
diff changeset
18 DEFAULT_THEME_SOURCE = 'https://bitbucket.org/ludovicchabant/'
3
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
19
708
d3a5a086e5cd templating: Use HTTPS URLs for a couple things.
Ludovic Chabant <ludovic@chabant.com>
parents: 682
diff changeset
20 PIECRUST_URL = 'https://bolt80.com/piecrust/'
3
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
21
1153
a9a592f655e3 config: Add setting for enabling baking or serving posts in the future.
Ludovic Chabant <ludovic@chabant.com>
parents: 1138
diff changeset
22 CACHE_VERSION = 34
584
9ccc933ac2c7 internal: Refactor the app configuration class.
Ludovic Chabant <ludovic@chabant.com>
parents: 415
diff changeset
23
69
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 36
diff changeset
24 try:
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 36
diff changeset
25 from piecrust.__version__ import APP_VERSION
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 36
diff changeset
26 except ImportError:
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 36
diff changeset
27 APP_VERSION = 'unknown'
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 36
diff changeset
28
852
4850f8c21b6e core: Start of the big refactor for PieCrust 3.0.
Ludovic Chabant <ludovic@chabant.com>
parents: 848
diff changeset
29 import os.path # NOQA
100
69d5eecfa449 Better `prepare` command, with templates and help topics.
Ludovic Chabant <ludovic@chabant.com>
parents: 69
diff changeset
30 RESOURCES_DIR = os.path.join(os.path.dirname(__file__), 'resources')
69d5eecfa449 Better `prepare` command, with templates and help topics.
Ludovic Chabant <ludovic@chabant.com>
parents: 69
diff changeset
31