ÿØÿà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@sddlmZmZmZmZmZmZmZddlmZ ddlm Z ddl m Z ddlmZddlmZmZdefd YZd efd YZd S( i(tTabletMetaDatatIndextselecttColumntForeignKeyConstrainttcast(ttypes(tschema(t OrderedDicti(tutil(t_columns_for_constraintt_is_type_boundtBatchOperationsImplcBseZdZedZedZdZdZdZdZ dZ dZ d Z d Z d Zd Zd ZdZRS(c Cstjstdn||_||_||_|dkrNtdn||_||_||_ t ||_ ||_ | |_ | |_g|_dS(Ns.batch mode requires SQLAlchemy 0.8 or greater.tautotalwaystnevers4recreate may be one of 'auto', 'always', or 'never'.(RRR(R tsqla_08tNotImplementedErrort operationst table_nameRt ValueErrortrecreatet copy_fromt table_argstdictt table_kwargst reflect_argstreflect_kwargstnaming_conventiontbatch( tselfRRRRRRRRRR((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/operations/batch.pyt__init__ s"             cCs |jjjS(N(Rtimpltdialect(R((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/operations/batch.pyR" scCs |jjS(N(RR!(R((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/operations/batch.pyR!$scCs=|jdkr"|jjj|S|jdkr5tStSdS(NRR(RRR!trequires_recreate_in_batchtTruetFalse(R((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/operations/batch.pyt_should_recreate(s c Cs7|j}|sTx|jD]1\}}}t|jj|}|||qWn|jrrtd|j}n t}|jdk r|j}n<t |j |d|j dt d|jj |j|j}t||j|j}x6|jD]+\}}}t||}|||qW|j|jdS(NRRtautoloadt autoload_with(R&RtgetattrRR!RRRtNoneRRRR$tget_bindRRtApplyBatchImplRRt_create( Rtshould_recreatetopnametargtkwtfntm1texisting_tablet batch_impl((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/operations/batch.pytflush0s,       cOs|jjd||fdS(Nt alter_column(Rtappend(RR0R1((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/operations/batch.pyR7OscOs|jjd||fdS(Nt add_column(RR8(RR0R1((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/operations/batch.pyR9RscOs|jjd||fdS(Nt drop_column(RR8(RR0R1((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/operations/batch.pyR:UscCs |jjd|fifdS(Ntadd_constraint(RR8(Rtconst((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/operations/batch.pyR;XscCs |jjd|fifdS(Ntdrop_constraint(RR8(RR<((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/operations/batch.pyR=[scOs|jjd||fdS(Nt rename_table(RR8(RR0R1((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/operations/batch.pyR>^scCs |jjd|fifdS(Nt create_index(RR8(Rtidx((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/operations/batch.pyR?ascCs |jjd|fifdS(Nt drop_index(RR8(RR@((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/operations/batch.pyRAdscCstddS(Ns Can't create table in batch mode(R(Rttable((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/operations/batch.pyt create_tablegscCstddS(NsCan't drop table in batch mode(R(RRB((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/operations/batch.pyt drop_tablejs(t__name__t __module__R tpropertyR"R!R&R6R7R9R:R;R=R>R?RARCRD(((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/operations/batch.pyR s            R,cBseZdZdZdZdZdZdZde ddddZ dZ dZ d Z d Zd Zd Zd ZRS(cCsQ||_||_||_d|_td|jjD|_|jdS(Ncss%|]}|ji|d6fVqdS(texprN(tname(t.0tc((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/operations/batch.pys us( RBRRR*t new_tableR RKtcolumn_transferst_grab_table_elements(RRBRR((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/operations/batch.pyR os    cCs9|jj}t|_xF|jjD]8}|jd|}t|_|_||j|j |j|j|j|j|jy|j|jjdtjt d|j j Dt g|j j D]}d|krw|d^qw|j|jWn|j|jnmX|jd|jjd|jj|jj|j_z(x!|jD]}|j|qWWdd|j_XdS(Ntinlinecss'|]\}}d|kr|VqdS(RHN((RJR[ttransfer((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/operations/batch.pys s RHR\R(Ritprep_table_for_batchRBRCRLt_exectinsertR$t from_selectR^RMtitemsRR_RDR>RIRRmR?(Rtop_implRR@((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/operations/batch.pyR-s2  #  c Ks|j|} |j|} |dk rH||krH|| _|| d4sN(RERFR RNRiRmRdR-R*R%R7R9R:R;R=R?RAR>(((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/operations/batch.pyR,ns$    $      N(t sqlalchemyRRRRRRRRRxRRstsqlalchemy.utilR tR tutil.sqla_compatR R tobjectR R,(((sI/opt/alt/python27/lib/python2.7/site-packages/alembic/operations/batch.pyts4d