Files
aitsc/.venv/Lib/site-packages/sqlalchemy/util/__pycache__/langhelpers.cpython-312.pyc

667 lines
83 KiB
Plaintext
Raw Normal View History

2025-02-23 09:07:52 +08:00
<EFBFBD>
2025-08-16 19:28:45 +08:00
<00><18>h"<00><01>l <00>UdZddlmZddlZddlZddlmZddlZddlZddl Z ddl
2025-02-23 09:07:52 +08:00
Z
ddl Z ddl Z ddl Z ddlZddlmZddlmZddlmZddlmZdd lmZdd
lmZdd lmZdd lmZdd lmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlm Z ddlm!Z!ddlm"Z"ddlm#Z#ddl$Z$ddl%m&Z&ddl%m'Z'ddl(m)Z)ddlm*Z*ddl%m+Z+e"d <20>Z,e"d!d"<22>#<23>Z-e"d$ed%ef<00>&<26>Z.e"d'd(<28>&<26>Z/e"d)d*<2A>&<26>Z0e"d+d,<2C>&<26>Z1e"d-d.<2E>&<26>Z2e'jfrd<>d/<2F>Z4nd<>d0<64>Z4d<34>d1<64>Z5Gd2<64>d3<64>Z6d<36>d4<64>Z7d<37>d5<64>Z8 d<> d<>d6<64>Z9 d<>d8<64>Z:d<>d9<64>Z;d<>d:<3A>Z<d<>d;<3B>Z=e"d<d7<64>&<26>Z>d<>d=<3D>Z?d><3E>Z@ d<>d?<3F>ZAe"d@<40>ZBe"dA<64>ZCGdB<64>dC<64>ZDdD<64>ZEedd%dE<64> d<>dF<64><06>ZFeddGdE<64> d<>dH<64><06>ZFddGdE<64> d<>dI<64>ZFd<46>dJ<64>ZG d<> d<>dK<64>ZH d<> d<>dL<64>ZId<49>dM<64>ZJ d<> d<>dN<64>ZKdO<64>ZLdP<64>ZM d<> d<>dQ<64>ZNGdR<64>dS<64>ZOdT<64>ZPdU<64>ZQ d<>dV<64>ZRdW<64>ZSd<53>dX<64>ZTe"dYdZ<64>&<26>ZUGd[<5B>d\ee-<00>ZVGd]<5D>d^eVe-<00>ZWGd_<64>d`eVe-<00>ZXe!r eVZYeVZZe[Z\e[Z]neXxZYZ\eWxZZZ]d<>da<64>Z^Gdb<64>dc<64>Z_e!re[Z`n e_j<5F>Z`Gdd<64>de<64>Zbd<62>df<64>Zcd<63>dg<64>Zdd<64>dh<64>Ze d<> d<>di<64>Zfd<66>dj<64>Zgd<67>dk<64>Zhd<68>dl<64>Zi d<> d<>dm<64>Zj d<>dn<64>Zkdo<64>ZlGdp<64>dqe[<5B>ZmGdr<64>dsee,<00>ZnGdt<64>duee,<00>ZoGdv<64>dwee,<00>ZpGdx<64>dyeq<65>ZrGdz<64>d{es<65>ZtGd|<7C>d}et<65>~<7E>Zue!r ddlmvZvevZwneuZwe"d<>ej<><00>&<26>Zy d<> d<>d<EFBFBD><64>Zzda{d<>d<EFBFBD><64>Z|d<>d<EFBFBD><64>Z}d<>d<EFBFBD><64>Z~Gd<><64>d<>e<65>Z<>d<EFBFBD>d<EFBFBD>d<EFBFBD><64>Z<>d<EFBFBD>d<EFBFBD><64>Z<>iZ<>d<EFBFBD>e<EFBFBD>d<EFBFBD>< d<>d<EFBFBD><64>Z<>e
<EFBFBD>j d<><64>Z<> d<> d<>d<EFBFBD><64>Z<> d<>d<EFBFBD><64>Z<>e
<EFBFBD>j d<><64>Z<>e
<EFBFBD>j d<><64>Z<>e<EFBFBD>e<EFBFBD>f d<>d<EFBFBD><64>Z<>esd<03>Z<>d<EFBFBD><64>Z<>e
<EFBFBD>j d<><64>Z<>Gd<><64>d<><64>Z<>Gd<><64>d<><64>Z<>d<EFBFBD><64>Z<>d<EFBFBD><64>Z<>d<EFBFBD>d<EFBFBD><64>Z<>d<EFBFBD>d<EFBFBD><64>Z<> d<>d<EFBFBD><64>Z<>e
<EFBFBD>j d<><64>Z<>d<EFBFBD>d<EFBFBD><64>Z<>d<EFBFBD>d<EFBFBD><64>Z<>d<EFBFBD>d<EFBFBD><64>Z<>Gd<><64>d<>ej<><00>Z<>e<EFBFBD><65>j8Z<>e#e,e*e<><65>j8fZ<>y)<29>z<EFBFBD>Routines to help with the creation, loading and introspection of
modules, classes, hierarchies, attributes, functions, and methods.
2025-08-16 19:28:45 +08:00
<EFBFBD>)<01> annotationsN<73><01>update_wrapper)<01>CodeType)<01>Any)<01>Callable)<01>cast)<01>Dict)<01> FrozenSet)<01>Generic)<01>Iterator)<01>List)<01>Mapping)<01>NoReturn)<01>Optional)<01>overload)<01>Sequence)<01>Set)<01>Tuple)<01>Type)<01> TYPE_CHECKING)<01>TypeVar)<01>Union<6F>)<01> _collections)<01>compat)<01>HAS_CYEXTENSION)<01>Literal<61>)<01>exc<78>_T<5F>_T_coT)<01> covariant<6E>_F.)<01>bound<6E>_MPzmemoized_property[Any]<5D>_MAz#HasMemoized.memoized_attribute[Any]<5D>_HPzhybridproperty[Any]<5D>_HMzhybridmethod[Any]c<01>,<00>tj|<00>S<00>N)<02>inspect<63>get_annotations<6E><01>objs <20>?D:\aitsc\.venv\Lib\site-packages\sqlalchemy\util\langhelpers.pyr-r-As<00><00><16>&<26>&<26>s<EFBFBD>+<2B>+<2B>c<01><><00>t|t<00>r|jjdd<00>}n t |dd<00>}|<01>t
2025-02-23 09:07:52 +08:00
j Std|<01>S)N<>__annotations__<5F>Mapping[str, Any])<08>
isinstance<EFBFBD>type<70>__dict__<5F>get<65>getattrr<00>
EMPTY_DICTr )r/<00>anns r0r-r-FsS<00><00> <16>c<EFBFBD>4<EFBFBD> <20><15>,<2C>,<2C>"<22>"<22>#4<>d<EFBFBD>;<3B>C<EFBFBD><19>#<23>0<>$<24>7<>C<EFBFBD> <0E>;<3B><1F>*<2A>*<2A> *<2A><17>+<2B>S<EFBFBD>1<> 1r1c<01><><00>|jd<01>}tj<00>}|j|<00>t t
|j <00><00>S)Nzutf-8)<07>encoder<00>md5_not_for_security<74>updater <00>str<74> hexdigest)<02>x<>ms r0<00>md5_hexrDWs<<00><00> <09><08><08><17><19>A<EFBFBD><0E>#<23>#<23>%<25>A<EFBFBD><05>H<EFBFBD>H<EFBFBD>Q<EFBFBD>K<EFBFBD> <0F><03>Q<EFBFBD>[<5B>[<5B>]<5D> #<23>#r1c<01>@<00>eZdZUdZdZded<dd<05>Z d d<06>Zy)
<EFBFBD> safe_reraiseaReraise an exception after invoking some
handler code.
Stores the existing exception info before
invoking so that it is maintained across a potential
coroutine context switch.
e.g.::
try:
sess.commit()
except:
with safe_reraise():
sess.rollback()
TODO: we should at some point evaluate current behaviors in this regard
based on current greenlet, gevent/eventlet implementations in Python 3, and
also see the degree to which our own asyncio (based on greenlet also) is
impacted by this. .rollback() will cause IO / context switch to occur in
all these scenarios; what happens to the exception context from an
"except:" block if we don't explicitly store it? Original issue was #2703.
)<01> _exc_infozdUnion[None, Tuple[Type[BaseException], BaseException, types.TracebackType], Tuple[None, None, None]]rGc<01>6<00>tj<00>|_yr+)<03>sys<79>exc_inforG<00><01>selfs r0<00> __enter__zsafe_reraise.__enter__<5F>s<00><00><1C><1C><1C><1E><04>r1c<01><><00>|j<00>J<00>|<01>,|j\}}}|<05>J<00>d|_|j|<06><00>d|_|<02>J<00>|j|<03><00>r+)rG<00>with_traceback)rL<00>type_<65>value<75> traceback<63>exc_type<70> exc_value<75>exc_tbs r0<00>__exit__zsafe_reraise.__exit__<5F>sq<00><00> <14>~<7E>~<7E>)<29>)<29>)<29> <10>=<3D>*.<2E>.<2E>.<2E> '<27>H<EFBFBD>i<EFBFBD><16><1C>(<28> (<28>(<28>!<21>D<EFBFBD>N<EFBFBD><1B>*<2A>*<2A>6<EFBFBD>2<> 2<>!<21>D<EFBFBD>N<EFBFBD><18>$<24> $<24>$<24><17>&<26>&<26>y<EFBFBD>1<> 1r1N<><02>return<72>None)rPzOptional[Type[BaseException]]rQzOptional[BaseException]rRzOptional[types.TracebackType]rXr)<08>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__doc__<5F> __slots__r3rMrV<00>r1r0rFrF^sH<00><00><08>0<1F>I<EFBFBD><06><06>(<28>2<>,<2C>2<>'<27>2<>1<> 2<>
<12> 2r1rFc#<01><>K<00>t<00>}|g}|rM|j<00>}||vr<01>|j|<00>|j|j <00><00>|<00><01>|r<01>Lyy<00>wr+)<05>set<65>pop<6F>add<64>extend<6E>__subclasses__)<03>cls<6C>seen<65>stacks r0<00>walk_subclassesri<00>sV<00><00><><00><18>U<EFBFBD>D<EFBFBD> <10>E<EFBFBD>E<EFBFBD>
<0F><13>i<EFBFBD>i<EFBFBD>k<EFBFBD><03> <0E>$<24>;<3B> <14> <10>H<EFBFBD>H<EFBFBD>S<EFBFBD>M<EFBFBD> <0A> <0C> <0C>S<EFBFBD>'<27>'<27>)<29>*<2A><11> <09> <10>s <00>AA <01>A c<01>f<00>t|t<00>r|S t|<00>S#t$rd|zcYSwxYw)Nzunprintable element %r)r5r@<00> Exception)<01>elements r0<00>string_or_unprintablerm<00>s:<00><00><11>'<27>3<EFBFBD><1F><16><0E> 6<><16>w<EFBFBD><<3C> <1F><><18> 6<>+<2B>g<EFBFBD>5<> 5<> 6<>s <00>
<00>0<03>0c<01>z<00>|xs |j}djd<02>tjd|<02>D<00><00>S)N<> c3<01><K<00>|]}|j<00><00><01><00>y<00>wr+)<01>lower)<02>.0<EFBFBD>ns r0<00> <genexpr>z(clsname_as_plain_name.<locals>.<genexpr><3E>s<00><00><><00>N<>'M<>!<21>A<EFBFBD>G<EFBFBD>G<EFBFBD>I<EFBFBD>'M<>s<00>z([A-Z][a-z]+|SQL))rZ<00>join<69>re<72>findall)rf<00>use_name<6D>names r0<00>clsname_as_plain_namerz<00>s3<00><00> <14> #<23>s<EFBFBD>|<7C>|<7C>D<EFBFBD> <0E>8<EFBFBD>8<EFBFBD>N<>r<EFBFBD>z<EFBFBD>z<EFBFBD>2F<32><04>'M<>N<> N<>Nr1<00>Callable[..., Any]c<01>z<00>t|t<00>s |j}n|}|j}t ||<03>}||k7S)z1Return True if the two class methods don't match.)r5r6<00> __class__rZr9)<05>instance_or_cls<6C>against_method<6F> current_cls<6C> method_name<6D>current_methods r0<00>method_is_overriddenr<6E><00>s@<00><00> <16>o<EFBFBD>t<EFBFBD> ,<2C>%<25>/<2F>/<2F> <0B>%<25> <0B> <20>)<29>)<29>K<EFBFBD>'.<2E>{<7B>K<EFBFBD>'H<>N<EFBFBD> <19>^<5E> +<2B>+r1c<01><><00>g}|j|j|jfD]/}t|d<01>r|j <00>}|j |<02><00>1t |<01>S)zrdecode a slice object as sent to __getitem__.
takes into account the 2.5 __index__() method, basically.
<20> __index__)<07>start<72>stop<6F>step<65>hasattrr<72><00>append<6E>tuple)<03>slc<6C>retrBs r0<00> decode_slicer<65><00>sR<00><00> <18>C<EFBFBD> <10>Y<EFBFBD>Y<EFBFBD><03><08><08>#<23>(<28>(<28> *<2A><01> <12>1<EFBFBD>k<EFBFBD> "<22><11> <0B> <0B> <0A>A<EFBFBD> <0B>
<EFBFBD>
<EFBFBD>1<EFBFBD> <0A>+<2B> <11><13>:<3A>r1c
'<01><><00>K<00>t|<00>}|D]^<00>tj<00>ft<00>fd<01>t d<02><00><00>}|D]}||vs<01>|j |<04>|<04><01><00>Qt d<03>z<00><00>y<00>w)Nc<01> <00><01><00>t|<00>zSr+<00>r@)<02>i<>bases <20>r0<00><lambda>z!_unique_symbols.<locals>.<lambda><3E>s <00><><00>$<24><13>Q<EFBFBD><16>-r1i<>z&exhausted namespace for symbol base %s)ra<00> itertools<6C>chain<69>map<61>rangerc<00> NameError)<06>used<65>bases<65>used_set<65>pool<6F>symr<6D>s @r0<00>_unique_symbolsr<73><00>sw<00><><00><><00><12>4<EFBFBD>y<EFBFBD>H<EFBFBD><15><04><18><EFBFBD><EFBFBD> <11>G<EFBFBD> <0F>'<27><15>t<EFBFBD><1B> 5<>
<EFBFBD><04><18>C<EFBFBD><12>(<28>"<22><18> <0C> <0C>S<EFBFBD>!<21><19> <09><15> <18> <1C>D<>t<EFBFBD>K<>L<> L<><16>s <00>AA3<01> (A3c#<01>HK<00>|r||dzz}||<02><00><01>||z}|r<01>yy<02>w)z6Call the given function given each nonzero bit from n.rNr_)<03>fnrs<00>bs r0<00>map_bitsr<73><00>s1<00><00><><00> <0C> <0A>!<21><12>a<EFBFBD><16>L<EFBFBD><01><10><11>e<EFBFBD> <0B> <09>Q<EFBFBD><06><01> <0C>s<00>"<01>"<01>_Fnc<01>(<00><00>d<02>fd<01> }t|<01><00>S)z'A signature-matching decorator factory.c<01><><00><01>tj|<00>s tj|<00>s td<01><00>t j
|<00>}i}t ||<02>}ttd|d<00><00>td|dd<00>z|jfz}t|dd<07>\}}t||<05><08>}|jt|d <09>
<EFBFBD><00>|j|d <tj|<00>r d |d <d|d<n
d|d <d|d<dt|d<00>vrd|z}nd|z}t j"|j$}|jt'|<08><00>|j|<04>
||d|j$i<03>tt(j*t-|||j<00><00>} t/|d|<00>j0| _|| _t5| |<00>S)Nznot a decoratable functionzTuple[str, ...]rr<00><00>targetr<74>)r<>r<>F<><01>groupedryzasync <20>prefixzawait <20> target_prefix<69><00>__zf%(prefix)sdef %(name)s%(grouped_args)s:
return %(target_prefix)s%(target)s(%(fn)s, %(apply_pos)s)
ze%(prefix)sdef %(name)s%(grouped_args)s:
return %(target_prefix)s%(target)s(%(fn)s, %(apply_kw)s)
rZ<00>__func__)r,<00>
isfunction<EFBFBD>ismethodrkr<00>inspect_getfullargspec<65>!_update_argspec_defaults_into_envr<76>r rZr<><00>dictr?<00>format_argspec_plus<75>iscoroutinefunction<6F>reprrI<00>modulesr[<00>vars<72>types<65> FunctionType<70>_exec_code_in_envr9<00> __defaults__<5F> __wrapped__r) r<><00>spec<65>env<6E>names<65> targ_name<6D>fn_name<6D>metadata<74>code<64>mod<6F> decoratedr<64>s <20>r0<00>decoratezdecorator.<locals>.decorate<74>s<><00><><00><16>!<21>!<21>"<22>%<25>g<EFBFBD>.><3E>.><3E>r<EFBFBD>.B<><1B>8<>9<> 9<><15>,<2C>,<2C>R<EFBFBD>0<><04> <20><03>0<><14>s<EFBFBD>;<3B><04> <12>$<24>(<28>$<24>q<EFBFBD>'<27>2<> 3<><12>$<24>d<EFBFBD>1<EFBFBD>Q<EFBFBD>i<EFBFBD>0<> 1<><11>{<7B>{<7B>n<EFBFBD> <1D> <0E>
-<2D>U<EFBFBD>H<EFBFBD>d<EFBFBD>C<><1A> <09>7<EFBFBD>-1<><19>w<EFBFBD>-O<><08><10><0F><0F>+<2B>D<EFBFBD>%<25>@<40>A<><1D>;<3B>;<3B><08><16><18> <12> &<26> &<26>r<EFBFBD> *<2A>!)<29>H<EFBFBD>X<EFBFBD> <1E>(0<>H<EFBFBD>_<EFBFBD> %<25>!#<23>H<EFBFBD>X<EFBFBD> <1E>(*<2A>H<EFBFBD>_<EFBFBD> %<25> <10>4<EFBFBD><04>Q<EFBFBD><07>=<3D> <20><04><1B> <1B> <11><04><1B> <1B> <11><12>k<EFBFBD>k<EFBFBD>"<22>-<2D>-<2D>(<28><03> <0B>
<EFBFBD>
<EFBFBD>4<EFBFBD><03>9<EFBFBD><1D> <0B>
<EFBFBD>
<EFBFBD>I<EFBFBD>v<EFBFBD>w<EFBFBD><02>J<EFBFBD><02> <0A> <0A>N<>O<><18> <11> <1E> <1E> <1D>d<EFBFBD>C<EFBFBD><12><1B><1B> 5<>
<EFBFBD> <09>")<29><12>Z<EFBFBD><12>!<<3C>!I<>!I<> <09><1E> "<22> <09><1D><1D>i<EFBFBD><12>,<2C>,r1)r<>r<>rXr<>r)r<>r<>s` r0<00> decoratorr<72><00>s<00><><00>?-<2D>B <1A>(<28>F<EFBFBD> +<2B>+r1c<01>0<00>|jr<>g}d}|jD]K}t|<04>jdvr!d|z}|||<|j|<05>|dz }<03>;|j|<04><00>Mt |<00>}t |<02>|d<t j|<06>S|S)zCgiven a FullArgSpec, convert defaults to be symbol names in an env.r)<02>builtins<6E> __builtin__zx%drr<>)<08>defaultsr6r[r<><00>listr<74>r<00> FullArgSpec)r<>r<><00> new_defaultsr<73><00>argry<00>elems r0r<>r<>=s<><00><00> <0C>}<7D>}<7D><19> <0C> <0A><01><17>=<3D>=<3D>C<EFBFBD><13>C<EFBFBD>y<EFBFBD>#<23>#<23>+F<>F<><1C>q<EFBFBD>y<EFBFBD><04><1F><03>D<EFBFBD> <09><1C>#<23>#<23>D<EFBFBD>)<29><11>Q<EFBFBD><06><01><1C>#<23>#<23>C<EFBFBD>(<28>!<21><14>D<EFBFBD>z<EFBFBD><04><17> <0C>%<25><04>Q<EFBFBD><07><15>!<21>!<21>4<EFBFBD>(<28>(<28><13> r1c<01>$<00>t||<01>||Sr+)<01>exec)r<>r<>r<>s r0r<>r<>Rs<00><00> <09><14>s<EFBFBD>O<EFBFBD> <0E>w<EFBFBD><<3C>r1<00>_PF<50>_TEc<01>4<00>eZdZ d dd<02>Zd<03>Zdd<04>Zd d<05>Zy)
<EFBFBD> PluginLoaderNc<01>.<00>||_i|_||_yr+)<03>group<75>impls<6C>auto_fn)rLr<>r<>s r0<00>__init__zPluginLoader.__init__^s<00><00><1B><04>
<EFBFBD>%'<27><04>
<EFBFBD><1E><04> r1c<01>8<00>|jj<00>yr+)r<><00>clearrKs r0r<>zPluginLoader.cleares<00><00> <0C>
<EFBFBD>
<EFBFBD><18><18>r1c<01><><00>||jvr|j|<00>S|jr)|j|<01>}|r||j|<|<02>Stj|j<00>D]<}|j
|k(s<01>|j |j|<|j <00>cStjd|j<00>d|<01><01><04><00>)NzCan't load plugin: <20>:) r<>r<>r<00>importlib_metadata_getr<74>ry<00>loadr <00>NoSuchModuleError)rLry<00>loader<65>impls r0r<>zPluginLoader.loadhs<><00><00> <0F>4<EFBFBD>:<3A>:<3A> <1D>#<23>4<EFBFBD>:<3A>:<3A>d<EFBFBD>#<23>%<25> %<25> <0F><<3C><<3C><19>\<5C>\<5C>$<24>'<27>F<EFBFBD><15>#)<29><04>
<EFBFBD>
<EFBFBD>4<EFBFBD> <20><1D>x<EFBFBD><0F><1A>1<>1<>$<24>*<2A>*<2A>=<3D>D<EFBFBD><13>y<EFBFBD>y<EFBFBD>D<EFBFBD> <20>#'<27>9<EFBFBD>9<EFBFBD><04>
<EFBFBD>
<EFBFBD>4<EFBFBD> <20><1B>y<EFBFBD>y<EFBFBD>{<7B>"<22>><3E>
<12>#<23>#<23>*.<2E>*<2A>*<2A>d<EFBFBD> ;<3B>
<EFBFBD>
r1c<01>2<00><02><03><00><02>fd<01>}||j|<y)Nc<01>|<00><02>t<00><02>}<00>jd<01>ddD]}t||<01>}<00>t|<00><03>S)N<>.r)<03>
__import__<EFBFBD>splitr9)r<><00>token<65>
modulepath<EFBFBD>objnames <20><>r0r<>z#PluginLoader.register.<locals>.load|sB<00><><00><1C>Z<EFBFBD>(<28>C<EFBFBD>#<23>)<29>)<29>#<23>.<2E>q<EFBFBD>r<EFBFBD>2<><05><1D>c<EFBFBD>5<EFBFBD>)<29><03>3<><1A>3<EFBFBD><07>(<28> (r1)r<>)rLryr<>r<>r<>s `` r0<00>registerzPluginLoader.register{s<00><><00> )<29>  <20><04>
<EFBFBD>
<EFBFBD>4<EFBFBD>r1r+)r<>r@r<>zOptional[Callable[..., Any]])ryr@rXr)ryr@r<>r@r<>r@rXrY)rZr[r\r<>r<>r<>r<>r_r1r0r<>r<>]s)<00><00>BF<42><1F><18><1F>#?<3F><1F><1B>
<EFBFBD>& r1r<>c<01>"<00> tj}|j}|j}t |j
d|<00>t |j|z<00>fS#t$r+tj|<00>}|dt |d<00>fcYSwxYw)Nrr) r,<00>CO_VARKEYWORDS<44>__code__<5F> co_argcountr<74><00> co_varnames<65>bool<6F>co_flags<67>AttributeErrorrr<>)r<><00>co_varkeywords<64>co<63>nargsr<73>s r0<00>_inspect_func_argsr<73><00>s<><00><00>
<EFBFBD> <20>/<2F>/<2F><0E><10>[<5B>[<5B><02><12><0E><0E><05> <10><12><1E><1E><06><15>'<27> (<28> <10><12><1B><1B>~<7E>-<2D> .<2E>
<EFBFBD>
<EFBFBD><EFBFBD> <1A>&<26>
<16>,<2C>,<2C>R<EFBFBD>0<><04><13>A<EFBFBD>w<EFBFBD><04>T<EFBFBD>!<21>W<EFBFBD> <0A>%<25>%<25> &<26>s<00>A<00>1B<03> B)<02>_set<65>raiseerrc<01><00>yr+r_<00>rfr<>r<>s r0<00>get_cls_kwargsr<00>s<00><00> r1Fc<01><00>yr+r_r<>s r0rr<00>s<00><00>r1c<01><><00>|du}|r
t<00>}|<01>J<00>|jjdd<03>}|xr@t|tj
<00>xr$t|j tj<00>}|r5t|<04>\}}|j|<06>|s|s|rtd|<00>d<05><03><00>yd}|r|r |jD]}t||<01><06><00><01>n|jd<07>|S)aeReturn the full set of inherited kwargs for the given `cls`.
Probes a class's __init__ method, collecting all named arguments. If the
__init__ defines a \**kwargs catch-all, then the constructor is presumed
to pass along unrecognized keywords to its base classes, and the
collection process is repeated recursively on each of the bases.
Uses a subset of inspect.getfullargspec() to cut down on method overhead,
as this is used within the Core typing system to create copies of type
objects which is a performance-sensitive operation.
No anonymous tuple arguments please !
Nr<4E>Fz
given cls z doesn't have an __init__ method)r<>rL)rar7r8r5r<>r<>r<>rr<>r?<00> TypeError<6F> __bases__r<00>discard) rfr<>r<><00>toplevel<65>ctr<74>has_initr<74><00>has_kw<6B>cs r0rr<00>s<><00><00>"<14>t<EFBFBD>|<7C>H<EFBFBD><0F><12>u<EFBFBD><04> <0F> <1B><1B> <1B>
<0A>,<2C>,<2C>
<1A>
<1A>:<3A>u<EFBFBD>
-<2D>C<EFBFBD> <0C> 5<> <16>s<EFBFBD>E<EFBFBD>.<2E>.<2E> /<2F> 5<> <16>s<EFBFBD>|<7C>|<7C>U<EFBFBD>^<5E>^<5E> 4<> <0A> <10>*<2A>3<EFBFBD>/<2F> <0A><05>v<EFBFBD> <0C> <0B> <0B>E<EFBFBD><1A><15>h<EFBFBD><17><1F> <20><13><05>%E<>F<><12><12><1C><16><06> <13>v<EFBFBD><14><1D><1D>A<EFBFBD><1D>a<EFBFBD>d<EFBFBD>+<2B>3<><15><1F> <09>L<EFBFBD>L<EFBFBD><16><18> <0F>Kr1c<01>2<00>tj|<00>dS)z<>Return the set of legal kwargs for the given `func`.
Uses getargspec so is safe to call for methods, functions,
etc.
r)rr<>)<01>funcs r0<00>get_func_kwargsr <00>s<00><00> <12> (<28> (<28><14> .<2E>q<EFBFBD> 1<>1r1c <01><><00>tj|<00>rtd|z<00><00>tj|<00>r<>|r{|ryt j
|<00>}t j |jdd|j|j|j|j|j|j<00>St j
|<00>Stj|<00>r<>|r<>|s |jr<>t j
|j <00>}t j |jdd|j|j|j|j|j|j<00>St j
|j <00>Stj"|<00>rt%|j&|d<04><05>St)|d<06>rt j
|j <00>St)|d<07>rDtj|j*<00>rt%|j*|<01><08>Std |z<00><00>td |z<00><00>)
z<EFBFBD>Return the argument signature for any callable.
All pure-Python callables are accepted, including
functions, methods, classes, objects with __call__;
builtins and other edge cases like functools.partial() objects
raise a TypeError.
zCan't inspect builtin: %srNT)<02>no_self<6C>_is_initr<74><00>__call__)rzCan't inspect callable: %s)r,<00> isbuiltinrr<>rr<>r<><00>args<67>varargs<67>varkwr<77><00>
kwonlyargs<EFBFBD>kwonlydefaultsrr<><00>__self__r<5F><00>isclass<73>get_callable_argspecr<63>r<>r)r<>rrr<>s r0rr<00>s<><00><00><0F><18><18><12><1C><17>3<>b<EFBFBD>8<>9<>9<> <10> <1B> <1B>B<EFBFBD> <1F> <13><07><19>0<>0<><12>4<>D<EFBFBD><19>%<25>%<25><14> <09> <09>!<21>"<22> <0A><14> <0C> <0C><14>
<EFBFBD>
<EFBFBD><14> <0A> <0A><14><0F><0F><14>#<23>#<23><14> <20> <20><0E> <0E><1A>0<>0<><12>4<> 4<> <10> <19> <19>"<22> <1D> <12><08>B<EFBFBD>K<EFBFBD>K<EFBFBD><19>0<>0<><12><1B><1B>=<3D>D<EFBFBD><19>%<25>%<25><14> <09> <09>!<21>"<22> <0A><14> <0C> <0C><14>
<EFBFBD>
<EFBFBD><14> <0A> <0A><14><0F><0F><14>#<23>#<23><14> <20> <20><0E> <0E><1A>0<>0<><12><1B><1B>=<3D> =<3D> <10><1F><1F><12> <1C>#<23> <0E>K<EFBFBD>K<EFBFBD><17>4<EFBFBD>
<EFBFBD>
<EFBFBD>
<11><12>Z<EFBFBD> <20><15>,<2C>,<2C>R<EFBFBD>[<5B>[<5B>9<>9<> <10><12>Z<EFBFBD> <20> <12> <1B> <1B>B<EFBFBD>K<EFBFBD>K<EFBFBD> (<28>'<27><02> <0B> <0B>W<EFBFBD>E<> E<><1B>8<>2<EFBFBD>=<3D>><3E> ><3E><17>4<>r<EFBFBD>9<>:<3A>:r1c
<01><><00>t|<00>rtj|<00>}n|}tj|<02>}tj|d|d|dd|d<00>}|dr1|dd}tj|ddd|d|dd|d<00>}n|dr d|dz}|}nd}|}d}|dr&|t t t t|d<00><00>z }|dr|t |d<00>z }|d|dz}|r |d|z
d} nd} tj||d|d| d <09><00>
<EFBFBD>}
|dr%tj|dd|d|d| d <0B><00>
<EFBFBD>} n|
} |rt||||
|| <0B> <0C>St|||dd |
dd |dd | dd <00> <0C>S)aReturns a dictionary of formatted, introspected function arguments.
A enhanced variant of inspect.formatargspec to support code generation.
fn
An inspectable callable or tuple of inspect getargspec() results.
grouped
Defaults to True; include (parens, around, argument) lists
Returns:
args
Full inspect.formatargspec for fn
self_arg
The name of the first positional argument, varargs[0], or None
if the function defines no positional arguments.
apply_pos
args, re-written in calling rather than receiving syntax. Arguments are
passed positionally.
apply_kw
Like apply_pos, except keyword-ish args are passed as keywords.
apply_pos_proxied
Like apply_pos but omits the self/cls argument
Example::
>>> format_argspec_plus(lambda self, a, b, c=3, **d: 123)
{'grouped_args': '(self, a, b, c=3, **d)',
'self_arg': 'self',
'apply_kw': '(self, a, b, c=c, **d)',
'apply_pos': '(self, a, b, c, **d)'}
rrrN<>z%s[0]r<>r_c<01><00>dt|<00>zS<00>N<>=r<><00>rBs r0r<>z%format_argspec_plus.<locals>.<lambda>ss <00><00>c<EFBFBD>C<EFBFBD><01>F<EFBFBD>lr1)<01> formatvaluec<01><00>dt|<00>zSrr<>r s r0r<>z%format_argspec_plus.<locals>.<lambda>|s <00><00>#<23><03>A<EFBFBD><06>,r1)<06> grouped_args<67>self_arg<72> apply_pos<6F>apply_kw<6B>apply_pos_proxied<65>apply_kw_proxied<65><64><EFBFBD><EFBFBD><EFBFBD>) <09>callablerr<><00>inspect_formatargspec<65>lenr rrr<>) r<>r<>r<>rr%r$r'<00> num_defaults<74> name_args<67>defaulted_valsr&r(s r0r<>r<> s<00><00>H<10><02>|<7C><15>,<2C>,<2C>R<EFBFBD>0<><04><11><04> <11> '<27> '<27><14> .<2E>D<EFBFBD><16>,<2C>,<2C> <0C>Q<EFBFBD><07><14>a<EFBFBD><17>$<24>q<EFBFBD>'<27>4<EFBFBD><14>a<EFBFBD><17><06>I<EFBFBD> <0C>A<EFBFBD>w<EFBFBD><17><01>7<EFBFBD>1<EFBFBD>:<3A><08>"<22>8<>8<> <10><11>G<EFBFBD>A<EFBFBD>B<EFBFBD>K<EFBFBD><14>a<EFBFBD><17>$<24>q<EFBFBD>'<27>4<EFBFBD><14>a<EFBFBD><17>
<EFBFBD><19>
<0E>a<EFBFBD><17><1A>T<EFBFBD>!<21>W<EFBFBD>$<24><08>%<25><19><17><08>%<25><19><14>L<EFBFBD> <0B>A<EFBFBD>w<EFBFBD><14><03>D<EFBFBD><15>s<EFBFBD><1A>T<EFBFBD>!<21>W<EFBFBD>5<>6<>6<> <0C> <0B>A<EFBFBD>w<EFBFBD><14><03>D<EFBFBD><11>G<EFBFBD> <0C>$<24> <0C><14>Q<EFBFBD><07>$<24>q<EFBFBD>'<27>!<21>I<EFBFBD><14>"<22>1<EFBFBD>|<7C>#3<>#5<>6<><0E><1B><0E><15>+<2B>+<2B><11> <0C>Q<EFBFBD><07> <0C>Q<EFBFBD><07><16>*<2A> <06>H<EFBFBD> <0C>A<EFBFBD>w<EFBFBD>!<21>7<>7<> <15>a<EFBFBD>b<EFBFBD>M<EFBFBD> <10><11>G<EFBFBD> <10><11>G<EFBFBD> <1A>.<2E> 
<EFBFBD><18>$<24><18><0E><13><1D><1D><1F><1D>/<2F>-<2D> 
<EFBFBD>
<EFBFBD><14><1D><1D><1F><01>"<22>o<EFBFBD><1D>a<EFBFBD><02>^<5E>/<2F><01>"<22>5<>-<2D>a<EFBFBD><02>3<> 
<EFBFBD>
r1c<01><><00>|tjurd}|rdnd}|rdnd}n t||<01><05>St d|||||<04>
<EFBFBD>S#t$rd}|r|nd}|rdnd }Y<00>*wxYw) a$format_argspec_plus with considerations for typical __init__ methods
Wraps format_argspec_plus with error handling strategies for typical
__init__ cases:
.. sourcecode:: text
object.__init__ -> (self)
other unreflectable (usually C) -> (self, *args, **kwargs)
z(self)rLz()r<>r<>z(self, *args, **kwargs)zself, *args, **kwargsz(*args, **kwargs)z*args, **kwargs)r$r#r%r&r'r()<05>objectr<74>r<>rr<>)<05>methodr<64>r#r<00>proxieds r0<00>format_argspec_initr4<00>s<><00><00><0E><16><1F><1F> <20><1F> <0C>"<22>x<EFBFBD><06><04>!<21>$<24>r<EFBFBD><07> L<01>&<26>v<EFBFBD>w<EFBFBD>?<3F> ?<3F>
<10><17>!<21><16><15>!<21> <20>  <06><06><> <19> L<01>4<>L<EFBFBD>#*<2A><<3C>0G<30>D<EFBFBD>-4<>)<29>:K<>G<EFBFBD> L<01>s<00> A<00>A<03>Ac<01> <00>d<01>}|S)aSA class decorator indicating attributes should refer to a proxy
class.
This decorator is now a "marker" that does nothing at runtime. Instead,
it is consumed by the tools/generate_proxy_methods.py script to
statically generate proxy methods and attributes that are fully
recognized by typing tools such as mypy.
c<01><00>|Sr+r_)rfs r0r<>z&create_proxy_methods.<locals>.decorate<74>s<00><00><12>
r1r_)<08>
target_cls<EFBFBD>target_cls_sphinx_name<6D>proxy_cls_sphinx_name<6D> classmethods<64>methods<64>
attributes<EFBFBD>use_intermediate_variabler<65>s r0<00>create_proxy_methodsr><00>s<00><00>&<13> <14>Or1c<01><><00> tj|<00>S#t$r%|tjur dgdddfcYSdgdddfcYSwxYw)ainspect.getargspec with considerations for typical __init__ methods
Wraps inspect.getargspec with error handling for typical __init__ cases:
.. sourcecode:: text
object.__init__ -> (self)
other unreflectable (usually C) -> (self, *args, **kwargs)
rLNr<00>kwargs)rr<>rr1r<>)r2s r0<00>getargspec_initrA<00>sU<00><00>6<><15>,<2C>,<2C>V<EFBFBD>4<>4<><34> <14>6<> <11>V<EFBFBD>_<EFBFBD>_<EFBFBD> $<24><1B>H<EFBFBD>d<EFBFBD>D<EFBFBD>$<24>/<2F> /<2F><1B>H<EFBFBD>f<EFBFBD>h<EFBFBD><04>5<> 5<> 6<>s<00><00>"A<03>A<03>Ac<01>j<00>t|tj<00>r|js |jS|S)zSAdjust the incoming callable such that a 'self' argument is not
required.
)r5r<><00>
MethodTyperr<>)<01> func_or_clss r0<00>unbound_method_to_callablerE<00>s.<00><00> <12>+<2B>u<EFBFBD>/<2F>/<2F>0<><1B>9M<39>9M<39><1A>#<23>#<23>#<23><1A>r1c <01><><00><00>|<02><04>g}ntj|<02>}t<00>}g}tj<00>}d}t |<02>D<00>]/\}} t j | j<00>}
|
jrt|
j<00>nd} |dk(rY|
jr |
j}| r |j|
jd| <00>nN|j|
jdd<00>n/|j|
jd| D<00> cgc]} | |f<02><02>c} <0C>| s<01><>|
jsJ<00>|jt|
j| d|
j<00>D<00> <0C> cgc] \} } | | f<02><02> c} } <0C><00><01>2g}|j<00>fd<04>|D<00><00>|<07>>t!<00>|<07>r2|jt#<00>|<07>D<00>cgc] }t%|<0F><00><02>c}<0F>|j'<00>D]7\} }| |vr<01> t#<00>| |<04>}||ur||k7r|j)| <0C>d|<0F><02><03><00>9|r7|D]2\} } t#<00>| |<04>}||ur||k7r|j)| <0C>d|<0F><02><03><00>4<00>j,j.<00>ddj1|<0E><00>d<08>Scc} wcc} } w#t$rY<00><02>TwxYwcc}w#t*$rY<00><>wxYw#t*$rY<00><>wxYw) z}Produce a __repr__() based on direct association of the __init__()
specification vs. same-named attributes present.
Nrrc3<01>J<00>K<00>|]}tt<00>|d<00><00><00><01><00>y<00>wr+)r<>r9)rrr<>r/s <20>r0rtzgeneric_repr.<locals>.<genexpr>"s <00><><00><><00>D<>8<EFBFBD>C<EFBFBD>$<24>w<EFBFBD>s<EFBFBD>C<EFBFBD><14>.<2E>/<2F>8<EFBFBD>s<00> #r<00>(<28>, <20>))r<00>to_listr1<00> OrderedDict<63> enumeraterr<>r<>r<>r,rrdrr?<00>ziprr<>r9r<><00>itemsr<73>rkr}rZru)r/<00> additional_kw<6B>
to_inspect<EFBFBD>
omit_kwarg<EFBFBD>missing<6E>pos_args<67>kw_args<67>vargsr<73><00>inspr<70><00> default_lenr<6E><00>default<6C>output<75>val<61>defvals` r0<00> generic_reprr]<00>s<><00><><00><12><19><19>U<EFBFBD>
<EFBFBD>!<21>)<29>)<29>*<2A>5<>
<EFBFBD><14>h<EFBFBD>G<EFBFBD><11>H<EFBFBD>2><3E>2J<32>2J<32>2L<32>G<EFBFBD> <10>E<EFBFBD><1C>Z<EFBFBD>(<28><07><01>4<EFBFBD> <12><19>0<>0<><14><1D><1D>?<3F>D<EFBFBD>15<31> <0A> <0A>#<23>d<EFBFBD>m<EFBFBD>m<EFBFBD>,<2C>1<EFBFBD>K<EFBFBD><10>A<EFBFBD>v<EFBFBD><17><<3C><<3C> <20>L<EFBFBD>L<EFBFBD>E<EFBFBD><1E><1C>O<EFBFBD>O<EFBFBD>D<EFBFBD>I<EFBFBD>I<EFBFBD>a<EFBFBD><1B> <0C>$=<3D>><3E><1C>O<EFBFBD>O<EFBFBD>D<EFBFBD>I<EFBFBD>I<EFBFBD>a<EFBFBD>b<EFBFBD>M<EFBFBD>2<><17><0E><0E>/3<>y<EFBFBD>y<EFBFBD><11>K<EFBFBD><<3C>/H<>I<>/H<><03>c<EFBFBD>7<EFBFBD>^<5E>/H<>I<><12><1B><1B>}<7D>}<7D>$<24>}<7D><17><0E><0E>-0<> <20>I<EFBFBD>I<EFBFBD>{<7B>l<EFBFBD>m<EFBFBD>4<>d<EFBFBD>m<EFBFBD>m<EFBFBD>-<1A><16>-<1A>L<EFBFBD>C<EFBFBD><17><1D>g<EFBFBD><0E>-<1A><16><12>+)<29>:<1B>F<EFBFBD>
<EFBFBD>M<EFBFBD>M<EFBFBD>D<>8<EFBFBD>D<>D<> <0C><18>W<EFBFBD>S<EFBFBD>%<25>0<><0E> <0A> <0A>G<EFBFBD>C<EFBFBD><15>,?<3F>@<40>,?<3F>S<EFBFBD>t<EFBFBD>C<EFBFBD>y<EFBFBD>,?<3F>@<40>A<><1E>}<7D>}<7D><EFBFBD> <0B><03>V<EFBFBD> <0E>*<2A> <1C> <14> <11><19>#<23>s<EFBFBD>G<EFBFBD>,<2C>C<EFBFBD><12>'<27>!<21>c<EFBFBD>V<EFBFBD>m<EFBFBD><16> <0A> <0A><13>c<EFBFBD>2<>3<><33> '<27><15>(<28>K<EFBFBD>C<EFBFBD><16> <15><1D>c<EFBFBD>3<EFBFBD><07>0<><03><16>g<EFBFBD>%<25>#<23><16>-<2D><1A>M<EFBFBD>M<EFBFBD>S<EFBFBD>#<23>"6<>7<><37> )<29><1B>}<7D>}<7D>-<2D>-<2D>t<EFBFBD>y<EFBFBD>y<EFBFBD><16>/@<40> A<>A<><41>OJ<01><> <16><>'<19> <15> <14> <15><>>A<01><><19> <11> <10> <11><><1D> <15><14> <15>sH<00>J<02> J
<EFBFBD>$J <0C>J"<08>5,J'<02>.,J6<02> J<05>J<05>' J3<05>2J3<05>6 K<05>Kc<01>.<00>eZdZdZdZd<03>Zd<04>Zdd<05>Zd<06>Zy) <09>portable_instancemethodz_Turn an instancemethod into a (parent, name) pair
to produce a serializable callable.
)r<>ryr@<00> __weakref__c<01>J<00>|j|j|jd<01>S)N<>r<>ryr@rbrKs r0<00> __getstate__z$portable_instancemethod.__getstate__Es!<00><00><1A>k<EFBFBD>k<EFBFBD><18>I<EFBFBD>I<EFBFBD><1A>k<EFBFBD>k<EFBFBD>
<EFBFBD>
r1c<01>Z<00>|d|_|d|_|jdd<04>|_y)Nr<4E>ryr@r_)r<>ryr8r@)rL<00>states r0<00> __setstate__z$portable_instancemethod.__setstate__Ls*<00><00><1B>H<EFBFBD>o<EFBFBD><04> <0B><19>&<26>M<EFBFBD><04> <09><1B>i<EFBFBD>i<EFBFBD><08>"<22>-<2D><04> r1c<01>V<00>|j|_|j|_||_yr+)rr<>rZryr@)rL<00>methr@s r0r<>z portable_instancemethod.__init__Qs<00><00><1A>m<EFBFBD>m<EFBFBD><04> <0B><18>M<EFBFBD>M<EFBFBD><04> <09><1C><04> r1c<01><><00>|j|j<00>t|j|j<00>|i|<02><01>Sr+)r?r@r9r<>ry)rLr<><00>kws r0rz portable_instancemethod.__call__Vs3<00><00>
<EFBFBD> <09> <09>$<24>+<2B>+<2B><1E>.<2E>w<EFBFBD>t<EFBFBD>{<7B>{<7B>D<EFBFBD>I<EFBFBD>I<EFBFBD>.<2E><03>:<3A>r<EFBFBD>:<3A>:r1N)r_) rZr[r\r]r^rcrfr<>rr_r1r0r_r_=s"<00><00><08>
:<3A>I<EFBFBD>
<EFBFBD>.<2E>
<1D>
;r1r_c<01><00><07>|h<01>t|j<00>}|r<>|j<00>}<02>fd<01>|jD<00>}|D]$}|j |<04><00>j |<04><00>&|j dk(s t|d<03>s<01>lt|t<00>s|j<00>n|j|<02>D<00>cgc]}|<05>vr|<05><02>
c}D]$}|j |<06><00>j |<06><00>&|r<01><>t<00><07>Scc}w)a'Return an unordered sequence of all classes related to cls.
Traverses diamond hierarchies.
Fibs slightly: subclasses of builtin types are not returned. Thus
class_hierarchy(class A(object)) returns (A, object), not A plus every
class systemwide that derives from object.
c3<01>,<00>K<00>|] }|<01>vs<01>|<01><01><00> y<00>wr+r_)rr<00>_<>hiers <20>r0rtz"class_hierarchy.<locals>.<genexpr>js<00><><00><><00>9<>K<EFBFBD>q<EFBFBD>1<EFBFBD>D<EFBFBD>=<3D><11>K<EFBFBD>s<00> <01>r<>re) r<><00>__mro__rbrr<>rcr[r<><00>
issubclassr6re)rf<00>processr
r<>r<>rm<00>srns @r0<00>class_hierarchyrs[s<><00><><00> <10>5<EFBFBD>D<EFBFBD><12>3<EFBFBD>;<3B>;<3B><1F>G<EFBFBD>
<11> <13>K<EFBFBD>K<EFBFBD>M<EFBFBD><01>9<>A<EFBFBD>K<EFBFBD>K<EFBFBD>9<><05><16>A<EFBFBD> <13>N<EFBFBD>N<EFBFBD>1<EFBFBD> <1D> <10>H<EFBFBD>H<EFBFBD>Q<EFBFBD>K<EFBFBD><17> <0A><<3C><<3C>:<3A> %<25>W<EFBFBD>Q<EFBFBD>8H<38>-I<> <14> "<22>!<21>T<EFBFBD>*<2A><12> <20> <20>"<22><16>%<25>%<25>a<EFBFBD>(<28>)<29>
<EFBFBD>)<29><12>
<11><04>}<7D> <0E>)<29>
<EFBFBD>A<EFBFBD> <14>N<EFBFBD>N<EFBFBD>1<EFBFBD> <1D> <10>H<EFBFBD>H<EFBFBD>Q<EFBFBD>K<EFBFBD>
<EFBFBD> <12>, <10><04>:<3A><15><>
s<00>9 C>c#<01><>K<00>t|<00>}|D]6}|jD]%}||jvs<01>||j|f<02><01><00>6<00>8y<01>w)z<>iterate all the keys and attributes associated
with a class, without using getattr().
Does not use getattr() so that class-sensitive
descriptors (i.e. property.__get__()) are not called.
N)<03>dirror7)rf<00>keys<79>keyr
s r0<00>iterate_attributesrx<00>sK<00><00><><00> <0F>s<EFBFBD>8<EFBFBD>D<EFBFBD><13><03><14><1B><1B>A<EFBFBD><12>a<EFBFBD>j<EFBFBD>j<EFBFBD> <20><1A>A<EFBFBD>J<EFBFBD>J<EFBFBD>s<EFBFBD>O<EFBFBD>,<2C>,<2C><15><1D><14>s
<00>.A
<01>A
c<01><><00>|r|}nN|<02>d}t|<01>D<00>cgc]6}|jd<03>r#|jd<03>rt||<07>s||vr|<07><02>8}}|D]<5D>} t ||<08>} t| d<04>s<01>t | d| <09>} t t j| <09>}
tj|
<EFBFBD>} tj| d<00>} tj| ddd<00>} d
t<00>z}|duxr||ixsi}t||<0F> |
j||_t!||||<00><00><>ycc}w#t$rY<00><>wxYw#t$rd} d } Y<00>rwxYw#t$rY<00>EwxYw) z9Automates delegation of __specials__ for a proxying type.N)r^<00>__del__<5F>__getattribute__<5F> __metaclass__rcrfr<>rr<>rrz(self, *args, **kw)z (*args, **kw)z?def %(method)s%(fn_args)s: return %(name)s.%(method)s%(d_args)s)ru<00>
startswith<EFBFBD>endswithr<68>r9r r<>r<>r<>rr<>r+r<00>localsr<73>r<><00>setattr)<10>into_cls<6C>from_cls<6C>skip<69>onlyry<00> from_instance<63>dundersrCr2<00>maybe_fnr<6E>r<><00>fn_args<67>d_args<67>pyr<79>s r0<00>monkeypatch_proxied_specialsr<73><00>s<><00><00> <0C><16><07> <0F><<3C><0E>D<EFBFBD><19><18>]<5D> 
<EFBFBD>"<22><01><11> <0C> <0C>T<EFBFBD>"<22><15>J<EFBFBD>J<EFBFBD>t<EFBFBD>$<24><1F><08>!<21>,<2C><15>T<EFBFBD>M<EFBFBD> <0E>"<22> <10> 
<EFBFBD><1A><06> <15><1E>x<EFBFBD><16>0<>H<EFBFBD><1A>8<EFBFBD>Z<EFBFBD>0<><18><1E>x<EFBFBD><1A>X<EFBFBD>><3E>H<EFBFBD><15>e<EFBFBD>(<28>(<28>(<28>3<>B<EFBFBD> %<25><19>0<>0<><12>4<>D<EFBFBD><1C>2<>2<>4<EFBFBD><01>7<EFBFBD>;<3B>G<EFBFBD><1B>1<>1<>$<24>q<EFBFBD>'<27>!<21>"<22>+<2B>><3E>F<EFBFBD>  3<>5;<3B>X<EFBFBD> ><3E> <0B> <1A><14> %<25> ?<3F>4<EFBFBD><1D>*?<3F> E<>2<EFBFBD> <0C> <0A>R<EFBFBD><13> <0A> <11>')<29><EFBFBD><EFBFBD>C<EFBFBD><06>K<EFBFBD> $<24> <10><08>&<26>#<23>f<EFBFBD>+<2B>.<2E>?<1A><> 
<EFBFBD><EFBFBD>&<1E> <15> <14> <15><> <19> %<25>+<2B>G<EFBFBD>$<24>F<EFBFBD> %<25><><1E> <11> <10> <11>sB<00>;D2<04>D7<02>3'D7<02>AE<02> E<02>7 E<05>E<05> E<05>E<05> E%<05>$E%c<01>6<00>t|d|<00>t|d|<01>uS)z;Return True if the two methods are the same implementation.r<>)r9)<02>meth1<68>meth2s r0<00>methods_equivalentr<74><00>s(<00><00> <13>5<EFBFBD>*<2A>e<EFBFBD> ,<2C><07> <0A>z<EFBFBD>5<EFBFBD>1<06> <06>r1c <01><><00>|s |s td<01><00>t|t<00>rt||<01>r|St|xs+t |<01>D<00>cgc]}|j d<02>r<01>|<04><02>c}<04>}tt |<00><00>}t j}t|t<00>r|}n(|st<00>}t j}n t|<03>}||j|<05>|<03>r|St|t<00>s<|t juxrdxsd}t|<00>d|<08>ddj|<05><00><01><05><00>Gd<08>d <09>} |rd
|jz| _ t<00>}
t|<00>D]Z\} } | |vrtd | z<00><00>t| <0C>st| <0B>d | <0C>d <0A><04><00>t| | t!| <0C><00>|
j#| <0B><00>\||
|<03>r| Stddj||
z
<00>z<00><00>cc}w)a<>Ensure basic interface compliance for an instance or dict of callables.
Checks that ``obj`` implements public methods of ``cls`` or has members
listed in ``methods``. If ``required`` is not supplied, implementing at
least one interface method is sufficient. Methods present on ``obj`` that
are not in the interface are ignored.
If ``obj`` is a dict and ``dict`` does not meet the interface
requirements, the keys of the dictionary are inspected. Keys present in
``obj`` that are not in the interface will raise TypeErrors.
Raises TypeError if ``obj`` does not meet the interface criteria.
In all passing cases, an object with callable members is returned. In the
simple case, ``obj`` is returned as-is; if dict processing kicks in then
an anonymous class is returned.
obj
A type, instance, or dictionary of callables.
cls
Optional, a type. All public methods of cls are considered the
interface. An ``obj`` instance of cls will always pass, ignoring
``required``..
methods
Optional, a sequence of method names to consider as the interface.
required
Optional, a sequence of mandatory implementations. If omitted, an
``obj`` that provides at least one interface method is considered
sufficient. As a convenience, required may be a type, in which case
all public methods of the type are required.
z2a class or collection of method names are requiredrmzany ofzall ofz does not implement z: rIc<01><00>eZdZdZy)<03>(as_interface.<locals>.AnonymousInterfacezA callable-holding shell.N<>rZr[r\r]r_r1r0<00>AnonymousInterfacer<65>s<00><00>'r1r<><00> Anonymousz%r: unknown in this interfacerz is not callablez,dictionary does not contain required keys %s)rr5r6rarur}<00>operator<6F>ge<67>gt<67> intersectionr<6E>rurZ<00>dictlike_iteritemsr*r<><00> staticmethodrc) r/rfr;<00>requiredrC<00> interface<63> implemented<65>complies<65> qualifierr<72><00>foundr2r<>s r0<00> as_interfacer<65><00>s<><00><00>B <0F>w<EFBFBD><17>L<>M<>M<><11>#<23>t<EFBFBD><1C><1A>C<EFBFBD><13>!5<><12>
<EFBFBD><13>G<EFBFBD>M<>3<EFBFBD>s<EFBFBD>8<EFBFBD>M<>8<EFBFBD>a<EFBFBD>1<EFBFBD><<3C><<3C><03>;L<><01>8<EFBFBD>M<>N<>I<EFBFBD><15>c<EFBFBD>#<23>h<EFBFBD>-<2D>K<EFBFBD><17>{<7B>{<7B>H<EFBFBD><11>(<28>D<EFBFBD>!<21><1C><08> <15><16>5<EFBFBD><08><1B>;<3B>;<3B><08><16>x<EFBFBD>=<3D><08><0F> <0B>(<28>(<28><19>3<>X<EFBFBD>><3E><12>
<EFBFBD> <16>c<EFBFBD>4<EFBFBD> <20><1C><08> <0B> <0B>+<2B>8<><08>D<>H<EFBFBD> <09><17><12>I<EFBFBD>t<EFBFBD>y<EFBFBD>y<EFBFBD><19>3<> 5<>
<EFBFBD>
<EFBFBD>
(<28>(<28> <0B>&1<>C<EFBFBD>L<EFBFBD>L<EFBFBD>&@<40><1A>#<23> <0F>E<EFBFBD>E<EFBFBD>*<2A>3<EFBFBD>/<2F> <0C><06><04> <11><19> "<22><1B>;<3B>f<EFBFBD>D<>E<> E<><17><04>~<7E><1B>v<EFBFBD>t<EFBFBD>D<>E<> E<><0F>"<22>F<EFBFBD>L<EFBFBD><14>,><3E>?<3F> <0A> <09> <09>&<26><19> 0<><10><05>x<EFBFBD> <20>!<21>!<21>
<13>6<>
<0E>)<29>)<29>H<EFBFBD>u<EFBFBD>$<24>
%<25> &<26> <06><06><>S Ns <00>G(<08>G(<08>_GFDzgeneric_fn_descriptor[Any]c<01><><00>eZdZUdZded<ded<ded<ddd <09>Zedd
<EFBFBD><04>Zedd <0B><04>Zdd <0C>Zerdd <0A>Z dd<0E>Z
dd<0F>Z e dd<10><04>Z y)<1A>generic_fn_descriptoragDescriptor which proxies a function when the attribute is not
present in dict
This superclass is organized in a particular way with "memoized" and
"non-memoized" implementation classes that are hidden from type checkers,
as Mypy seems to not be able to handle seeing multiple kinds of descriptor
classes used for the same attribute.
<20>Callable[..., _T_co]<5D>fget<65> Optional[str]r]r@rZNc<01>^<00>||_|xs |j|_|j|_yr+<00>r<>r]rZ<00>rLr<><00>docs r0r<>zgeneric_fn_descriptor.__init__Ds$<00><00><18><04> <09><1A>*<2A>d<EFBFBD>l<EFBFBD>l<EFBFBD><04> <0C><1C> <0A> <0A><04> r1c<01><00>yr+r_<00>rLr/rfs r0<00>__get__zgeneric_fn_descriptor.__get__Is<00><00>:=r1c<01><00>yr+r_r<>s r0r<>zgeneric_fn_descriptor.__get__Ls<00><00>7:r1c<01><00>t<00><00>r+<00><01>NotImplementedErrorr<72>s r0r<>zgeneric_fn_descriptor.__get__O<00> <00><00>!<21>#<23>#r1c<01><00>yr+r_<00>rL<00>instancerQs r0<00>__set__zgeneric_fn_descriptor.__set__Ts<00><00>cr1c<01><00>yr+r_)rLr<>s r0<00>
__delete__z generic_fn_descriptor.__delete__Vs<00><00>Sr1c<01><00>t<00><00>r+r<><00>rLr/s r0<00>_resetzgeneric_fn_descriptor._resetXr<>r1c<01><00>t<00><00>r+r<><00>rfr/rys r0<00>resetzgeneric_fn_descriptor.reset[s <00><00>!<21>#<23>#r1r+)r<>r<>r<>r<>)rLr<>r/rYrfrrXr<>)r/r1rfrrXr")rLr<>r/rrfrrXzUnion[_GFD, _T_co]<5D>r<>rrQrrXrY<00>r<>rrXrY)r/rrXrY)r/rryr@rXrY)rZr[r\r]r3r<>rr<>rr<>r<>r<><00> classmethodr<64>r_r1r0r<>r<>5sf<00><00><08> <1F><1E> <1A><1A><11>M<EFBFBD>&<26>
<0E>=<3D><0E>=<3D> <0A>:<3A><0E>:<3A>$<24><15>A<>8<>$<24><11>$<24><11>$r1r<>c<01><00>eZdZdZesd<02>Zyy)<04>_non_memoized_propertyz<79>a plain descriptor that proxies a function.
primary rationale is to provide a plain attribute that's
compatible with memoized_property which is also recognized as equivalent
by mypy.
c<01>,<00>|<01>|S|j|<01>Sr+<00>r<>r<>s r0r<>z_non_memoized_property.__get__ks<00><00><12>{<7B><1B> <0B><17>9<EFBFBD>9<EFBFBD>S<EFBFBD>><3E> !r1N)rZr[r\r]rr<>r_r1r0r<>r<>`s<00><00><08> <19> "<22> r1r<>c<01>0<00>eZdZdZesd<02>Zd<03>Zed<04><00>Zy)<06>_memoized_propertyz2A read-only @property that is only evaluated once.c<01>b<00>|<01>|S|j|<01>x|j|j<}|Sr+)r<>r7rZ<00>rLr/rf<00>results r0r<>z_memoized_property.__get__vs0<00><00><12>{<7B><1B> <0B>37<33>9<EFBFBD>9<EFBFBD>S<EFBFBD>><3E> A<>C<EFBFBD>L<EFBFBD>L<EFBFBD><14><1D><1D> '<27>&<26><19>Mr1c<01>D<00>tj||j<00>yr+)r<>r<>rZr<>s r0r<>z_memoized_property._reset|s<00><00><1A> <20> <20><13>d<EFBFBD>m<EFBFBD>m<EFBFBD>4r1c<01><<00>|jj|d<00>yr+)r7rbr<>s r0r<>z_memoized_property.resets<00><00> <0B> <0C> <0C><18><18><14>t<EFBFBD>$r1N) rZr[r\r]rr<>r<>r<>r<>r_r1r0r<>r<>qs&<00><00><<3C> <18> <1A> 5<><11>%<25><11>%r1r<>c<01>&<00><00><00>fd<01>}t|<01><00>S)z<>Decorate a method memoize its return value.
Best applied to no-arg methods: memoization is not sensitive to
argument values, and will always return the same value even when
called with different arguments.
c<01><><00><01><04><00>|g|<01><01>i|<02><01><01><04>fd<01>}<03>j|_<00>j|_||j<00>j<<00>S)Nc<01><00><01><00>Sr+r_<00><03>arjr<>s <20>r0<00>memoz6memoized_instancemethod.<locals>.oneshot.<locals>.memo<6D>s<00><><00><19>Mr1)rZr]r7<00>rLrrjr<>r<>r<>s @<40>r0<00>oneshotz(memoized_instancemethod.<locals>.oneshot<6F>sK<00><><00><13>D<EFBFBD>&<26>4<EFBFBD>&<26>2<EFBFBD>&<26><06> <1A><1B> <0B> <0B><04> <0A><19>z<EFBFBD>z<EFBFBD><04> <0C>%)<29><04> <0A> <0A>b<EFBFBD>k<EFBFBD>k<EFBFBD>"<22><15> r1r)r<>r<>s` r0<00>memoized_instancemethodr<64><00>s<00><><00> <16> <1A>'<27>2<EFBFBD> &<26>&r1c<01>x<00>eZdZUdZesdZe<06>Zded<d d<05>Z d d<06>Z
d d<07>Z Gd<08>d e e <00>Zedd
<EFBFBD><04>Zy )<0F> HasMemoizedzA mixin class that maintains the names of memoized elements in a
collection for easy cache clearing, generative, etc.
r_zFrozenSet[str]<5D>_memoized_keysc<01>^<00>|jD]}|jj|d<00><00> yr+)r<>r7rb<00>rLr<>s r0<00>_reset_memoizationszHasMemoized._reset_memoizations<6E>s&<00><00><18>'<27>'<27>D<EFBFBD> <10>M<EFBFBD>M<EFBFBD> <1D> <1D>d<EFBFBD>D<EFBFBD> )<29>(r1c<01>F<00>|jD]}||jvr<01>J<00>yr+)r<>r7r<>s r0<00>_assert_no_memoizationsz#HasMemoized._assert_no_memoizations<6E>s$<00><00><18>'<27>'<27>D<EFBFBD><17>t<EFBFBD>}<7D>}<7D>,<2C> ,<2C>,<2C>(r1c<01>N<00>||j|<|xj|hzc_yr+)r7r<>)rLrwrQs r0<00>_set_memoized_attributez#HasMemoized._set_memoized_attribute<74>s#<00><00>"<22><04> <0A> <0A>c<EFBFBD><1A> <0C><1B><1B><03>u<EFBFBD>$<24>r1c<01>d<00>eZdZUdZded<ded<ded<d dd <09>Zedd
<EFBFBD><04>Zedd <0B><04>Zd <0C>Zy)<11>HasMemoized.memoized_attributezTA read-only @property that is only evaluated once.
:meta private:
<20>Callable[..., _T]r<>r<>r]r@rZNc<01>^<00>||_|xs |j|_|j|_yr+r<>r<>s r0r<>z'HasMemoized.memoized_attribute.__init__<5F>s$<00><00><1C>D<EFBFBD>I<EFBFBD><1E>.<2E>$<24>,<2C>,<2C>D<EFBFBD>L<EFBFBD> <20>M<EFBFBD>M<EFBFBD>D<EFBFBD>Mr1c<01><00>yr+r_r<>s r0r<>z&HasMemoized.memoized_attribute.__get__<5F>s<00><00><?r1c<01><00>yr+r_r<>s r0r<>z&HasMemoized.memoized_attribute.__get__<5F>s<00><00>58r1c<01><><00>|<01>|S|j|<01>x|j|j<}|xj|jhzc_|Sr+)r<>r7rZr<>r<>s r0r<>z&HasMemoized.memoized_attribute.__get__<5F>sG<00><00><12>{<7B><1B> <0B>37<33>9<EFBFBD>9<EFBFBD>S<EFBFBD>><3E> A<>C<EFBFBD>L<EFBFBD>L<EFBFBD><14><1D><1D> '<27>&<26> <0F> <1E> <1E>4<EFBFBD>=<3D>=<3D>/<2F> 1<> <1E><19>Mr1r+)r<>r<>r<>r<>)rLr'r/rYrfrrXr')r/rrfrrXr!)rZr[r\r]r3r<>rr<>r_r1r0<00>memoized_attributer<65><00>sB<00><00> <0C>  <20><1F><1E><1E><15> <0A> *<2A>
<12>?<3F>
<12>?<3F> <11>8<>
<12>8<> r1r<>c<01>(<00><01>d<02>fd<01> }t|<02><01>S)zMDecorate a method memoize its return value.
:meta private:
c<01><><00><01><04><00>|g|<01><01>i|<02><01><01><04>fd<01>}<03>j|_<00>j|_||j<00>j<|xj<00>jhzc_<00>S)Nc<01><00><01><00>Sr+r_r<>s <20>r0r<>zBHasMemoized.memoized_instancemethod.<locals>.oneshot.<locals>.memo<6D>s<00><><00><1D> r1)rZr]r7r<>r<>s @<40>r0r<>z4HasMemoized.memoized_instancemethod.<locals>.oneshot<6F>sb<00><><00><17><04>*<2A>t<EFBFBD>*<2A>r<EFBFBD>*<2A>F<EFBFBD> <1E><1F>K<EFBFBD>K<EFBFBD>D<EFBFBD>M<EFBFBD><1D>:<3A>:<3A>D<EFBFBD>L<EFBFBD>)-<2D>D<EFBFBD>M<EFBFBD>M<EFBFBD>"<22>+<2B>+<2B> &<26> <10> <1F> <1F>B<EFBFBD>K<EFBFBD>K<EFBFBD>=<3D> 0<> <1F><19>Mr1)rLrrrrjrrXrr)rfr<>r<>s ` r0r<>z#HasMemoized.memoized_instancemethod<6F>s<00><><00>
<1A><1E>g<EFBFBD>r<EFBFBD>*<2A>*r1NrW)rwr@rQrrXrY<00>r<>r$rXr$)rZr[r\r]rr^<00> frozensetr<74>r3r<>r<>r<><00>memoized_propertyr!r<>r<>r<>r_r1r0r<>r<><00>sT<00><00><08>
<19><17> <09>%.<2E>[<5B>N<EFBFBD>N<EFBFBD>0<>*<2A>-<2D>%<25><1A>.<2E>r<EFBFBD>2<><1A>:<11>+<2B><11>+r1r<>c<01>"<00>eZdZdZdZd<03>Zdd<04>Zy)<07> MemoizedSlotsz<73>Apply memoized items to an object using a __getattr__ scheme.
This allows the functionality of memoized_property and
memoized_instancemethod to be available to a class using __slots__.
r_c<01><00>t|<01><00>r+)r<>)rLrws r0<00>_fallback_getattrzMemoizedSlots._fallback_getattrs <00><00><1C>S<EFBFBD>!<21>!r1c<01><><00><00><01><04><00>jd<01>s<11>jd<02>r t<00><01><00>t<00>jd<01><01><00><02>r#t <00>d<01><01><00><02><00>}t <00><00>|<02>|St<00>jd<02><01><00><02>r)t <00>d<02><01><00><02><00><04><04><01>fd<03>}<03>j |_|S<00>j<00><01>S)N<>_memoized_attr_<72>_memoized_method_c<01><><00><03><03><00>|i|<01><01><01><03>fd<01>}<02>j|_<00>j|_t<00><06>|<02><00>S)Nc<01><00><01><00>Sr+r_r<>s <20>r0r<>z8MemoizedSlots.__getattr__.<locals>.oneshot.<locals>.memo)s<00><><00>!<21>Mr1)rZr]r<>)rrjr<>r<>r<>rwrLs @<40><><EFBFBD>r0r<>z*MemoizedSlots.__getattr__.<locals>.oneshot&s><00><><00><1B>T<EFBFBD><1F>R<EFBFBD><1F><06>"<22>!#<23> <0B> <0B><04> <0A>!<21>z<EFBFBD>z<EFBFBD><04> <0C><17><04>c<EFBFBD>4<EFBFBD>(<28><1D> r1)r}r<>r<>r}r9r<>r]r<>)rLrwrQr<>r<>s`` @r0<00> __getattr__zMemoizedSlots.__getattr__s<><00><><00> <0E>><3E>><3E>+<2B> ,<2C><03><0E><0E> <1F>1
<EFBFBD>!<21><13>%<25> %<25><15>T<EFBFBD>^<5E>^<5E><EFBFBD>s<EFBFBD>e<EFBFBD>%<<3C> =<3D>:<3A>G<EFBFBD>D<EFBFBD>O<EFBFBD>C<EFBFBD>5<EFBFBD>"9<>:<3A><<3C>E<EFBFBD> <13>D<EFBFBD>#<23>u<EFBFBD> %<25><18>L<EFBFBD> <14>T<EFBFBD>^<5E>^<5E>'8<><13><05>%><3E> ?<3F><18><14>!2<>3<EFBFBD>%<25>8<>9<>B<EFBFBD> <1E>!<21>j<EFBFBD>j<EFBFBD>G<EFBFBD>O<EFBFBD><1A>N<EFBFBD><17>)<29>)<29>#<23>.<2E> .r1N)rwr@rXr)rZr[r\r]r^r<>r<>r_r1r0r<>r<>
s<00><00><08><13>I<EFBFBD>"<22>/r1r<>c<01><><00>t|t<00>r6|j<00>j<00>}|dvry|dvryt d|z<00><00>t |<00>S)N)<06>true<75>yes<65>on<6F>y<>t<>1T)<06>false<73>no<6E>offrs<00>f<>0FzString is not true/false: %r)r5r@<00>striprq<00>
ValueErrorr<EFBFBD>r.s r0<00>asboolr8sS<00><00><11>#<23>s<EFBFBD><1B><11>i<EFBFBD>i<EFBFBD>k<EFBFBD><1F><1F>!<21><03> <0E>6<> 6<><17> <10>9<> 9<><18><1C>;<3B>c<EFBFBD>A<>B<> B<> <0F><03>9<EFBFBD>r1c<01><00><00>d<02>fd<01> }|S)zqReturn a callable that will evaluate a string as
boolean, or one of a set of "alternate" string values.
c<01>&<00><01>|<00>vr|St|<00>Sr+)r)r/<00>texts <20>r0<00> bool_or_valuez"bool_or_str.<locals>.bool_or_valueJs<00><><00> <0E>$<24>;<3B><16>J<EFBFBD><19>#<23>;<3B> r1)r/r@rXzUnion[str, bool]r_)r r s` r0<00> bool_or_strr Ds<00><><00> <1F> <19>r1c<01> <00>|<00>|St|<00>S)zCoerce to integer.)<01>int)rQs r0<00>asintrSs<00><00> <0A>}<7D><14> <0C> <0E>u<EFBFBD>:<3A>r1c<01><><00>|<04>|}||vrQt|t<00>rt|||<02>s1||<00>+|tur|rt||<00>||<y|||<00>||<yyyy)z<>If 'key' is present in dict 'kw', coerce its value to type 'type\_' if
necessary. If 'flexi_bool' is True, the string '0' is considered false
when coercing to boolean.
N)r5r6r<>r)rjrwrP<00>
flexi_bool<EFBFBD>dests r0<00>coerce_kw_typer[ss<00><00> <0C>|<7C><11><04> <0C>r<EFBFBD> <09><1B>E<EFBFBD>4<EFBFBD>(<28>
<EFBFBD>2<EFBFBD>c<EFBFBD>7<EFBFBD>E<EFBFBD>0J<EFBFBD> <0E>s<EFBFBD>G<EFBFBD> <1F> <10>D<EFBFBD>=<3D>Z<EFBFBD><1E>r<EFBFBD>#<23>w<EFBFBD><0F>D<EFBFBD><13>I<EFBFBD><1D>b<EFBFBD><13>g<EFBFBD><0E>D<EFBFBD><13>I<EFBFBD> <20>1K<01> r1c<01>J<00><00>t|<01>}|ft<00>fd<01>|D<00><00>zS)zbProduce a tuple structure that is cacheable using the __dict__ of
obj to retrieve values
c3<01>^<00>K<00>|]$}|<01>jvs<01>|<01>j|f<02><01><00>&y<00>wr+<00>r7<00>rr<00>kr/s <20>r0rtz"constructor_key.<locals>.<genexpr>{s-<00><><00><><00><06>&+<2B><11>q<EFBFBD>C<EFBFBD>L<EFBFBD>L<EFBFBD>/@<40><11>C<EFBFBD>L<EFBFBD>L<EFBFBD><11>O<EFBFBD><1C>e<EFBFBD><65><00>-<01>-)rr<>)r/rfr<>s` r0<00>constructor_keyrus2<00><><00>
<1B>3<EFBFBD> <1F>E<EFBFBD> <0F>6<EFBFBD>E<EFBFBD><06>&+<2B><06><06> <06>r1c<01>|<00><00>t|<01>}|j<00>fd<01>|j|<03>D<00><00>||i|<03><01>S)z<>Instantiate cls using the __dict__ of obj as constructor arguments.
Uses inspect to match the named arguments of ``cls``.
c3<01>^<00>K<00>|]$}|<01>jvs<01>|<01>j|f<02><01><00>&y<00>wr+rrs <20>r0rtz#constructor_copy.<locals>.<genexpr><3E>s.<00><><00><><00><06>&:<3A><11>a<EFBFBD>3<EFBFBD><<3C><<3C>>O<><11>C<EFBFBD>L<EFBFBD>L<EFBFBD><11>O<EFBFBD><1C>&:<3A>r)rr?<00>
difference)r/rfrrjr<>s` r0<00>constructor_copyr<00>sE<00><><00> <1B>3<EFBFBD> <1F>E<EFBFBD><06>I<EFBFBD>I<EFBFBD><06>&+<2B>&6<>&6<>r<EFBFBD>&:<3A><06><06> <0F><04> <1B><02> <1B>r1c<01>h<00><01><02>tj<00><00>tjd<01><00><01><01>fd<02>}|S)z%Return a threadsafe counter function.rc<01>J<00><02><00>5t<00><00>cddd<00>S#1swYyxYwr+)<01>next)<02>counter<65>locks<00><>r0<00>_nextzcounter.<locals>._next<78>s<00><><00> <11><17><07>=<3D><12>T<EFBFBD>T<EFBFBD>s<00> <03>")<04> threading<6E>Lockr<6B><00>count)r%r#r$s @@r0r#r#<00>s+<00><><00> <15>><3E>><3E> <1B>D<EFBFBD><17>o<EFBFBD>o<EFBFBD>a<EFBFBD> <20>G<EFBFBD>!<21> <11>Lr1c<01><><00>t|d<01>r8|j<00> t|jt<00>rtS|jSt |t
<00>rtnt}||t <00>rt S||t<00>rtS||t<00>rtSt|d<02>rt St|d<03>rtSt|d<04>rtS|S)z<>Given an instance or class, guess if it is or is acting as one of
the basic collection types: list, set and dict. If the __emulates__
property is present, return that preferentially.
<20> __emulates__r<5F>rcra)r<>r*rprar5r6r<>r<>)<03>specimenrY<00>isas r0<00>duck_type_collectionr-<00>s<><00><00><0F>x<EFBFBD><1E>(<28> <13> <20> <20> ,<2C><1A> <14> !<21> !<21>3<EFBFBD>2
<EFBFBD><17>J<EFBFBD><1B>(<28>(<28> (<28>"<22>8<EFBFBD>T<EFBFBD>2<>*<2A>
<EFBFBD>C<EFBFBD>
<EFBFBD>8<EFBFBD>T<EFBFBD><1A><13> <0B> <0C>X<EFBFBD>s<EFBFBD> <1B><12>
<EFBFBD> <0C>X<EFBFBD>t<EFBFBD> <1C><13> <0B><0E>x<EFBFBD><18>"<22><13> <0B> <10><18>5<EFBFBD> !<21><12>
<EFBFBD> <10><18>5<EFBFBD> !<21><13> <0B><16>r1c
<01>
<00>t||<01>r|St|t<00>r>tjd|<02>ddj d<04>|D<00><00><00>dt |<00><00>d<06><07><00>tjd|<02>d|<01>dt |<00><00>d<06><07><00>) Nz
Argument 'z ' is expected to be one of type z or c3<01>&K<00>|] }d|z<00><01><00> y<01>w)z'%s'Nr_)rrr<>s r0rtz"assert_arg_type.<locals>.<genexpr><3E>s<00><00><><00>$A<><17>A<EFBFBD>V<EFBFBD>a<EFBFBD>Z<EFBFBD><17>s<00>z, got '<27>'z' is expected to be of type 'z', got ')r5r<>r <00> ArgumentErrorrur6)r<><00>argtyperys r0<00>assert_arg_typer3<00>su<00><00><12>#<23>w<EFBFBD><1F><12>
<EFBFBD> <15>g<EFBFBD>u<EFBFBD> %<25><15>#<23>#<23><17><16><1B><1B>$A<><17>$A<>A<>4<EFBFBD><03>9<EFBFBD>N<01><0E> <0E>
<16>#<23>#<23><17><17>$<24>s<EFBFBD>)<29>-<2D><0E> r1c <01>J<00><00><02>t<00>d<01>rt<00>j<00><00>St<00>dt<00>dd<04><00><00><02><02>t d<05>z<00><00>t<00>d<06>r <0A><00>fd<07>}|<01>St<00>d<08>r"t <00>fd <09><08>j <00>D<00><00>St d<05>z<00><00>)
z?Return a (key, value) iterator for almost any dict-like object.rO<00> __getitem__r8NzObject '%r' is not dict-like<6B>iterkeysc3<01>X<00>K<00><00>j<00>D]}<00><02>J<00>|<00>|<00>f<02><01><00>y<00>wr+)r6)rw<00>dictlike<6B>getters <20><>r0<00>iteratorz$dictlike_iteritems.<locals>.iterator<6F>s5<00><><00><><00><1F>(<28>(<28>*<2A><03><1D>)<29>)<29>)<29><19>6<EFBFBD>#<23>;<3B>&<26>&<26>+<2B>s<00>'*rvc3<01>2<00>K<00>|]}|<00>|<01>f<02><01><00>y<00>wr+r_)rrrwr9s <20>r0rtz%dictlike_iteritems.<locals>.<genexpr><3E>s<00><><00><><00>B<>/<2F>3<EFBFBD>S<EFBFBD>&<26><13>+<2B>&<26>/<2F>s<00>)r<>r<>rOr9r<00>iterrv)r8r:r9s` @r0r<>r<><00>s<><00><><00><0F>x<EFBFBD><17>!<21><13>H<EFBFBD>N<EFBFBD>N<EFBFBD>$<24>%<25>%<25> <14>X<EFBFBD>}<7D>g<EFBFBD>h<EFBFBD><05>t<EFBFBD>.L<> M<>F<EFBFBD> <0A>~<7E><17>6<><18>A<>B<>B<><0E>x<EFBFBD><1A>$<24> '<27>
<18>z<EFBFBD><19> <10><18>6<EFBFBD> "<22><13>B<>(<28>-<2D>-<2D>/<2F>B<>B<>B<><17>6<><18>A<>B<>Br1c<01>:<00><00>eZdZUdZded<d<06>fd<04> Zddd<05>Z<06>xZS) <09> classpropertyaAA decorator that behaves like @property except that operates
on classes rather than instances.
The decorator is currently special when using the declarative
module, but note that the
:class:`~.sqlalchemy.ext.declarative.declared_attr`
decorator should be used for this purpose with declarative.
<20>Callable[[Any], Any]r<>c<01>N<00><01>t<00>|<00>|g|<02><01>i|<03><01>|j|_yr+)<03>superr<72>r])rLr<>r<>rjr}s <20>r0r<>zclassproperty.__init__<5F>s%<00><><00> <0A><07><18><14>*<2A><03>*<2A>r<EFBFBD>*<2A><1B>|<7C>|<7C><04> r1c<01>$<00>|j|<02>Sr+r<>r<>s r0r<>zclassproperty.__get__<5F>s<00><00><13>y<EFBFBD>y<EFBFBD><13>~<7E>r1)r<>r?r<>rrjrr+)r/rrfzOptional[type]rXr)rZr[r\r]r3r<>r<><00> __classcell__<5F>r}s@r0r>r><00>s<00><><00><08> <1F><1E>$<24><1E>r1r>c<01>$<00>eZdZdd<01>Zdd<02>Zdd<03>Zy)<08>hybridpropertyc<01> <00>||_||_yr+)r <00>clslevel<65>rLr s r0r<>zhybridproperty.__init__<5F>s<00><00><18><04> <09><1C><04> r1c<01>N<00>|<01>|j|<02>}|S|j|<01>Sr+<00>rHr <00>rLr<><00>owner<65>clsvals r0r<>zhybridproperty.__get__<00>*<00><00> <13> <1B><19>]<5D>]<5D>5<EFBFBD>)<29>F<EFBFBD><19>M<EFBFBD><17>9<EFBFBD>9<EFBFBD>X<EFBFBD>&<26> &r1c<01><00>||_|Sr+<00>rHrIs r0<00>
classlevelzhybridproperty.classlevel
<00><00><00><1C><04> <0A><13> r1N<>r r<><00>r<>rrMrrXr!)r r{rXzhybridproperty[_T])rZr[r\r<>r<>rRr_r1r0rFrF<00>s<00><00><1D>'<27>r1rFc<01>4<00>eZdZdd<01>Zdd<02>Zd d<03>Zd
d<04>Zd
d<05>Zy) <0B>rw_hybridpropertyc<01>.<00>||_||_d|_yr+)r rH<00>setfnrIs r0r<>zrw_hybridproperty.__init__s<00><00><18><04> <09><1C><04> <0A>37<33><04>
r1c<01>N<00>|<01>|j|<02>}|S|j|<01>Sr+rKrLs r0r<>zrw_hybridproperty.__get__rOr1c<01>D<00>|j<00>J<00>|j||<02>yr+<00>rYr<>s r0r<>zrw_hybridproperty.__set__s <00><00><13>z<EFBFBD>z<EFBFBD>%<25>%<25>%<25> <0C>
<EFBFBD>
<EFBFBD>8<EFBFBD>U<EFBFBD>#r1c<01><00>||_|Sr+r\rIs r0<00>setterzrw_hybridproperty.setter s<00><00><19><04>
<EFBFBD><13> r1c<01><00>||_|Sr+rQrIs r0rRzrw_hybridproperty.classlevel$rSr1NrTrUr<>)r r{rXzrw_hybridproperty[_T])rZr[r\r<>r<>r<>r^rRr_r1r0rWrWs<00><00>8<>
'<27>$<24><14>r1rWc<01>(<00>eZdZdZdd<02>Zdd<03>Zdd<04>Zy) <09> hybridmethodz/Decorate a function as cls- or instance- level.c<01>.<00>|x|_|_||_yr+)r r<>rHrIs r0r<>zhybridmethod.__init__,s<00><00>$(<28>(<28><04> <09>D<EFBFBD>M<EFBFBD><1C><04> r1c<01><><00>|<01>&|jj||j<00>S|jj||<02>Sr+)rHr<>r}r )rLr<>rMs r0r<>zhybridmethod.__get__0s:<00><00> <13> <1B><17>=<3D>=<3D>(<28>(<28><15><05><0F><0F>@<40> @<40><17>9<EFBFBD>9<EFBFBD>$<24>$<24>X<EFBFBD>u<EFBFBD>5<> 5r1c<01><00>||_|Sr+rQrIs r0rRzhybridmethod.classlevel6rSr1NrT)r<>rrMrrXr<>)r r{rXzhybridmethod[_T])rZr[r\r]r<>r<>rRr_r1r0rara)s<00><00>9<><1D>6<> r1rac<01>z<00>eZdZUdZded<iZded<ej<00>Z d d d<07>Z d<08>Z
d <09>Z d
<EFBFBD>Z y) <0A>symbolaIA constant symbol.
>>> symbol("foo") is symbol("foo")
True
>>> symbol("foo")
<symbol 'foo>
A slight refinement of the MAGICCOOKIE=object() pattern. The primary
advantage of symbol() is its repr(). They are also singletons.
Repeated calls of symbol('name') will all return the same instance.
r@ryzDict[str, symbol]<5D>symbolsNc<01>f<00>|j5|jj|<01>}|<04>Yt|t<00>sJ<00>|<03> t |<01>}t jt|<03>}||_ |r||_
||j|<n|r||k7rtd|<01>d|<03><00><04><00>|cddd<00>S#1swYyxYw)Nz#Can't replace canonical symbol for z with new int value ) <0C>_lockrgr8r5r@<00>hashr<00>__new__rfryr]r)rfryr<><00> canonicalr<6C>s r0rkzsymbol.__new__Os<><00><00> <11>Y<EFBFBD>Y<EFBFBD><15>+<2B>+<2B>/<2F>/<2F>$<24>'<27>C<EFBFBD><12>{<7B>!<21>$<24><03>,<2C>,<2C>,<2C><1C>$<24> $<24>T<EFBFBD>
<EFBFBD>I<EFBFBD><19>k<EFBFBD>k<EFBFBD>&<26>)<29>4<><03><1F><03><08><16>"%<25>C<EFBFBD>K<EFBFBD> %(<28><03> <0B> <0B>D<EFBFBD>!<21><1C><19>c<EFBFBD>!1<>#<23>=<3D>d<EFBFBD>X<EFBFBD>F.<2E>.7<EFBFBD>[<5B>:<3A><16><16><17>-<17>Y<EFBFBD>Y<EFBFBD>s <00>BB'<03>'B0c<01>><00>t|jdt|<00>ffS)NrB)rfryrrKs r0<00>
__reduce__zsymbol.__reduce__ms<00><00><15><04> <09> <09>3<EFBFBD><03>D<EFBFBD> <09>2<>2<>2r1c<01><00>t|<00>Sr+)r<>rKs r0<00>__str__zsymbol.__str__ps <00><00><13>D<EFBFBD>z<EFBFBD>r1c<01>"<00>d|j<00>d<02>S)Nzsymbol(rJ)ryrKs r0<00>__repr__zsymbol.__repr__ss<00><00><18><14><19><19> <0A>Q<EFBFBD>'<27>'r1)NN)ryr@r<>r<>rl<00> Optional[int]rXrf) rZr[r\r]r3rgr&r'rirkrnrprrr_r1r0rfrf;si<00><00> <08> <0E>I<EFBFBD>!#<23>G<EFBFBD> <1E>#<23> <1A>I<EFBFBD>N<EFBFBD>N<EFBFBD> <1C>E<EFBFBD>
"<22>#'<27> <17><11><17><1B><17>!<21> <17>
<10> <17><3<><1A>(r1rfc<01>0<00>eZdZ dd<01>Zdd<02>Zy)<06> _IntFlagMetac <01><><00>gx|_}|j<00>D]u\}}tjd|<06>r<01>t |t
<00>rt ||<07><02>}n|jd<03>s td<04><00><01>Xt|||<08>|j|<08><00>wtj|D<00>cic]}|j|<08><02>c}<08>|_ycc}w)Nz^__.*__$)rlrmz#Expected integer values for IntFlag)<0F>_itemsrOrv<00>matchr5rrfr}rr<>r<>r<00> immutabledictry<00> __members__) rf<00> classnamer<65><00>dict_rjrOr<00>vr<76>s r0r<>z_IntFlagMeta.__init__xs<><00><00> <20><1F><03>
<EFBFBD>U<EFBFBD><19>K<EFBFBD>K<EFBFBD>M<EFBFBD>D<EFBFBD>A<EFBFBD>q<EFBFBD><11>x<EFBFBD>x<EFBFBD> <0B>Q<EFBFBD>'<27><18><19>!<21>S<EFBFBD>!<21><1C>Q<EFBFBD>!<21>,<2C><03><16>\<5C>\<5C>#<23>&<26><1F> E<>F<>F<><18> <13>C<EFBFBD><11>C<EFBFBD> <20> <11>L<EFBFBD>L<EFBFBD><13> <1D>"<22>'<27>4<>4<>&+<2B> ,<2C>e<EFBFBD>s<EFBFBD>S<EFBFBD>X<EFBFBD>X<EFBFBD>s<EFBFBD>]<5D>e<EFBFBD> ,<2C>
<EFBFBD><03><0F><> ,s<00>%Cc<01><00>td<01><00>)Nz<4E>iter not implemented to ensure compatibility with Python 3.11 IntFlag. Please use __members__. See https://github.com/python/cpython/issues/99304r<34>rKs r0<00>__iter__z_IntFlagMeta.__iter__<5F>s<00><00>!<21> =<3D>
<EFBFBD>
r1N)
r{r@r<>zTuple[Type[Any], ...]r|<00>Dict[str, Any]rjrrXrY)rXzIterator[symbol])rZr[r\r<>rr_r1r0ruruws<<00><00>
<EFBFBD><16>
<EFBFBD>%<25>
<EFBFBD><1E> 
<EFBFBD>
<12> 
<EFBFBD>
<0E> 
<EFBFBD>2
r1ruc<01><00>eZdZdZy)<03> _FastIntFlagz<67>An 'IntFlag' copycat that isn't slow when performing bitwise
operations.
the ``FastIntFlag`` class will return ``enum.IntFlag`` under TYPE_CHECKING
and ``_FastIntFlag`` otherwise.
Nr<4E>r_r1r0r<>r<><00>s<00><00>r1r<>)<01> metaclass)<01>IntFlag<61>_Ec<01><><00>|j<00>D]*\}}||ur|cS|r||jk(r|cS||vs<01>(|cS|<00>ytjd|<02>d|<00><02><04><00>)aOGiven a user parameter, parse the parameter into a chosen value
from a list of choice objects, typically Enum values.
The user argument can be a string name that matches the name of a
symbol, or the symbol object itself, or any number of alternate choices
such as True/False/ None etc.
:param arg: the user argument.
:param choices: dictionary of enum values to lists of possible
entries for each.
:param name: name of the argument. Used in an :class:`.ArgumentError`
that is raised if the parameter doesn't match any available argument.
NzInvalid value for 'z': )rOryr r1)r<><00>choicesry<00>resolve_symbol_names<65>
enum_value<EFBFBD>choices r0<00>parse_user_argument_for_enumr<6D><00>sq<00><00>(&<26>m<EFBFBD>m<EFBFBD>o<EFBFBD><1A>
<EFBFBD>F<EFBFBD> <0E>*<2A> <1C><1D> <1D> !<21>c<EFBFBD>Z<EFBFBD>_<EFBFBD>_<EFBFBD>&<<3C><1D> <1D> <10>F<EFBFBD>]<5D><1D> <1D> .<2E> <0B>{<7B><13>
<0A>
<1B>
<1B>1<>$<24><16>s<EFBFBD>3<EFBFBD>'<27>B<>
C<EFBFBD>Cr1c<01>,<00>t|_tdz ay)z<>Assign a '_creation_order' sequence to the given instance.
This allows multiple instances to be sorted in order of creation
(typically within a single thread; the counter is not particularly
threadsafe).
rN)<01>_creation_order)r<>s r0<00>set_creation_orderr<72><00>s<00><00> /<2F>H<EFBFBD><1C><13>q<EFBFBD><18>Or1c<01>x<00> ||i|<02><01>S#t$r&tdtj<00>ddz<00>YywxYw)zXexecutes the given function, catches all exceptions and converts to
a warning.
z%s('%s') ignoredrrN)rk<00>warnrIrJ)r rr@s r0<00>warn_exceptionr<6E><00>sA<00><00>
7<><13>T<EFBFBD>$<24>V<EFBFBD>$<24>$<24><> <14>7<> <0C> <1F>#<23>,<2C>,<2C>.<2E><11>1<EFBFBD>"5<> 5<>6<>7<>s <00>
<00>,9<03>9c<01>V<00> t|<00>|kDrd|d|zS|S#t$r|cYSwxYw)Nz%s...r)r,r)rQ<00>len_s r0<00>ellipses_stringr<67><00>s=<00><00><15> <0E>u<EFBFBD>:<3A><04> <1C><1A>U<EFBFBD>1<EFBFBD>T<EFBFBD>]<5D>*<2A> *<2A><18>L<EFBFBD><4C> <14><15><14> <0C><15>s<00><00><00> (<03>(c<01>P<00><00>eZdZUdZded< d<07>fd<04> Zdd<05>Zd d<06>Z<07>xZS)
<EFBFBD>_hash_limit_stringa/A string subclass that can only be hashed on a maximum amount
of unique values.
This is used for warnings so that we can send out parameterized warnings
without the __warningregistry__ of the module, or the non-overridable
"once" registry within warnings.py, overloading memory,
r<00>_hashc<01><><00><01>||zd|zz}t<00>|<00>||<04>}td|t|<04>|zfz<00>|_|S)Nz6 (this warning may be suppressed after %d occurrences)z%s_%d)rArkrjr<>)rfrQ<00>numr<00> interpolatedrLr}s <20>r0rkz_hash_limit_string.__new__sR<00><><00><1E><04> <0C> D<>s<EFBFBD> J<>
<EFBFBD> <0C><15>w<EFBFBD><EFBFBD>s<EFBFBD>L<EFBFBD>1<><04><19>'<27>U<EFBFBD>D<EFBFBD><1C>,><3E><13>,D<>$E<>E<>F<><04>
<EFBFBD><13> r1c<01><00>|jSr+)r<>rKs r0<00>__hash__z_hash_limit_string.__hash__ s <00><00><13>z<EFBFBD>z<EFBFBD>r1c<01>0<00>t|<00>t|<01>k(Sr+)rj)rL<00>others r0<00>__eq__z_hash_limit_string.__eq__s<00><00><13>D<EFBFBD>z<EFBFBD>T<EFBFBD>%<25>[<5B>(<28>(r1)rQr@r<>rr<00> Sequence[Any]rXr<>)rXr)r<>rrXr<>) rZr[r\r]r3rkr<>r<>rCrDs@r0r<>r<><00>s><00><><00><08> <0F>J<EFBFBD><14><17><14>!<21><14>)6<><14> <1B><14><1A>)r1r<>c<01>~<00>|r!ttj||<01><01><00>yt|tj<00>y)zdIssue a warning.
If msg is a string, :class:`.exc.SAWarning` is used as
the category.
)r<>N)<03>_warnings_warnr <00> SAWarning)<02>msgr<67>s r0r<>r<>s(<00><00> <0C><16>s<EFBFBD>}<7D>}<7D>S<EFBFBD>t<EFBFBD>4<>5<><16>s<EFBFBD>C<EFBFBD>M<EFBFBD>M<EFBFBD>*r1c<01>V<00>|r t|d|<01>}t|tj<00>y)z\Issue a warning with a parameterized string, limiting the number
of registrations.
<20>
N)r<>r<>r r<>)r<>rs r0<00> warn_limitedr<64> s#<00><00>
 <0C> <20><13>b<EFBFBD>$<24>/<2F><03><12>3<EFBFBD><03> <0A> <0A>&r1z)Dict[CodeType, Tuple[str, Type[Warning]]]<5D> _warning_tagsc<01><00><00><01><00><01>fd<01>}|S)Nc<01>2<00><02><00><02>ft|j<|Sr+)r<>r<>)r<><00>category<72>messages <20><>r0<00>goz#tag_method_for_warnings.<locals>.go0s<00><><00>&-<2D>x<EFBFBD>%8<> <0A>b<EFBFBD>k<EFBFBD>k<EFBFBD>"<22><11> r1r_)r<>r<>r<>s`` r0<00>tag_method_for_warningsr<73>-s<00><><00><12> <0E>Ir1z&^(?:sqlalchemy\.(?!testing)|alembic\.)c<01><><00> tj|<02>}dx}}|<03><>|s6tjt|j
