~ubuntu-branches/ubuntu/hardy/mako/hardy-backports

« back to all changes in this revision

Viewing changes to lib/mako/lookup.py

  • Committer: Bazaar Package Importer
  • Author(s): Scott Kitterman
  • Date: 2008-09-09 02:09:15 UTC
  • mfrom: (5.1.1 lenny)
  • Revision ID: james.westby@ubuntu.com-20080909020915-y0zgvojsponlnwx8
Tags: 0.2.2-1~hardy1
Automated backport upload; no source changes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
# lookup.py
2
 
# Copyright (C) 2006, 2007 Michael Bayer mike_mp@zzzcomputing.com
 
2
# Copyright (C) 2006, 2007, 2008 Michael Bayer mike_mp@zzzcomputing.com
3
3
#
4
4
# This module is part of Mako and is released under
5
5
# the MIT License: http://www.opensource.org/licenses/mit-license.php
38
38
        
39
39
class TemplateLookup(TemplateCollection):
40
40
    def __init__(self, directories=None, module_directory=None, filesystem_checks=True, collection_size=-1, format_exceptions=False, 
41
 
    error_handler=None, output_encoding=None, encoding_errors='strict', cache_type=None, cache_dir=None, cache_url=None, 
42
 
    modulename_callable=None, default_filters=['unicode'], buffer_filters=[], imports=None, input_encoding=None, preprocessor=None):
 
41
    error_handler=None, disable_unicode=False, output_encoding=None, encoding_errors='strict', cache_type=None, cache_dir=None, cache_url=None, 
 
42
    modulename_callable=None, default_filters=None, buffer_filters=[], imports=None, input_encoding=None, preprocessor=None):
43
43
        if isinstance(directories, basestring):
44
44
            directories = [directories]        
45
45
        self.directories = [posixpath.normpath(d) for d in directories or []]
47
47
        self.modulename_callable = modulename_callable
48
48
        self.filesystem_checks = filesystem_checks
49
49
        self.collection_size = collection_size
50
 
        self.template_args = {'format_exceptions':format_exceptions, 'error_handler':error_handler, 'output_encoding':output_encoding, 'encoding_errors':encoding_errors, 'input_encoding':input_encoding, 'module_directory':module_directory, 'cache_type':cache_type, 'cache_dir':cache_dir or module_directory, 'cache_url':cache_url, 'default_filters':default_filters, 'buffer_filters':buffer_filters,  'imports':imports, 'preprocessor':preprocessor}
 
50
        self.template_args = {'format_exceptions':format_exceptions, 'error_handler':error_handler, 'disable_unicode':disable_unicode, 'output_encoding':output_encoding, 'encoding_errors':encoding_errors, 'input_encoding':input_encoding, 'module_directory':module_directory, 'cache_type':cache_type, 'cache_dir':cache_dir or module_directory, 'cache_url':cache_url, 'default_filters':default_filters, 'buffer_filters':buffer_filters,  'imports':imports, 'preprocessor':preprocessor}
51
51
        if collection_size == -1:
52
52
            self.__collection = {}
53
53
            self._uri_cache = {}
66
66
            u = re.sub(r'^\/+', '', uri)
67
67
            for dir in self.directories:
68
68
                srcfile = posixpath.normpath(posixpath.join(dir, u))
69
 
                if os.access(srcfile, os.F_OK):
 
69
                if os.path.exists(srcfile):
70
70
                    return self.__load(srcfile, uri)
71
71
            else:
72
72
                raise exceptions.TopLevelLookupException("Cant locate template for uri '%s'" % uri)
120
120
    def __check(self, uri, template):
121
121
        if template.filename is None:
122
122
            return template
123
 
        if not os.access(template.filename, os.F_OK):
 
123
        if not os.path.exists(template.filename):
124
124
            self.__collection.pop(uri, None)
125
125
            raise exceptions.TemplateLookupException("Cant locate template for uri '%s'" % uri)
126
126
        elif template.module._modified_time < os.stat(template.filename)[stat.ST_MTIME]: