ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ M!Vc@sDddlZddlZddlZddlZddlZddlmZmZmZm Z ddl m Z m Z ddl mZdefdYZde efd YZd Zd Zd Zdd ZddZddZdZdefdYZdefdYZdefdYZdS(iNi(tcallabletexec_t string_typestwith_metaclass(tformat_argspec_plustupdate_wrapper(tinspect_getfullargspect_ModuleClsMetacBseZdZRS(cCs*tt|j|||j|dS(N(tsuperRt __setattr__t_update_module_proxies(tclstkeytvalue((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/util/langhelpers.pyR s(t__name__t __module__R (((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/util/langhelpers.pyR stModuleClsProxycBs}eZdZejdZedZdZdZ edZ edZ edZ edZ RS( sCreate module level proxy functions for the methods on a given class. The functions will have a compatible signature as the methods. cCs tgfS(N(tset(((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/util/langhelpers.pyttcCsD|j|\}}x*|D]"\}}|j||||qWdS(N(t_setupst_add_proxied_attribute(R tnamet attr_namestmodulestglobals_tlocals_((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/util/langhelpers.pyR scCs_|j|j\}}xB|D]:\}}||dt outer_argst inner_argst translate_strRGt func_texttlcl((R sI/opt/alt/python27/lib/python2.7/site-packages/alembic/util/langhelpers.pyR*IsP            (RRRQt collectionst defaultdictRt classmethodR R R"R%R$RR*(((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/util/langhelpers.pyRs   csfd}|S(Ncs |_|S(N(R2(RR(R>(sI/opt/alt/python27/lib/python2.7/site-packages/alembic/util/langhelpers.pytdecorates ((R>R^((R>sI/opt/alt/python27/lib/python2.7/site-packages/alembic/util/langhelpers.pyt_with_legacy_namesscCs|dk o|jdkS(Nttrue(R!tlower(R ((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/util/langhelpers.pytasbools cCs'ttjd}t|dd!S(Nl@ kii(tinttuuidtuuid4thex(tval((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/util/langhelpers.pytrev_idscCsM|dkr|St|tr&|gSt|tjrBt|S|gSdS(N(R!t isinstanceRR[tIterableR7(R/tdefault((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/util/langhelpers.pytto_lists  cCsM|dkr|St|tr&|fSt|tjrBt|S|fSdS(N(R!RiRR[RjRN(R/Rk((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/util/langhelpers.pytto_tuples  cCst}|j}|sHg|D]%}||kr|| r|^qSg|D]1}|||krO||| rO|^qOSdS(N(RR+(tseqthashfunctseentseen_addR/((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/util/langhelpers.pyt unique_lists     cCstt|S(N(RNRr(ttup((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/util/langhelpers.pyt dedupe_tuplestmemoized_propertycBs#eZdZddZdZRS(s2A read-only @property that is only evaluated once.cCs+||_|p|j|_|j|_dS(N(tfgetRQR(RRvRJ((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/util/langhelpers.pyt__init__s cCs1|dkr|S|j||j|j<}|S(N(R!Rvt__dict__R(RtobjR tresult((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/util/langhelpers.pyt__get__s N(RRRQR!RwR{(((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/util/langhelpers.pyRus t immutabledictcBs`eZdZeZZZZZZZ Z dZ dZ dZ dZdZRS(cOstd|jjdS(Ns%s object is immutable(R:RR(RRFR@((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/util/langhelpers.pyt _immutablescGs#tj|}tj|||S(N(tdictt__new__Rw(R R?tnew((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/util/langhelpers.pyRscGsdS(N((RR?((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/util/langhelpers.pyRwscCstt|ffS(N(R|R~(R((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/util/langhelpers.pyt __reduce__scCs4|st|St|}tj|||SdS(N(R|R~R6(Rtdtd2((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/util/langhelpers.pytunion s   cCsdtj|S(Nsimmutabledict(%s)(R~t__repr__(R((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/util/langhelpers.pyRs(RRR}t __delitem__t __setitem__R tclearR5tpopitemt setdefaultR6RRwRRR(((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/util/langhelpers.pyR|s "    t DispatchercBs>eZedZddZddZdZdZRS(cCsi|_||_dS(N(t _registrytuselist(RR((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/util/langhelpers.pyRws Rkcsfd}|S(Ncs`jr.jjfgj|n.fjksIt|jf<|S(N(RRRR#tAssertionError(RR(t qualifierRttarget(sI/opt/alt/python27/lib/python2.7/site-packages/alembic/util/langhelpers.pyR^s  %((RRRR^((RRRsI/opt/alt/python27/lib/python2.7/site-packages/alembic/util/langhelpers.pyt dispatch_forscCst|tr|g}n*t|tr6|j}nt|j}x|D]p}|dkr||f|jkr|j|j||fS|df|jkrL|j|j|dfSqLWtd|dS(NRks#no dispatch function for object: %s(RiRttypet__mro__Rt _fn_or_listt ValueError(RRyRttargetstspcls((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/util/langhelpers.pytdispatch$s   !cs$|jrfd}|SSdS(Ncs"xD]}|||qWdS(N((RFR@RR(t fn_or_list(sI/opt/alt/python27/lib/python2.7/site-packages/alembic/util/langhelpers.pytgo9s (R(RRR((RsI/opt/alt/python27/lib/python2.7/site-packages/alembic/util/langhelpers.pyR7s csOt}jr8|jjfdjDn|jjj|S(sHReturn a copy of this dispatcher that is independently writable.c3s5|]+}|gj|D] }|^qfVqdS(N(R(t.0tkRR(R(sI/opt/alt/python27/lib/python2.7/site-packages/alembic/util/langhelpers.pys Gs(RRRR6(RR((RsI/opt/alt/python27/lib/python2.7/site-packages/alembic/util/langhelpers.pytbranch@s    (RRtFalseRwRRRR(((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/util/langhelpers.pyRs    (ROR3RKRdR[tcompatRRRRtsqlalchemy.utilRRtsqlalchemy.util.compatRRRRR_RbRhR!RlRmRrRttobjectRuR~R|R(((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/util/langhelpers.pyts&     "