j dd<03><00>sd}|jtvr&d}t|j\}}|xs|}|<00>d|<06>d<06>}|j}|s|dz }n|r|rn|<03><01><> |<01>tj|||dz<00> <09>ytj||dz<00> <09>y#t$rd}Y<00>Fd}Y<00>KxYw)
NFrZr<>Tz (rJrr)<01>
stacklevel) rI<00> _getframervrx<00>_not_sa_pattern<72> f_globalsr8<00>f_coder<65><00>f_backr<00>warningsr<73>)r<>r<>r<><00>frame<6D>stacklevel_found<6E>warning_tag_found<6E>_suffix<69> _categorys r0r<>r<>:s<00><00> %<16><13> <0A> <0A>j<EFBFBD>)<29><05>05<30>4<><18>,<2C><13><1F>$<24>B<EFBFBD>H<EFBFBD>H<EFBFBD><1F><15><1F><1F>!4<>!4<>Z<EFBFBD><12>!D<>-<0E>
$(<28> <20>
<15>|<7C>|<7C>}<7D>,<2C>$(<28>!<21>'4<>U<EFBFBD>\<5C>\<5C>'B<>$<24><17>)<29>#<23>0<>y<EFBFBD><08>$<24>I<EFBFBD>R<EFBFBD><07>y<EFBFBD><01>2<><07><19>L<EFBFBD>L<EFBFBD>E<EFBFBD>#<23><1A>a<EFBFBD><0F>
<EFBFBD>!<21>&7<><15>3<14><1F>6<10><1B><10> <0A> <0A>g<EFBFBD>x<EFBFBD>J<EFBFBD><11>N<EFBFBD>C<><10> <0A> <0A>g<EFBFBD>*<2A>q<EFBFBD>.<2E>9<><39>Q <16><17><17>
<EFBFBD><17><17>
<EFBFBD>s<00>C#<00># C5<03>0C5c<01>"<00><00><01><03><00>g<01>d<02><00><03>fd<01> }|S)zNDecorate the given function to be a no-op after it is called exactly
once.c<01>t<00><03><00>}<02>r<19>j<00>} ||i|<01><01>Sy#<00>r<12>jd|<03><00>xYw)Nr)rb<00>insert)r<>rj<00> strong_fn<66>once_fnr<6E><00>once<63>retry_on_exceptions <20><><EFBFBD>r0r<>zonly_once.<locals>.gousM<00><><00><17> <09> <0F><1A>h<EFBFBD>h<EFBFBD>j<EFBFBD>G<EFBFBD> <16><1E><03>*<2A>r<EFBFBD>*<2A>*<2A> <14><>  <16>%<25><18>K<EFBFBD>K<EFBFBD><01>7<EFBFBD>+<2B><15>s<00> <00>7)r<>rrjrrXz Optional[_T]r_)r<>r<>r<>r<>s`` @r0<00> only_oncer<65>ms<00><><00> <0F>4<EFBFBD>D<EFBFBD> <14> <0E>Ir1z%sqlalchemy/([a-z_]+/){0,2}[a-z_]+\.pyzunit(?:2|test2?/)c<01><00>d}t|<00>dz
}||kr3|j||<00>r|dz }||kr|j||<00>r<01>||kr3|j||<00>r|dz}||kr|j||<00>r<01>|||dzS)atChop extraneous lines off beginning and end of a traceback.
:param tb:
a list of traceback lines as returned by ``traceback.format_stack()``
:param exclude_prefix:
a regular expression object matching lines to skip at beginning of
``tb``
:param exclude_suffix:
a regular expression object matching lines to skip at end of ``tb``
rr)r,<00>search)<05>tb<74>exclude_prefix<69>exclude_suffixr<78><00>ends r0<00>chop_tracebackr<6B><00>s<><00><00>" <0E>E<EFBFBD>
<0A>b<EFBFBD>'<27>A<EFBFBD>+<2B>C<EFBFBD>
<0F>3<EFBFBD>,<2C>><3E>0<>0<><12>E<EFBFBD><19>;<3B> <0A><11>
<EFBFBD><05> <10>3<EFBFBD>,<2C>><3E>0<>0<><12>E<EFBFBD><19>;<3B>
<0F>3<EFBFBD>,<2C>><3E>0<>0<><12>C<EFBFBD><17>9<> <0B>q<EFBFBD><08><03> <10>3<EFBFBD>,<2C>><3E>0<>0<><12>C<EFBFBD><17>9<> <0A>e<EFBFBD>c<EFBFBD>A<EFBFBD>g<EFBFBD> <1E>r1c<01>^<00>d|z}t<00>j<00>}t||<02>|dS)Nz&def set(obj, value): obj.%s = valuera)r<00>copyr<79>)<03>attrnamer<65>r<>s r0<00>
attrsetterr<EFBFBD><00>s,<00><00> 3<>h<EFBFBD> ><3E>D<EFBFBD>
<10>(<28>-<2D>-<2D>/<2F>C<EFBFBD><08><14>s<EFBFBD>O<EFBFBD> <0E>u<EFBFBD>:<3A>r1z^__.+__$c<01>(<00><00>eZdZdZdZd<04>fd<03> Z<05>xZS)<05>
TypingOnlyz<EFBFBD>A mixin class that marks a class as 'typing only', meaning it has
absolutely no methods, attributes, or runtime functionality whatsoever.
r_c<01><><00><01>t|jvrC|jD<00>chc]}tj |<01>r<01>|<01><02>}}|rt d|<00>d|<02>d<03><05><00>t <00>|<00><00>ycc}w)NzClass z< directly inherits TypingOnly but has additional attributes r<>)r<>rr7<00>_dundersrx<00>AssertionErrorrA<00>__init_subclass__)rfry<00> remainingr}s <20>r0r<>zTypingOnly.__init_subclass__<5F>sv<00><><00> <15><13><1D><1D> &<26>!$<24><1C><1C><0E>!-<2D><14>X<EFBFBD>^<5E>^<5E>D<EFBFBD>5I<35><04><1C> <16><0E><19>$<24><1C>S<EFBFBD>E<EFBFBD>"-<2D>-6<>K<EFBFBD>q<EFBFBD>:<3A><12><12> <0E><07>!<21>#<23><>s
<00>A&<04>A&rW)rZr[r\r]r^r<>rCrDs@r0r<>r<><00>s<00><><00><08>
<13>I<EFBFBD>
$<24>
$r1r<>c<01>D<00><00>eZdZUdZded< d<06>fd<04> Zedd<05><04>Z<07>xZS)<08> EnsureKWArga6Apply translation of functions to accept \**kw arguments if they
don't already.
Used to ensure cross-compatibility with third party legacy code, for things
like compiler visit methods that need to accept ``**kw`` arguments,
but may have been copied from old code that didn't accept them.
r@<00> ensure_kwargc<01> <00><01>|j}|j}|re|D]`}tj||<03>}|s<01>||}t j
|<05>}|j r<01>C|j|<05>}t|||<07><00>bt<00>|<00>)<00>yr+) r<>r7rvrxrr<>r<00>
_wrap_w_kwr<EFBFBD>rAr<>) rf<00>fn_reg<65>clsdictrwrCr<>r<><00>wrappedr}s <20>r0r<>zEnsureKWArg.__init_subclass__<5F>s~<00><><00><14>!<21>!<21><06><15>,<2C>,<2C><07> <11><1E><03><16>H<EFBFBD>H<EFBFBD>V<EFBFBD>S<EFBFBD>)<29><01><14> <20><13><1C>B<EFBFBD>!<21>8<>8<><12><<3C>D<EFBFBD><1F>:<3A>:<3A>"%<25>.<2E>.<2E><12>"4<><07><1F><03>S<EFBFBD>'<27>2<><1F> <0E><07>!<21>#r1c<01>(<00><01>d<02>fd<01> }t|<02><01>S)Nc<01><00><01><00>|<00>Sr+r_)r<>rjr<>s <20>r0<00>wrapz$EnsureKWArg._wrap_w_kw.<locals>.wrap<61>s <00><><00><15>s<EFBFBD>8<EFBFBD>Or1)r<>rrjrrXrr)rfr<>r<>s ` r0r<>zEnsureKWArg._wrap_w_kw<6B>s<00><><00> <1C><1E>d<EFBFBD>B<EFBFBD>'<27>'r1rW)r<>r{rXr{) rZr[r\r]r3r<>r<>r<>rCrDs@r0r<>r<><00>s.<00><><00><08><16><15><08> $<24><11>(<28><11>(r1r<>c<01>v<00>t|d<01>r t||<01>S|}|jj|_t|d<02>r|j|_t|j
d<03>r3|j
j r|j
j |_|S|j r|j |_|S)z<>Augment functools.update_wrapper() to work with objects with
a ``__call__()`` method.
:param fn:
object with __call__ method
rZr[r])r<>rr}rZr[rr])<03>wrapperr<72><00>_fs r0<00> wrap_callabler<65><00>s<><00><00><0F>r<EFBFBD>:<3A><1E><1D>g<EFBFBD>r<EFBFBD>*<2A>*<2A> <14><02><18>l<EFBFBD>l<EFBFBD>+<2B>+<2B><02> <0B> <12>2<EFBFBD>|<7C> $<24><1E>M<EFBFBD>M<EFBFBD>B<EFBFBD>M<EFBFBD> <12>2<EFBFBD>;<3B>;<3B> <09> *<2A>r<EFBFBD>{<7B>{<7B>/B<>/B<><1B><1B><1B>,<2C>,<2C>B<EFBFBD>J<EFBFBD><12> <09><10>Z<EFBFBD>Z<EFBFBD><1B><1A><1A>B<EFBFBD>J<EFBFBD><11> r1c<01><><00>d|vr|jd<02>Sd}gg}d}t|<00>}||kr}||}|dk(r8|dk(r-||dz
kr%||dzdk(r|djd<01>|dz }n6|dz}n0|dk(r|dk(r|jg<00>n|dj|<05>|dz }||kr<01>}|D<00>cgc]}dj|<06><00><02>c}Scc}w)a<>Parse a dotted identifier with accommodation for quoted names.
Includes support for SQL-style double quotes as a literal character.
E.g.::
>>> quoted_token_parser("name")
["name"]
>>> quoted_token_parser("schema.name")
["schema", "name"]
>>> quoted_token_parser('"Schema"."Name"')
['Schema', 'Name']
>>> quoted_token_parser('"Schema"."Name""Foo"')
['Schema', 'Name""Foo']
<20>"r<>rrr)r<>)r<>r,r<>ru)rQrer<><00>idx<64>lv<6C>charr<72>s r0<00>quoted_token_parserr<72>s<><00><00>$ <0B>%<25><17><14>{<7B>{<7B>3<EFBFBD><1F><1F> <0E>E<EFBFBD>!<21>d<EFBFBD>F<EFBFBD>
<0B>C<EFBFBD> <0C>U<EFBFBD><1A>B<EFBFBD>
<0A><02>(<28><14>S<EFBFBD>z<EFBFBD><04> <0F>3<EFBFBD>;<3B><14><01>z<EFBFBD>c<EFBFBD>B<EFBFBD><11>F<EFBFBD>l<EFBFBD>u<EFBFBD>S<EFBFBD>1<EFBFBD>W<EFBFBD>~<7E><13>/D<><16>r<EFBFBD>
<EFBFBD>!<21>!<21>#<23>&<26><13>q<EFBFBD><08><03><15><11>
<EFBFBD><05> <11>S<EFBFBD>[<5B>U<EFBFBD>a<EFBFBD>Z<EFBFBD> <12>M<EFBFBD>M<EFBFBD>"<22> <1D> <12>2<EFBFBD>J<EFBFBD> <1D> <1D>d<EFBFBD> #<23> <0B>q<EFBFBD><08><03> <0E><02>(<28>)/<2F> /<2F><06>u<EFBFBD>B<EFBFBD>G<EFBFBD>G<EFBFBD>E<EFBFBD>N<EFBFBD><06> /<2F>/<2F><> /s<00>.C c<01>@<00><00><01>tj<00><00><00><00><00>fd<01>}|S)Nc<01><><00><02>|jduxr |jxsd}|rt|<01>D<00>cic]}|<02><04><02>c}<02>}||_|Scc}w)Nr<4E>)r]<00>inject_param_text)r<>r<><00>param<61>paramsr s <20><>r0r<>z$add_parameter_text.<locals>.decorate7sS<00><><00><10>j<EFBFBD>j<EFBFBD><04>$<24>3<><12><1A><1A>9<>r<EFBFBD><03> <0E>#<23>C<EFBFBD>6<EFBFBD>)J<>6<EFBFBD>%<25>%<25><14>+<2B>6<EFBFBD>)J<>K<>C<EFBFBD><18><02>
<EFBFBD><11> <09><>*Ks<00>
A
)rrK)r<>r r<>s`` r0<00>add_parameter_textr<74>4s<00><><00> <19> !<21> !<21>&<26> )<29>F<EFBFBD><12> <14>Or1c<01><><00>|jdd<02>}t|<01>dk(r|S|\}}|jd<03>s|dztj|<03>zStj|<00>S)N<>
rro)r<>r,r}<00>textwrap<61>dedent)r <00>
split_text<EFBFBD> firstliner<65>s r0<00>_dedent_docstringr<67>Asc<00><00><15><1A><1A>D<EFBFBD>!<21>$<24>J<EFBFBD>
<EFBFBD>:<3A><EFBFBD>!<21><1B><13> <0B>)<29><1C> <09>9<EFBFBD> <14> <1F> <1F><03> $<24><18>4<EFBFBD><1F>(<28>/<2F>/<2F>)<29>"<<3C><<3C><<3C><17><EFBFBD><EFBFBD>t<EFBFBD>$<24>$r1c<01><><00>t|xsd<01>}|jd<02>}t|<04>dk(r|jd<01>t j
|<01>jd<02>}|dr|j dd<01>t|<04>D<00><06>cgc]\}}|j<00>r<01>|<06><02>}}}|j dd<04>|t|t|<08>dz
<00>} |d| |z|| dz}dj|<04>Scc}}w)Nr<4E>r<>rr) r<>r<>r,r<>r<>r<>r<>rMr<00>minru)
<EFBFBD> given_doctext<78>
injecttext<EFBFBD>pos<6F>doctext<78>lines<65> injectlinesr<73><00>line<6E>blanks<6B>
inject_poss
r0<00>inject_docstring_textrMs<><00><00>%<25>]<5D>%8<>b<EFBFBD>9<>G<EFBFBD> <13>M<EFBFBD>M<EFBFBD>$<24> <1F>E<EFBFBD>
<EFBFBD>5<EFBFBD>z<EFBFBD>Q<EFBFBD><EFBFBD> <0A> <0C> <0C>R<EFBFBD><18><1A>/<2F>/<2F>*<2A>-<2D>3<>3<>D<EFBFBD>9<>K<EFBFBD><12>1<EFBFBD>~<7E><13><1A><1A>1<EFBFBD>b<EFBFBD>!<21>#,<2C>U<EFBFBD>#3<> H<>#3<>i<EFBFBD>c<EFBFBD>4<EFBFBD>4<EFBFBD>:<3A>:<3A><<3C>c<EFBFBD>#3<>F<EFBFBD> H<>
<EFBFBD>M<EFBFBD>M<EFBFBD>!<21>Q<EFBFBD><17><17><03>C<EFBFBD><13>V<EFBFBD><1B>q<EFBFBD><1F>1<>2<>J<EFBFBD> <11>!<21>J<EFBFBD> <1F>+<2B> -<2D><05>j<EFBFBD>k<EFBFBD>0B<30> B<>E<EFBFBD> <0F>9<EFBFBD>9<EFBFBD>U<EFBFBD> <1B><1B><> Is <00> C5<06>"C5z(\s+):param (.+?):c<01><><00>tj|j<00><00>}g}d}|<02>r9|j<00>}tj |<05>}|<04><>|r<>|j d<01>jd<02>}||vr<>dt|j d<04><00>zdz}|r8tj
d|d<00>} | rdt| j d<04><00>z}|||z}nt|r|jd|dg<03>d}n[|j<00>s|j||dg<03>d}n4|jd<08>r#|j||j<00>g<02><00><01>'|j|<05>|r<02><01>9dj|<03>S) Nr<00>*rorz(\s+)\Srr<>z::)<0F> collections<6E>deque<75>
splitlines<EFBFBD>popleft<66>
_param_regrxr<><00>lstripr,rvrd<00>rstripr~r<>ru)
r<EFBFBD><00> inject_params<6D>doclinesr<73><00> to_injectrrCr<><00>indent<6E>m2s
r0r<>r<>dsX<00><00><1A> <20> <20><17>!3<>!3<>!5<>6<>H<EFBFBD> <0E>E<EFBFBD><15>I<EFBFBD>
<12><17><1F><1F>!<21><04> <16> <1C> <1C>T<EFBFBD> "<22><01> <14> <1C><10><19><07><07><01>
<EFBFBD>)<29>)<29>#<23>.<2E><05><18>M<EFBFBD>)<29> <20>3<EFBFBD>q<EFBFBD>w<EFBFBD>w<EFBFBD>q<EFBFBD>z<EFBFBD>?<3F>2<>S<EFBFBD>8<>F<EFBFBD> <20><1F>X<EFBFBD>X<EFBFBD>j<EFBFBD>(<28>1<EFBFBD>+<2B>><3E><02><1D>%(<28>3<EFBFBD>r<EFBFBD>x<EFBFBD>x<EFBFBD><01>{<7B>+;<3B>%;<3B>F<EFBFBD> &<26><1D>u<EFBFBD>)=<3D> =<3D>I<EFBFBD> <0E> <11>L<EFBFBD>L<EFBFBD>$<24> <09>4<EFBFBD>0<> 1<><1C>I<EFBFBD><15><1B><1B><1D> <11>L<EFBFBD>L<EFBFBD>$<24> <09>4<EFBFBD>0<> 1<><1C>I<EFBFBD> <11>]<5D>]<5D>4<EFBFBD> <20> <12>L<EFBFBD>L<EFBFBD>$<24><08> 0<> 0<> 2<>3<> 4<> <14> <0A> <0C> <0C>T<EFBFBD><1A>? <13>B <10>9<EFBFBD>9<EFBFBD>U<EFBFBD> <1B>r1c<01><00>t|<00>dk(ryt|<00>dk}|r|ddn
|dd|ddz}|D<00>cgc]}t|<02>dkDrd|ddzn|<02><02>}}|rdj|<03>Sdj|dd<00><00>d |d<00><01>Scc}w)
z<EFBFBD>Trims a list of strings from the middle and return a string of up to
four elements. Strings greater than 11 characters will be truncatedrNrr<>r)<00> z%s..rIz, ..., )r,ru)r<><00>flagry<00>ress r0<00>repr_tuple_namesr<00>s<><00><00> <0B>5<EFBFBD>z<EFBFBD>Q<EFBFBD><EFBFBD><13> <0E>u<EFBFBD>:<3A><11>?<3F>D<EFBFBD><1E>E<EFBFBD>!<21>A<EFBFBD>J<EFBFBD>E<EFBFBD>!<21>A<EFBFBD>J<EFBFBD><15>r<EFBFBD>s<EFBFBD><1A>$;<3B>E<EFBFBD>FK<46>
L<EFBFBD>e<EFBFBD>d<EFBFBD><13>T<EFBFBD><19>R<EFBFBD><1E>6<EFBFBD>D<EFBFBD><13>"<22>I<EFBFBD> <1D>T<EFBFBD> 9<>e<EFBFBD>C<EFBFBD>
L<EFBFBD> <0B><13>y<EFBFBD>y<EFBFBD><13>~<7E><1D> $<24> <09> <09>#<23>a<EFBFBD><01>(<28> 3<>S<EFBFBD><12>W<EFBFBD>=<3D>=<3D><> Ms<00>Bc<01>,<00>try|r td<02><00>y)NTzDcython extensions were expected to be installed, but are not presentF)r<00> ImportError)<01>raise_s r0<00>has_compiled_extr<00>s"<00><00><16><13> <0F><19> "<22>
<EFBFBD>
<EFBFBD>
r1c<01>.<00>eZdZej<00>Zy)<02>_MissingN)rZr[r\<00>enum<75>auto<74>Missingr_r1r0rr<00>s<00><00><17>d<EFBFBD>i<EFBFBD>i<EFBFBD>k<EFBFBD>Gr1r)r/rrXr4)rBrrXr@)rf<00>Type[_T]rXzIterator[Type[_T]])rlrrXr@r+)rf<00> Type[Any]rxr<>rXr@)r~zUnion[Type[Any], object]rr{rXr<>)r<><00>slicerX<00>Tuple[Any, ...])r<><00> Sequence[str]r<>r@rXz Iterator[str])r<>zCallable[[int], Any]rsrrXz Iterator[Any])r<>r{rXzCallable[[_Fn], _Fn])r<>zUnion[str, types.CodeType]r<>r<>r<>r@rXr{)rfr6r<><00>Optional[Set[str]]r<>z Literal[True]rXzSet[str])rfr6r<>r%r<>r<>rXr%)r r{rX<00> List[str])FF)r<>r{rr<>rr<>rXzcompat.FullArgSpec)T)r<>z-Union[Callable[..., Any], compat.FullArgSpec]r<>r<>rXzDict[str, Optional[str]])r_r_r_r_)r7r!r8r@r9r@r:r$r;r$r<r$r=r$rXzCallable[[_T], _T])r_Nr_)
r/rrPzSequence[Tuple[str, Any]]rQz%Optional[Union[object, List[object]]]rRr$rXr@)NNz
self.proxyN)NNNr<4E>)r/rrXr<>)r r@rXz!Callable[[str], Union[str, bool]])rQrrXrs)TN) rjr<>rwr@rPr!rr<>rzOptional[Dict[str, Any]]rXrY)r/rrfr!rXr#)
r/r!rfr rrrjrrXr!)rXzCallable[[], int])r+rrY<00>Optional[Type[Any]]rXr')r<>rr2z'Union[Tuple[Type[Any], ...], Type[Any]]ryr@rXr)F)
r<EFBFBD>rr<>zDict[_E, List[Any]]ryr@r<>r<>rXz Optional[_E]r<>)r r{rrr@rrXr)<01>)r<>r@r<>r<>rXrY)r<>r@rr<>rXrY)r<>r@r<>z Type[Warning]rX<00>Callable[[_F], _F])Nr)r<>zUnion[str, Warning]r<>zOptional[Type[Warning]]r<>rrXrY)r<>r<>r<>r<>rXzCallable[..., Optional[_T]])r<>r&r<><00>re.Pattern[str]r<>r*rXr&)r<>rr r@rXr))r r@rXr@)r<>r<>r<>r@r<>rrXr@)r<>r@r zDict[str, str]rXr@)r<>r&rXr<>)<29>r]<00>
__future__rrr<00> functoolsrr,r<>r<>rvrIr<>r&r<>r<00>typingrrr r
r r r rrrrrrrrrrrrr<>r<>rr<00>_has_cyrrr r!r"r$r&r'r(r)<00>py310r-rDrFrirmrzr<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>rr rr<>r4r>rArEr]r_rsrxr<>r<>r<>r<>r<>r<>r<>r<><00>non_memoized_property<74>property<74>ro_memoized_property<74>ro_non_memoized_propertyr<79>r<><00>!HasMemoized_ro_memoized_attributer<65>r<>rr rrrrr#r-r3r<>r>rFrWrarrfr6rur<>r<><00> FastIntFlag<61>Enumr<6D>r<>r<>r<>r<>r<>r@r<>r<>r<>r<>r3r<><00>compiler<65>r<>r<><00>_SQLA_RE<52> _UNITTEST_REr<45><00>NoneTyper<65>r<>r<>r<>r<>r<>r<>r<>rr
r<>rrrr<00> MissingOrr_r1r0<00><module>r<s<><00><01><04>#<23><12> <0B>$<24><0E><10><0F> <09>
<EFBFBD><0F><10> <0C><1A><16><1B><17><17><1C><1A><1B><17><1A><1B><1B><1B><1B><16><18><17> <20><1A><18><0F><1A><14>$<24><1B><12> <0C>T<EFBFBD>]<5D><02><0F><07>4<EFBFBD>(<28><05> <0C>T<EFBFBD><18>#<23>s<EFBFBD>(<28>+<2B>,<2C><02> <0A>e<EFBFBD>3<>4<><03> <0A>e<EFBFBD>@<40>A<><03> <0A>e<EFBFBD>0<>1<><03> <0A>e<EFBFBD>.<2E>/<2F><03>
<EFBFBD><<3C><<3C>,<2C>
2<>"$<24>82<>82<>v <12>6<>/3<>O<01> <12>O<01>+<2B>O<01><08>O<01>,<2C>-<2D>,<2C>&<26>,<2C>
<EFBFBD>,<2C>$ <16> M<01> <0F><0E>e<EFBFBD>/<2F>0<><03>
D,<2C>N<14>*<18>
$<24><18>+9<><18>DG<44><18><17><18><0E>e<EFBFBD>n<EFBFBD><03> <0A>e<EFBFBD>n<EFBFBD><03>% <20>% <20>P
<EFBFBD>(
<EFBFBD> $<24>!<21> <13> <0A><13> <1D><13><1C> <13>
<0E> <13>
<EFBFBD><13>
<EFBFBD>-1<>E<EFBFBD><1D> <0A><1D>*<2A><1D>=A<><1D><17><1D>
<EFBFBD><1D> .2<EFBFBD>E<EFBFBD>2<10> <0A>2<10>*<2A>2<10>=A<>2<10><17>2<10>j2<>EJ<01>5;<3B><1A>5;<3B>%)<29>5;<3B>=A<>5;<3B><17>5;<3B>rHL<01>r
<EFBFBD>5<>r
<EFBFBD>@D<>r
<EFBFBD><1D>r
<EFBFBD>j<06>J#%<25><1F> "<22>/1<><14><19><14><1F><14><1F><14> <20> <14>
<1B> <14> <1E> <14> -<2D><14><18><14>26<>( <1B>02<30>8<<3C> "<22> KB<01> <0C>KB<01>,<2C>KB<01>6<>KB<01><1E> KB<01>
 <09> KB<01>\;<3B>;<3B><#<16>L <16>&
<0E> <0A> <15><16> @/<2F>F<06>S<06>l<0F>v<EFBFBD>9<>:<3A><04>($<24>G<EFBFBD>E<EFBFBD>N<EFBFBD>($<24>V"<22>2<>5<EFBFBD>9<>"<22>"%<25>.<2E>u<EFBFBD>5<>%<25><<11>.<2E><15>1<><19>
$<24><18>'<27><1C>0B<01>A<><15>,<2C>7M<37>M<><19>4<>'<27>.J+<2B>J+<2B>Z<11>(0<>%<25>(3<>(F<>(F<>%<25>*/<2F>*/<2F>\ <15> <19><16><1C>%)<29> '<27><16>'<27> <0C>'<27> <15>'<27><15> '<27>
#<23> '<27> 
<EFBFBD> '<27>4<06> <1C> <11>37<33> <17><11> <17>/<2F> <17><18> <17>F<0E> <0C><0E>><3E><0E>FI<46><0E><08><0E>$C<01>0<1E>H<EFBFBD><1E>*<14>W<EFBFBD>R<EFBFBD>[<5B><14>"<14><07><02> <0B><14>4<14>7<EFBFBD>2<EFBFBD>;<3B><14>$9(<28>S<EFBFBD>9(<28>x
<EFBFBD>4<EFBFBD>
<EFBFBD>D<08>\<5C><08><11><1C><19>K<EFBFBD><1E>K<EFBFBD> <0A>T<EFBFBD><14><19><19>#<23><02>"'<27> D<01> <0C>D<01> <20>D<01> <0E>D<01><1F> D<01>
<12> D<01>D<14><0F>
<19>7<><15>)<29><13>)<29><
+<2B>'<27><><3E> <0A>8<>=<3D><0E> <10><0E>)<29><0E><17><0E><1D>"<22>*<2A>*<2A>F<>G<><0F>
)-<2D><17>0:<3A> <20>0:<3A>%<25>0:<3A><14>0:<3A>
<EFBFBD> 0:<3A>f<0E><19><0E>/3<><0E> <20><0E>4 <16>2<EFBFBD>:<3A>:<3A>><3E> ?<3F><08><19>r<EFBFBD>z<EFBFBD>z<EFBFBD>.<2E>/<2F> <0C>
'3<>&.<2E><1F><11><1F>#<23><1F>$<24><1F><0F> <1F>4 <10><04>:<3A><08><16> <16>2<EFBFBD>:<3A>:<3A>j<EFBFBD> !<21><08>$<24>$<24>*&(<28>&(<28>R<12>0)0<>X
<14> %<25><1C> <20><1C>.1<EFBFBD><1C>8;<3B><1C><08><1C>(<18>R<EFBFBD>Z<EFBFBD>Z<EFBFBD>-<2D> .<2E>
<EFBFBD>(<1C>V ><3E> <15><1A>t<EFBFBD>y<EFBFBD>y<EFBFBD><1A> <13>
<1A>
<1A><07> <11>"<22>g<EFBFBD>h<EFBFBD>.<2E>.<2E>/<2F>/<2F> 0<> r1