A Jinja2 template loader using PyFilesystem2.
This library allows you to use PyFilesystem2 as a backend to load templates into
Jinja2. You can take advantage of the whole fs
ecosystem, which already implements
drivers for FTP, SSH, SMB, S3, WebDAV servers, ZIP and Tar archives, and
many more!
Install with pip
:
$ pip install --user -U jinja2-fsloader
from jinja2_fsloader import FSLoader
FSLoader(template_fs, encoding='utf-8', use_syspath=False)
template_fs
- a
FS
instance or an FS URL where the templates are located. encoding
- the encoding of the template files (utf-8 by default).
use_syspath
- set to
True
for the loader to return the real path or an URL to the template when available (False
by default).
import jinja2
from jinja2_fsloader import FSLoader
# templates in a ZIP archive
env = jinja2.Environment(loader=FSLoader("zip:///path/to/my/templates.zip"))
# templates in a S3 bucket
env = jinja.Environment(loader=FSLoader("s3://mybucket"))
# templates in memory
mem = fs.open_fs('mem://')
mem.settext('template.j2', 'This template is {{adjective}}')
env = jinja.Environment(loader=FSLoader(mem))
The complete documentation of PyFilesystem2 can give you a better overview of all the features available in the library.