# flake8: noqa# This whole file is full of lint errorsimport functoolsimport operatorimport systry:import builtinsexcept ImportError:import __builtin__ as builtinsPY2 = sys.version_info[0] == 2WIN = sys.platform.startswith("win")_identity = lambda x: xif PY2:unichr = unichrtext_type = unicodestring_types = (str, unicode)integer_types = (int, long)iterkeys = lambda d, *args, **kwargs: d.iterkeys(*args, **kwargs)itervalues = lambda d, *args, **kwargs: d.itervalues(*args, **kwargs)iteritems = lambda d, *args, **kwargs: d.iteritems(*args, **kwargs)iterlists = lambda d, *args, **kwargs: d.iterlists(*args, **kwargs)iterlistvalues = lambda d, *args, **kwargs: d.iterlistvalues(*args, **kwargs)int_to_byte = chriter_bytes = iterimport collections as collections_abcexec("def reraise(tp, value, tb=None):\n raise tp, value, tb")def fix_tuple_repr(obj):def __repr__(self):cls = self.__class__return "%s(%s)" % (cls.__name__,", ".join("%s=%r" % (field, self[index])for index, field in enumerate(cls._fields)),)obj.__repr__ = __repr__return objdef implements_iterator(cls):cls.next = cls.__next__del cls.__next__return clsdef implements_to_string(cls):cls.__unicode__ = cls.__str__cls.__str__ = lambda x: x.__unicode__().encode("utf-8")return clsdef native_string_result(func):def wrapper(*args, **kwargs):return func(*args, **kwargs).encode("utf-8")return functools.update_wrapper(wrapper, func)def implements_bool(cls):cls.__nonzero__ = cls.__bool__del cls.__bool__return clsfrom itertools import imap, izip, ifilterrange_type = xrangefrom StringIO import StringIOfrom cStringIO import StringIO as BytesIONativeStringIO = BytesIOdef make_literal_wrapper(reference):return _identitydef normalize_string_tuple(tup):"""Normalizes a string tuple to a common type. Following Python 2rules, upgrades to unicode are implicit."""if any(isinstance(x, text_type) for x in tup):return tuple(to_unicode(x) for x in tup)return tupdef try_coerce_native(s):"""Try to coerce a unicode string to native if possible. Otherwise,leave it as unicode."""try:return to_native(s)except UnicodeError:return swsgi_get_bytes = _identitydef wsgi_decoding_dance(s, charset="utf-8", errors="replace"):return s.decode(charset, errors)def wsgi_encoding_dance(s, charset="utf-8", errors="replace"):if isinstance(s, bytes):return sreturn s.encode(charset, errors)def to_bytes(x, charset=sys.getdefaultencoding(), errors="strict"):if x is None:return Noneif isinstance(x, (bytes, bytearray, buffer)):return bytes(x)if isinstance(x, unicode):return x.encode(charset, errors)raise TypeError("Expected bytes")def to_native(x, charset=sys.getdefaultencoding(), errors="strict"):if x is None or isinstance(x, str):return xreturn x.encode(charset, errors)else:unichr = chrtext_type = strstring_types = (str,)integer_types = (int,)iterkeys = lambda d, *args, **kwargs: iter(d.keys(*args, **kwargs))itervalues = lambda d, *args, **kwargs: iter(d.values(*args, **kwargs))iteritems = lambda d, *args, **kwargs: iter(d.items(*args, **kwargs))iterlists = lambda d, *args, **kwargs: iter(d.lists(*args, **kwargs))iterlistvalues = lambda d, *args, **kwargs: iter(d.listvalues(*args, **kwargs))int_to_byte = operator.methodcaller("to_bytes", 1, "big")iter_bytes = functools.partial(map, int_to_byte)import collections.abc as collections_abcdef reraise(tp, value, tb=None):if value.__traceback__ is not tb:raise value.with_traceback(tb)raise valuefix_tuple_repr = _identityimplements_iterator = _identityimplements_to_string = _identityimplements_bool = _identitynative_string_result = _identityimap = mapizip = zipifilter = filterrange_type = rangefrom io import StringIO, BytesIONativeStringIO = StringIO_latin1_encode = operator.methodcaller("encode", "latin1")def make_literal_wrapper(reference):if isinstance(reference, text_type):return _identityreturn _latin1_encodedef normalize_string_tuple(tup):"""Ensures that all types in the tuple are either stringsor bytes."""tupiter = iter(tup)is_text = isinstance(next(tupiter, None), text_type)for arg in tupiter:if isinstance(arg, text_type) != is_text:raise TypeError("Cannot mix str and bytes arguments (got %s)" % repr(tup))return tuptry_coerce_native = _identitywsgi_get_bytes = _latin1_encodedef wsgi_decoding_dance(s, charset="utf-8", errors="replace"):return s.encode("latin1").decode(charset, errors)def wsgi_encoding_dance(s, charset="utf-8", errors="replace"):if isinstance(s, text_type):s = s.encode(charset)return s.decode("latin1", errors)def to_bytes(x, charset=sys.getdefaultencoding(), errors="strict"):if x is None:return Noneif isinstance(x, (bytes, bytearray, memoryview)): # noqareturn bytes(x)if isinstance(x, str):return x.encode(charset, errors)raise TypeError("Expected bytes")def to_native(x, charset=sys.getdefaultencoding(), errors="strict"):if x is None or isinstance(x, str):return xreturn x.decode(charset, errors)def to_unicode(x, charset=sys.getdefaultencoding(), errors="strict", allow_none_charset=False):if x is None:return Noneif not isinstance(x, bytes):return text_type(x)if charset is None and allow_none_charset:return xreturn x.decode(charset, errors)try:from os import fspathexcept ImportError:# Python < 3.6# https://www.python.org/dev/peps/pep-0519/#backwards-compatibilitydef fspath(path):return path.__fspath__() if hasattr(path, "__fspath__") else path
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。