equal
deleted
inserted
replaced
31 |
31 |
32 # It won't change, so convert it to a tuple to save memory. |
32 # It won't change, so convert it to a tuple to save memory. |
33 app_template_dirs = tuple(app_template_dirs) |
33 app_template_dirs = tuple(app_template_dirs) |
34 |
34 |
35 def get_template_sources(template_name, template_dirs=None): |
35 def get_template_sources(template_name, template_dirs=None): |
|
36 """ |
|
37 Returns the absolute paths to "template_name", when appended to each |
|
38 directory in "template_dirs". Any paths that don't lie inside one of the |
|
39 template dirs are excluded from the result set, for security reasons. |
|
40 """ |
36 if not template_dirs: |
41 if not template_dirs: |
37 template_dirs = app_template_dirs |
42 template_dirs = app_template_dirs |
38 for template_dir in template_dirs: |
43 for template_dir in template_dirs: |
39 try: |
44 try: |
40 yield safe_join(template_dir, template_name) |
45 yield safe_join(template_dir, template_name) |
|
46 except UnicodeDecodeError: |
|
47 # The template dir name was a bytestring that wasn't valid UTF-8. |
|
48 raise |
41 except ValueError: |
49 except ValueError: |
42 # The joined path was located outside of template_dir. |
50 # The joined path was located outside of template_dir. |
43 pass |
51 pass |
44 |
52 |
45 def load_template_source(template_name, template_dirs=None): |
53 def load_template_source(template_name, template_dirs=None): |