U )._ @sdZddlZejddkZddZzeZeefZe e fZ Wn$e k r^eZefZe fZ YnXesddZ ddZddZdd lmZdd lmZddlmZd"d d ZeZnHd dZ ddZddZddlmZdd lmZddlZedddZddZdZeedrGddde Z!z0ze! e"W5QRXWnYnXWn.e#k rjdZYne"k r~YnXzddl$m%Z%Wne&k rddZ%YnXGddde Z'e'd d!dZ(dS)#z flask._compat ~~~~~~~~~~~~~ Some py2/py3 compatibility support based on a stripped down version of six so we don't have to depend on a specific version of it. :copyright: 2010 Pallets :license: BSD-3-Clause NcCs|SNxrrC:\Users\Miouzora\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\flask/_compat.pyrcCs t|Sr)iterkeysdrrrrr cCs t|Sr)r valuesr rrrrr cCs t|Sr)r itemsr rrrrr )getfullargspec)StringIOcCs|j|k r|||dSr) __traceback__with_traceback)tpvaluetbrrrreraise$s  rcCs|Sr)iterkeysr rrrr,r cCs|Sr) itervaluesr rrrr-r cCs|Sr) iteritemsr rrrr.r ) getargspecz5def reraise(tp, value, tb=None): raise tp, value, tbcCs|j|_dd|_|S)NcSs|dS)Nzutf-8) __unicode__encoderrrrr8r z&implements_to_string..)__str__r)clsrrrimplements_to_string6s r cs&Gfdddt}t|ddiS)z%Create a base class with a metaclass.cseZdZfddZdS)z!with_metaclass..metaclasscs ||Srr)metaclsname this_basesr basesmetarr__new__Bsz)with_metaclass..metaclass.__new__N)__name__ __module__ __qualname__r'rr$rr metaclassAsr+temporary_classr)typer')r&r%r+rr$rwith_metaclass<sr.Fpypy_version_infoc@seZdZddZddZdS)_MgrcCs|Srrselfrrr __enter__Wsz_Mgr.__enter__cGsttdrtdS)N exc_clear)hasattrsysr4)r2argsrrr__exit__Zs z _Mgr.__exit__N)r(r)r*r3r8rrrrr0Vsr0T)fspathcCst|dr|S|S)N __fspath__)r5r:)pathrrrr9rsr9c@s8eZdZddZddZddZddZd d ZeZd S) _DeprecatedBoolcCsd|||_||_dS)Nz5'{}' is deprecated and will be removed in version {}.)formatmessager)r2r"versionrrrr__init__ws z_DeprecatedBool.__init__cCsddl}|j|jtdddS)Nrr) stacklevel)warningswarnr>DeprecationWarning)r2rBrrr_warn}sz_DeprecatedBool._warncCs|||jkSrrErr2otherrrr__eq__sz_DeprecatedBool.__eq__cCs|||jkSrrFrGrrr__ne__sz_DeprecatedBool.__ne__cCs||jSrrFr1rrr__bool__sz_DeprecatedBool.__bool__N) r(r)r*r@rErIrJrK __nonzero__rrrrr<vs r<zflask.json_availablez2.0.0)N))__doc__r6 version_infoPY2Z _identityunicode text_typestr string_typesintlong integer_types NameErrorrrrinspectrriorcollections.abcabccollections_abcrr cStringIO collectionsexecr.ZBROKEN_PYPY_CTXMGR_EXITr5objectr0AssertionError TypeErrorosr9 ImportErrorr<Zjson_availablerrrrs`