diff options
author | donkopotamus <derek.harland@finq.co.nz> | 2013-12-20 11:15:33 +1300 |
---|---|---|
committer | donkopotamus <derek.harland@finq.co.nz> | 2013-12-20 11:15:33 +1300 |
commit | 1504fc60e4b676aeec2ccc3121d7462bc885545f (patch) | |
tree | 8389509ca40296a8ce94eedbfb0072e4fdab03ad | |
parent | 62926b5d9c3bb2d5459d8a2c78b700c33530a333 (diff) | |
download | mako-1504fc60e4b676aeec2ccc3121d7462bc885545f.tar.gz |
Move calculation of normalised uri to the codepath where it is actually used
- this fixes a bug in the mako-render script which refuses to process a filename
that is given as a relative path
-rw-r--r-- | mako/template.py | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/mako/template.py b/mako/template.py index 3a7b7f0..bb5d891 100644 --- a/mako/template.py +++ b/mako/template.py @@ -255,16 +255,6 @@ class Template(object): self.module_id = "memory:" + hex(id(self)) self.uri = self.module_id - u_norm = self.uri - if u_norm.startswith("/"): - u_norm = u_norm[1:] - u_norm = os.path.normpath(u_norm) - if u_norm.startswith(".."): - raise exceptions.TemplateLookupException( - "Template uri \"%s\" is invalid - " - "it cannot be relative outside " - "of the root path." % self.uri) - self.input_encoding = input_encoding self.output_encoding = output_encoding self.encoding_errors = encoding_errors @@ -310,6 +300,16 @@ class Template(object): if module_filename is not None: path = module_filename elif module_directory is not None: + u_norm = self.uri + if u_norm.startswith("/"): + u_norm = u_norm[1:] + u_norm = os.path.normpath(u_norm) + if u_norm.startswith(".."): + raise exceptions.TemplateLookupException( + "Template uri \"%s\" is invalid - " + "it cannot be relative outside " + "of the root path." % self.uri) + path = os.path.abspath( os.path.join( os.path.normpath(module_directory), |