annotate piecrust/formatting/textileformatter.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 f4f5685019a2
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
124
f49fcf9448df Add Textile formatter.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1 from piecrust.formatting.base import Formatter
f49fcf9448df Add Textile formatter.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2
f49fcf9448df Add Textile formatter.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
3
f49fcf9448df Add Textile formatter.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
4 class TextileFormatter(Formatter):
f49fcf9448df Add Textile formatter.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
5 FORMAT_NAMES = ['textile', 'text']
f49fcf9448df Add Textile formatter.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
6 OUTPUT_FORMAT = 'html'
f49fcf9448df Add Textile formatter.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
7
f49fcf9448df Add Textile formatter.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
8 def render(self, format_name, text):
423
f4f5685019a2 render: Lazily import Textile package.
Ludovic Chabant <ludovic@chabant.com>
parents: 124
diff changeset
9 from textile import textile
124
f49fcf9448df Add Textile formatter.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
10 assert format_name in self.FORMAT_NAMES
f49fcf9448df Add Textile formatter.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
11 return textile(text)
f49fcf9448df Add Textile formatter.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
12