Permalink
Browse files

Merge branch 'pr/266'

  • Loading branch information...
2 parents 853d865 + 1eeaccc commit 157cce707657f1dc97d4cba74c1d6973e8ce3ad5 @mitsuhiko mitsuhiko committed Dec 12, 2013
Showing with 13 additions and 3 deletions.
  1. +13 −3 jinja2/loaders.py
View
@@ -141,20 +141,28 @@ class FileSystemLoader(BaseLoader):
The loader takes the path to the templates as string, or if multiple
locations are wanted a list of them which is then looked up in the
- given order:
+ given order::
>>> loader = FileSystemLoader('/path/to/templates')
>>> loader = FileSystemLoader(['/path/to/templates', '/other/path'])
Per default the template encoding is ``'utf-8'`` which can be changed
by setting the `encoding` parameter to something else.
+
+ To follow symbolic links, set the *followlinks* parameter to ``True``::
+
+ >>> loader = FileSystemLoader('/path/to/templates', followlinks=True)
+
+ .. versionchanged:: 2.8+
+ The *followlinks* parameter was added.
"""
- def __init__(self, searchpath, encoding='utf-8'):
+ def __init__(self, searchpath, encoding='utf-8', followlinks=False):
if isinstance(searchpath, string_types):
searchpath = [searchpath]
self.searchpath = list(searchpath)
self.encoding = encoding
+ self.followlinks = followlinks
def get_source(self, environment, template):
pieces = split_template_path(template)
@@ -169,6 +177,7 @@ def get_source(self, environment, template):
f.close()
mtime = path.getmtime(filename)
+
def uptodate():
try:
return path.getmtime(filename) == mtime
@@ -180,7 +189,8 @@ def uptodate():
def list_templates(self):
found = set()
for searchpath in self.searchpath:
- for dirpath, dirnames, filenames in os.walk(searchpath):
+ walk_dir = os.walk(searchpath, followlinks=self.followlinks)
+ for dirpath, dirnames, filenames in walk_dir:
for filename in filenames:
template = os.path.join(dirpath, filename) \
[len(searchpath):].strip(os.path.sep) \

0 comments on commit 157cce7

Please sign in to comment.