mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-08-19 21:03:21 -07:00
Update mako to 1.1.0
This commit is contained in:
parent
84ce4758d1
commit
f2d7beec90
27 changed files with 2424 additions and 1890 deletions
|
@ -1,11 +1,16 @@
|
|||
# mako/lookup.py
|
||||
# Copyright (C) 2006-2015 the Mako authors and contributors <see AUTHORS file>
|
||||
# Copyright 2006-2019 the Mako authors and contributors <see AUTHORS file>
|
||||
#
|
||||
# This module is part of Mako and is released under
|
||||
# the MIT License: http://www.opensource.org/licenses/mit-license.php
|
||||
|
||||
import os, stat, posixpath, re
|
||||
from mako import exceptions, util
|
||||
import os
|
||||
import posixpath
|
||||
import re
|
||||
import stat
|
||||
|
||||
from mako import exceptions
|
||||
from mako import util
|
||||
from mako.template import Template
|
||||
|
||||
try:
|
||||
|
@ -13,7 +18,9 @@ try:
|
|||
except:
|
||||
import dummy_threading as threading
|
||||
|
||||
|
||||
class TemplateCollection(object):
|
||||
|
||||
"""Represent a collection of :class:`.Template` objects,
|
||||
identifiable via URI.
|
||||
|
||||
|
@ -79,7 +86,9 @@ class TemplateCollection(object):
|
|||
"""
|
||||
return uri
|
||||
|
||||
|
||||
class TemplateLookup(TemplateCollection):
|
||||
|
||||
"""Represent a collection of templates that locates template source files
|
||||
from the local filesystem.
|
||||
|
||||
|
@ -144,40 +153,41 @@ class TemplateLookup(TemplateCollection):
|
|||
|
||||
"""
|
||||
|
||||
def __init__(self,
|
||||
directories=None,
|
||||
module_directory=None,
|
||||
filesystem_checks=True,
|
||||
collection_size=-1,
|
||||
format_exceptions=False,
|
||||
error_handler=None,
|
||||
disable_unicode=False,
|
||||
bytestring_passthrough=False,
|
||||
output_encoding=None,
|
||||
encoding_errors='strict',
|
||||
def __init__(
|
||||
self,
|
||||
directories=None,
|
||||
module_directory=None,
|
||||
filesystem_checks=True,
|
||||
collection_size=-1,
|
||||
format_exceptions=False,
|
||||
error_handler=None,
|
||||
disable_unicode=False,
|
||||
bytestring_passthrough=False,
|
||||
output_encoding=None,
|
||||
encoding_errors="strict",
|
||||
cache_args=None,
|
||||
cache_impl="beaker",
|
||||
cache_enabled=True,
|
||||
cache_type=None,
|
||||
cache_dir=None,
|
||||
cache_url=None,
|
||||
modulename_callable=None,
|
||||
module_writer=None,
|
||||
default_filters=None,
|
||||
buffer_filters=(),
|
||||
strict_undefined=False,
|
||||
imports=None,
|
||||
future_imports=None,
|
||||
enable_loop=True,
|
||||
input_encoding=None,
|
||||
preprocessor=None,
|
||||
lexer_cls=None,
|
||||
include_error_handler=None,
|
||||
):
|
||||
|
||||
cache_args=None,
|
||||
cache_impl='beaker',
|
||||
cache_enabled=True,
|
||||
cache_type=None,
|
||||
cache_dir=None,
|
||||
cache_url=None,
|
||||
|
||||
modulename_callable=None,
|
||||
module_writer=None,
|
||||
default_filters=None,
|
||||
buffer_filters=(),
|
||||
strict_undefined=False,
|
||||
imports=None,
|
||||
future_imports=None,
|
||||
enable_loop=True,
|
||||
input_encoding=None,
|
||||
preprocessor=None,
|
||||
lexer_cls=None):
|
||||
|
||||
self.directories = [posixpath.normpath(d) for d in
|
||||
util.to_list(directories, ())
|
||||
]
|
||||
self.directories = [
|
||||
posixpath.normpath(d) for d in util.to_list(directories, ())
|
||||
]
|
||||
self.module_directory = module_directory
|
||||
self.modulename_callable = modulename_callable
|
||||
self.filesystem_checks = filesystem_checks
|
||||
|
@ -187,33 +197,34 @@ class TemplateLookup(TemplateCollection):
|
|||
cache_args = {}
|
||||
# transfer deprecated cache_* args
|
||||
if cache_dir:
|
||||
cache_args.setdefault('dir', cache_dir)
|
||||
cache_args.setdefault("dir", cache_dir)
|
||||
if cache_url:
|
||||
cache_args.setdefault('url', cache_url)
|
||||
cache_args.setdefault("url", cache_url)
|
||||
if cache_type:
|
||||
cache_args.setdefault('type', cache_type)
|
||||
cache_args.setdefault("type", cache_type)
|
||||
|
||||
self.template_args = {
|
||||
'format_exceptions':format_exceptions,
|
||||
'error_handler':error_handler,
|
||||
'disable_unicode':disable_unicode,
|
||||
'bytestring_passthrough':bytestring_passthrough,
|
||||
'output_encoding':output_encoding,
|
||||
'cache_impl':cache_impl,
|
||||
'encoding_errors':encoding_errors,
|
||||
'input_encoding':input_encoding,
|
||||
'module_directory':module_directory,
|
||||
'module_writer':module_writer,
|
||||
'cache_args':cache_args,
|
||||
'cache_enabled':cache_enabled,
|
||||
'default_filters':default_filters,
|
||||
'buffer_filters':buffer_filters,
|
||||
'strict_undefined':strict_undefined,
|
||||
'imports':imports,
|
||||
'future_imports':future_imports,
|
||||
'enable_loop':enable_loop,
|
||||
'preprocessor':preprocessor,
|
||||
'lexer_cls':lexer_cls
|
||||
"format_exceptions": format_exceptions,
|
||||
"error_handler": error_handler,
|
||||
"include_error_handler": include_error_handler,
|
||||
"disable_unicode": disable_unicode,
|
||||
"bytestring_passthrough": bytestring_passthrough,
|
||||
"output_encoding": output_encoding,
|
||||
"cache_impl": cache_impl,
|
||||
"encoding_errors": encoding_errors,
|
||||
"input_encoding": input_encoding,
|
||||
"module_directory": module_directory,
|
||||
"module_writer": module_writer,
|
||||
"cache_args": cache_args,
|
||||
"cache_enabled": cache_enabled,
|
||||
"default_filters": default_filters,
|
||||
"buffer_filters": buffer_filters,
|
||||
"strict_undefined": strict_undefined,
|
||||
"imports": imports,
|
||||
"future_imports": future_imports,
|
||||
"enable_loop": enable_loop,
|
||||
"preprocessor": preprocessor,
|
||||
"lexer_cls": lexer_cls,
|
||||
}
|
||||
|
||||
if collection_size == -1:
|
||||
|
@ -228,7 +239,8 @@ class TemplateLookup(TemplateCollection):
|
|||
"""Return a :class:`.Template` object corresponding to the given
|
||||
``uri``.
|
||||
|
||||
.. note:: The ``relativeto`` argument is not supported here at the moment.
|
||||
.. note:: The ``relativeto`` argument is not supported here at
|
||||
the moment.
|
||||
|
||||
"""
|
||||
|
||||
|
@ -238,14 +250,18 @@ class TemplateLookup(TemplateCollection):
|
|||
else:
|
||||
return self._collection[uri]
|
||||
except KeyError:
|
||||
u = re.sub(r'^\/+', '', uri)
|
||||
for dir in self.directories:
|
||||
srcfile = posixpath.normpath(posixpath.join(dir, u))
|
||||
u = re.sub(r"^\/+", "", uri)
|
||||
for dir_ in self.directories:
|
||||
# make sure the path seperators are posix - os.altsep is empty
|
||||
# on POSIX and cannot be used.
|
||||
dir_ = dir_.replace(os.path.sep, posixpath.sep)
|
||||
srcfile = posixpath.normpath(posixpath.join(dir_, u))
|
||||
if os.path.isfile(srcfile):
|
||||
return self._load(srcfile, uri)
|
||||
else:
|
||||
raise exceptions.TopLevelLookupException(
|
||||
"Cant locate template for uri %r" % uri)
|
||||
"Cant locate template for uri %r" % uri
|
||||
)
|
||||
|
||||
def adjust_uri(self, uri, relativeto):
|
||||
"""Adjust the given ``uri`` based on the given relative URI."""
|
||||
|
@ -254,17 +270,17 @@ class TemplateLookup(TemplateCollection):
|
|||
if key in self._uri_cache:
|
||||
return self._uri_cache[key]
|
||||
|
||||
if uri[0] != '/':
|
||||
if uri[0] != "/":
|
||||
if relativeto is not None:
|
||||
v = self._uri_cache[key] = posixpath.join(
|
||||
posixpath.dirname(relativeto), uri)
|
||||
posixpath.dirname(relativeto), uri
|
||||
)
|
||||
else:
|
||||
v = self._uri_cache[key] = '/' + uri
|
||||
v = self._uri_cache[key] = "/" + uri
|
||||
else:
|
||||
v = self._uri_cache[key] = uri
|
||||
return v
|
||||
|
||||
|
||||
def filename_to_uri(self, filename):
|
||||
"""Convert the given ``filename`` to a URI relative to
|
||||
this :class:`.TemplateCollection`."""
|
||||
|
@ -283,9 +299,9 @@ class TemplateLookup(TemplateCollection):
|
|||
"""
|
||||
|
||||
filename = posixpath.normpath(filename)
|
||||
for dir in self.directories:
|
||||
if filename[0:len(dir)] == dir:
|
||||
return filename[len(dir):]
|
||||
for dir_ in self.directories:
|
||||
if filename[0 : len(dir_)] == dir_:
|
||||
return filename[len(dir_) :]
|
||||
else:
|
||||
return None
|
||||
|
||||
|
@ -304,11 +320,12 @@ class TemplateLookup(TemplateCollection):
|
|||
else:
|
||||
module_filename = None
|
||||
self._collection[uri] = template = Template(
|
||||
uri=uri,
|
||||
filename=posixpath.normpath(filename),
|
||||
lookup=self,
|
||||
module_filename=module_filename,
|
||||
**self.template_args)
|
||||
uri=uri,
|
||||
filename=posixpath.normpath(filename),
|
||||
lookup=self,
|
||||
module_filename=module_filename,
|
||||
**self.template_args
|
||||
)
|
||||
return template
|
||||
except:
|
||||
# if compilation fails etc, ensure
|
||||
|
@ -325,8 +342,7 @@ class TemplateLookup(TemplateCollection):
|
|||
|
||||
try:
|
||||
template_stat = os.stat(template.filename)
|
||||
if template.module._modified_time < \
|
||||
template_stat[stat.ST_MTIME]:
|
||||
if template.module._modified_time < template_stat[stat.ST_MTIME]:
|
||||
self._collection.pop(uri, None)
|
||||
return self._load(template.filename, uri)
|
||||
else:
|
||||
|
@ -334,8 +350,8 @@ class TemplateLookup(TemplateCollection):
|
|||
except OSError:
|
||||
self._collection.pop(uri, None)
|
||||
raise exceptions.TemplateLookupException(
|
||||
"Cant locate template for uri %r" % uri)
|
||||
|
||||
"Cant locate template for uri %r" % uri
|
||||
)
|
||||
|
||||
def put_string(self, uri, text):
|
||||
"""Place a new :class:`.Template` object into this
|
||||
|
@ -344,10 +360,8 @@ class TemplateLookup(TemplateCollection):
|
|||
|
||||
"""
|
||||
self._collection[uri] = Template(
|
||||
text,
|
||||
lookup=self,
|
||||
uri=uri,
|
||||
**self.template_args)
|
||||
text, lookup=self, uri=uri, **self.template_args
|
||||
)
|
||||
|
||||
def put_template(self, uri, template):
|
||||
"""Place a new :class:`.Template` object into this
|
||||
|
@ -356,4 +370,3 @@ class TemplateLookup(TemplateCollection):
|
|||
|
||||
"""
|
||||
self._collection[uri] = template
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue