mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-07-16 02:02:58 -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,20 +1,61 @@
|
|||
# mako/compat.py
|
||||
# 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 collections
|
||||
import inspect
|
||||
import sys
|
||||
import time
|
||||
|
||||
py3k = sys.version_info >= (3, 0)
|
||||
py33 = sys.version_info >= (3, 3)
|
||||
py2k = sys.version_info < (3,)
|
||||
py26 = sys.version_info >= (2, 6)
|
||||
jython = sys.platform.startswith('java')
|
||||
win32 = sys.platform.startswith('win')
|
||||
pypy = hasattr(sys, 'pypy_version_info')
|
||||
py27 = sys.version_info >= (2, 7)
|
||||
jython = sys.platform.startswith("java")
|
||||
win32 = sys.platform.startswith("win")
|
||||
pypy = hasattr(sys, "pypy_version_info")
|
||||
|
||||
ArgSpec = collections.namedtuple(
|
||||
"ArgSpec", ["args", "varargs", "keywords", "defaults"]
|
||||
)
|
||||
|
||||
|
||||
def inspect_getargspec(func):
|
||||
"""getargspec based on fully vendored getfullargspec from Python 3.3."""
|
||||
|
||||
if inspect.ismethod(func):
|
||||
func = func.__func__
|
||||
if not inspect.isfunction(func):
|
||||
raise TypeError("{!r} is not a Python function".format(func))
|
||||
|
||||
co = func.__code__
|
||||
if not inspect.iscode(co):
|
||||
raise TypeError("{!r} is not a code object".format(co))
|
||||
|
||||
nargs = co.co_argcount
|
||||
names = co.co_varnames
|
||||
nkwargs = co.co_kwonlyargcount if py3k else 0
|
||||
args = list(names[:nargs])
|
||||
|
||||
nargs += nkwargs
|
||||
varargs = None
|
||||
if co.co_flags & inspect.CO_VARARGS:
|
||||
varargs = co.co_varnames[nargs]
|
||||
nargs = nargs + 1
|
||||
varkw = None
|
||||
if co.co_flags & inspect.CO_VARKEYWORDS:
|
||||
varkw = co.co_varnames[nargs]
|
||||
|
||||
return ArgSpec(args, varargs, varkw, func.__defaults__)
|
||||
|
||||
|
||||
if py3k:
|
||||
from io import StringIO
|
||||
import builtins as compat_builtins
|
||||
from urllib.parse import quote_plus, unquote_plus
|
||||
from html.entities import codepoint2name, name2codepoint
|
||||
string_types = str,
|
||||
|
||||
string_types = (str,)
|
||||
binary_type = bytes
|
||||
text_type = str
|
||||
|
||||
|
@ -29,8 +70,10 @@ if py3k:
|
|||
def octal(lit):
|
||||
return eval("0o" + lit)
|
||||
|
||||
|
||||
else:
|
||||
import __builtin__ as compat_builtins
|
||||
import __builtin__ as compat_builtins # noqa
|
||||
|
||||
try:
|
||||
from cStringIO import StringIO
|
||||
except:
|
||||
|
@ -38,14 +81,15 @@ else:
|
|||
|
||||
byte_buffer = StringIO
|
||||
|
||||
from urllib import quote_plus, unquote_plus
|
||||
from htmlentitydefs import codepoint2name, name2codepoint
|
||||
string_types = basestring,
|
||||
from urllib import quote_plus, unquote_plus # noqa
|
||||
from htmlentitydefs import codepoint2name, name2codepoint # noqa
|
||||
|
||||
string_types = (basestring,) # noqa
|
||||
binary_type = str
|
||||
text_type = unicode
|
||||
text_type = unicode # noqa
|
||||
|
||||
def u(s):
|
||||
return unicode(s, "utf-8")
|
||||
return unicode(s, "utf-8") # noqa
|
||||
|
||||
def b(s):
|
||||
return s
|
||||
|
@ -54,14 +98,18 @@ else:
|
|||
return eval("0" + lit)
|
||||
|
||||
|
||||
if py33:
|
||||
if py3k:
|
||||
from importlib import machinery
|
||||
|
||||
def load_module(module_id, path):
|
||||
return machinery.SourceFileLoader(module_id, path).load_module()
|
||||
|
||||
|
||||
else:
|
||||
import imp
|
||||
|
||||
def load_module(module_id, path):
|
||||
fp = open(path, 'rb')
|
||||
fp = open(path, "rb")
|
||||
try:
|
||||
return imp.load_source(module_id, path, fp)
|
||||
finally:
|
||||
|
@ -69,90 +117,32 @@ else:
|
|||
|
||||
|
||||
if py3k:
|
||||
|
||||
def reraise(tp, value, tb=None, cause=None):
|
||||
if cause is not None:
|
||||
value.__cause__ = cause
|
||||
if value.__traceback__ is not tb:
|
||||
raise value.with_traceback(tb)
|
||||
raise value
|
||||
|
||||
|
||||
else:
|
||||
exec("def reraise(tp, value, tb=None, cause=None):\n"
|
||||
" raise tp, value, tb\n")
|
||||
exec(
|
||||
"def reraise(tp, value, tb=None, cause=None):\n"
|
||||
" raise tp, value, tb\n"
|
||||
)
|
||||
|
||||
|
||||
def exception_as():
|
||||
return sys.exc_info()[1]
|
||||
|
||||
try:
|
||||
import threading
|
||||
if py3k:
|
||||
import _thread as thread
|
||||
else:
|
||||
import thread
|
||||
except ImportError:
|
||||
import dummy_threading as threading
|
||||
if py3k:
|
||||
import _dummy_thread as thread
|
||||
else:
|
||||
import dummy_thread as thread
|
||||
|
||||
if win32 or jython:
|
||||
time_func = time.clock
|
||||
else:
|
||||
time_func = time.time
|
||||
all = all # noqa
|
||||
|
||||
try:
|
||||
from functools import partial
|
||||
except:
|
||||
def partial(func, *args, **keywords):
|
||||
def newfunc(*fargs, **fkeywords):
|
||||
newkeywords = keywords.copy()
|
||||
newkeywords.update(fkeywords)
|
||||
return func(*(args + fargs), **newkeywords)
|
||||
return newfunc
|
||||
|
||||
|
||||
all = all
|
||||
import json
|
||||
|
||||
def exception_name(exc):
|
||||
return exc.__class__.__name__
|
||||
|
||||
try:
|
||||
from inspect import CO_VARKEYWORDS, CO_VARARGS
|
||||
def inspect_func_args(fn):
|
||||
if py3k:
|
||||
co = fn.__code__
|
||||
else:
|
||||
co = fn.func_code
|
||||
|
||||
nargs = co.co_argcount
|
||||
names = co.co_varnames
|
||||
args = list(names[:nargs])
|
||||
|
||||
varargs = None
|
||||
if co.co_flags & CO_VARARGS:
|
||||
varargs = co.co_varnames[nargs]
|
||||
nargs = nargs + 1
|
||||
varkw = None
|
||||
if co.co_flags & CO_VARKEYWORDS:
|
||||
varkw = co.co_varnames[nargs]
|
||||
|
||||
if py3k:
|
||||
return args, varargs, varkw, fn.__defaults__
|
||||
else:
|
||||
return args, varargs, varkw, fn.func_defaults
|
||||
except ImportError:
|
||||
import inspect
|
||||
def inspect_func_args(fn):
|
||||
return inspect.getargspec(fn)
|
||||
|
||||
if py3k:
|
||||
def callable(fn):
|
||||
return hasattr(fn, '__call__')
|
||||
else:
|
||||
callable = callable
|
||||
|
||||
|
||||
################################################
|
||||
# cross-compatible metaclass implementation
|
||||
|
@ -160,6 +150,8 @@ else:
|
|||
def with_metaclass(meta, base=object):
|
||||
"""Create a base class with a metaclass."""
|
||||
return meta("%sBase" % meta.__name__, (base,), {})
|
||||
|
||||
|
||||
################################################
|
||||
|
||||
|
||||
|
@ -168,7 +160,7 @@ def arg_stringname(func_arg):
|
|||
In Python3.4 a function's args are
|
||||
of _ast.arg type not _ast.name
|
||||
"""
|
||||
if hasattr(func_arg, 'arg'):
|
||||
if hasattr(func_arg, "arg"):
|
||||
return func_arg.arg
|
||||
else:
|
||||
return str(func_arg)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue