| Index: sitescripts/utils.py | 
| =================================================================== | 
| --- a/sitescripts/utils.py | 
| +++ b/sitescripts/utils.py | 
| @@ -141,19 +141,29 @@ | 
| except UnicodeEncodeError: | 
| return '%s@%s' % (match.group(1).encode('ascii'), | 
| match.group(2).encode('idna')) | 
| _template_cache = {} | 
| def get_template(template, autoescape=True, template_path=siteScriptsPath): | 
| - """Parses and returns a Jinja2 template""" | 
| + """Load Jinja2 template. | 
| + | 
| + If `template` is a relative path, it's looked up inside `template_path`. | 
| + If it's an absolute path, `template_path` is not used. | 
| + | 
| + Note: Each template will only be loaded once (when first requested). After | 
| + that it will be cached and reused -- any changes on the filesystem will be | 
| + ignored. | 
| + """ | 
| + if os.path.isabs(template): | 
| + template_path, template = os.path.split(template) | 
| key = (template_path, template, autoescape) | 
| 
 
Wladimir Palant
2017/03/30 17:47:42
This caching key wasn't entirely correct before, a
 
Vasily Kuznetsov
2017/03/30 18:35:53
Done
 
 | 
| - if not key in _template_cache: | 
| + if key not in _template_cache: | 
| 
 
Sebastian Noack
2017/03/30 17:41:24
Assuming this was the only occurrence of `not x in
 
Vasily Kuznetsov
2017/03/30 18:35:53
Done
 
 | 
| if autoescape: | 
| env = get_template_environment(template_path) | 
| else: | 
| env = get_unescaped_template_environment(template_path) | 
| _template_cache[key] = env.get_template(template) | 
| return _template_cache[key] |