%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /proc/self/root/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/
Upload File :
Create Path :
Current File : //proc/self/root/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pyc

�
�M!Vc@s(ddlmZmZddlmZddlmZddlm	Z	ddl
Z
ddlmZddlm
Z
dd	lmZdd
lmZddlZddlmZddlZdd
lmZe
je�Zd�Zejde�Zd�Zejd�d��Z d�Z!d�Z"d�Z#d�Z$ej%d��Z&de'fd��YZ(de(fd��YZ)de(fd��YZ*de(fd��YZ+ejd �d!��Z,ejd"�d#��Z-ejd"�d$��Z.d%�Z/ejd"�d&��Z0ejd �d'��Z1dS((i����(tschemattypes(t	Inspector(teventi(topsN(tutil(tcompat(tsqla_compat(t
OrderedSeti(t_user_defined_render(t_fk_speccCs8|jd}|jd}t||�|j|�dS(Ni����(tupgrade_ops_listtdowngrade_ops_listt_produce_net_changestreverse_into(tautogen_contexttmigration_scripttupgrade_opst
downgrade_ops((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pyt_populate_migration_scripts


tuselistcCs�|j}|jjdt�}tj|�}|jj}|r{t|j	��}|j
d�|jd�|j
|�n	dg}t
jd|jj�|||�dS(Ntinclude_schemastinformation_schemaR(t
connectiontoptstgettFalseRtfrom_enginetdialecttdefault_schema_nametsettget_schema_namestdiscardtaddtNonetcomparatorstdispatchtname(RRRRt	inspectortdefault_schematschemas((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pyR
s	

	RcCs|j}|j}t�}|jj}|jj}xp|D]h}t|jd|��}	||kr|	j|jjg�}	n|jt	|gt
|	�|	��q:Wtg|jD]}
|
j
|
jf^q��j||fg�}t||||||�dS(NR(R&tmetadataRtmigration_contexttversion_table_schemat
version_tabletget_table_namest
differencetupdatetziptlenRt
sorted_tablesRR%t_compare_tables(RRR(R&R)tconn_table_namesR+R,tsttablesttabletmetadata_table_names((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pyt_autogen_for_tables4s 			
'+	c
s|jjj}tg|D]*\}}||kr7|nd|f^q�}	t�fd�t|	|�D��}
|	}x�|j|�D]�\}}|r�d||fn|}|
||f}
|j|
|dt	d�r�|j
jt
jj
|
��tjd|�t
j|gd|�}tjd�||||d|
�|j�sb|j
j|�qbq�q�Wtj�}x�|j|�D]�\}}tj||�}||jk}tj||d|�}|stj|d|jjj|��|j|d�n|j||dtd�r�|j
jt
j j
|��tjd|�q�q�W|j!|�}tj�}i}x�|D]�\}}tj||�}||jk}tj||d|�}|s�tj|d|jjj|��|j|d�n||||f<qxWxt"|dd	��D]�\}}|p7d}|rPd||fn|}|
||f}
|j|}|j|
|dt	|�r"t
j|gd|�}t#||||
|||��'tjd�||||||
�WdQX|j�s|j
j|�qq"q"WdS(
Nc3s:|]0\}\}}|�jtj||�fVqdS(N(R6t	sa_schemat_get_table_key(t.0tno_dflt_schemaRttname(R)(sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pys	<genexpr>css%s.%sR7sDetected added table %rRtcolumn_reflectsDetected removed table %rtkeycSs|dp
d|dfS(Niti((tx((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pyt<lambda>�s($tbindRRRR"tdictR0R.trun_filtersRRtappendt
CreateTableOpt
from_tabletlogtinfotModifyTableOpsR#R$tis_emptyR:tMetaDataR;R6tTableRtlistenR*timplt_compat_autogen_column_reflecttreflecttabletTruetDropTableOptintersectiontsortedt_compare_columns(R4R8R&R)RRR'RR>t#metadata_table_names_no_dflt_schemattname_to_tableR5R%tmetadata_tabletmodify_table_opstremoval_metadatatexiststttexisting_tablestexisting_metadatatconn_column_infot
conn_table((R)sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pyR3Ps�7	
	
"
	cCs<tj|dd|dg|dD]}|j|^q"�S(NR%tuniquetcolumn_names(R:tIndextc(tparamsRctcname((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pyt_make_index�s
cCs5tjd|dg|dD]}|j|^q�S(NR%Re(R:tUniqueConstraintRg(RhRcRi((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pyt_make_unique_constraint�s	cCs�|d}|dr+d|d|f}n|jdi�}tjg|dD]}|j|^qNg|dD]}d||f^qod|jd�d|jd�d	|jd	�d
|jd
�d|d�}|j|�|S(Ntreferred_tabletreferred_schemas%s.%stoptionstconstrained_columnstreferred_columnstonupdatetondeletet
deferrablet	initiallyR%(RR:tForeignKeyConstraintRgtappend_constraint(RhRcR>RoRitntconst((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pyt_make_foreign_key�s

!'

c	cs
|rd||fn|}td�|jD��}td�|jD��}	tt|��}
xr|
j|	�D]a}|j|||dtd�rp|jj	tj
j||||��tj
d||�qpqpWx�|
j|	�D]�}||}
|j|}|j|
|dt|�s#q�ntj||d|�}tjd�|||||||
�|j�r�|jj	|�q�q�WdVx~t|	�j|
�D]g}|j|j||dtd�r�|jj	tjj|||j|��tj
d||�q�q�WdS(Ns%s.%scss|]}|j|fVqdS(N(R%(R<Rg((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pys	<genexpr>�scss|]}|j|fVqdS(N(R%(R<Rg((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pys	<genexpr>�stcolumnsDetected added column '%s.%s'RsDetected removed column '%s.%s'(RERgRRWR.RFRR"RRGtAddColumnOptfrom_column_and_tablenameRJRKRVt
AlterColumnOpR#R$thas_changesRRTtDropColumnOp(RR>RcR[R\RR&R%tmetadata_cols_by_nametconn_col_namestmetadata_col_namesRitcolnametmetadata_coltconn_coltalter_column_op((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pyRX�sF
		

	
		t_constraint_sigcBs#eZd�Zd�Zd�ZRS(cCs|j|jkS(N(Ry(tselftother((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pyt__eq__scCs|j|jkS(N(Ry(R�R�((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pyt__ne__scCs
t|j�S(N(thashRy(R�((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pyt__hash__s(t__name__t
__module__R�R�R�(((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pyR�s		t_uq_constraint_sigcBs,eZeZeZd�Zed��ZRS(cCsG||_|j|_ttg|jD]}|j^q%��|_dS(N(RyR%ttupleRWtcolumnstsig(R�Rytcol((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pyt__init__$s	cCs g|jjD]}|j^q
S(N(RyR�R%(R�R�((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pyRe)s(	R�R�Rtis_indexRTt	is_uniqueR�tpropertyRe(((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pyR� s	t_ix_constraint_sigcBs&eZeZd�Zed��ZRS(cCsY||_|j|_ttg|jD]}|j^q%��|_t|j�|_dS(N(	RyR%R�RWR�R�tboolRdR�(R�RyR�((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pyR�1s	.cCstj|j�S(N(Rt_get_index_column_namesRy(R�((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pyRe7s(R�R�RTR�R�R�Re(((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pyR�.s	t_fk_constraint_sigcBseZed�ZRS(cCs-||_|j|_t|�\
|_|_|_|_|_|_}}}}|j|jt	|j�|j|jt	|j�f|_
|r)|j
|r�|j�dkr�dq�|j�nd|r�|j�dkr�dq�|j�nd|r|j�dkrdn|rdndf7_
ndS(Ns	no actiontdeferredtinitially_deferrableRtsnot deferrable(
RyR%R
t
source_schematsource_tabletsource_columnst
target_schemattarget_tablettarget_columnsR�R�tlowerR"(R�Rytinclude_optionsRrRsRtRu((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pyR�=s	<!--(R�R�RR�(((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pyR�<sR7c s��j}�dk�td�|jD��}t|j�}t�}	}
t��dk	r	t|d�r�y|j�d|�}	t	�Wq�t
k
r�q�Xny|j�d|�}
Wnt
k
r�nXt�fd�|	D��}	t�fd�|
D��}
n�jj
j|	|
||�td�|D��}td�|D��}td�|	D��}td	�|
D��}
td
�|j|�D��}td�|D���td�|
D���td
�|j|
�D��}
t��fd�t��j��D��}td�|D��}td�|D��}td�|D��}td�|D��}����fd�}����fd�}���fd�}x7tt|�j|
��D]}||}||�q�Wxtt|�j|
��D]�}||}||krO||\}}|jrF|}qY|}n
|
|}|j|jkr�||�||�qg}|j|jkr�|jd|j|jf�n|j|jkr�|jd|j|jf�n|r||||�qqWx�tt|
�j|��D]�}|
|}|jrT|j|krTq%q%||kr�|j|kr�|j|kr�||\}}||�||�q�q%||�q%Wx+|D]#}||kr�|||�q�q�WdS(Ncss'|]}t|tj�r|VqdS(N(t
isinstanceR:Rk(R<tuq((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pys	<genexpr>fstget_unique_constraintsRc3s|]}t|��VqdS(N(Rl(R<tuq_def(Rc(sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pys	<genexpr>sc3s|]}t|��VqdS(N(Rj(R<tix(Rc(sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pys	<genexpr>�scss|]}t|�VqdS(N(R�(R<R�((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pys	<genexpr>�scss|]}t|�VqdS(N(R�(R<R�((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pys	<genexpr>�scss|]}t|�VqdS(N(R�(R<R�((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pys	<genexpr>�scss|]}t|�VqdS(N(R�(R<R�((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pys	<genexpr>�scss-|]#}|jdk	r|j|fVqdS(N(R%R"(R<Rg((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pys	<genexpr>�scss|]}|j|fVqdS(N(R%(R<Rg((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pys	<genexpr>�scss|]}|j|fVqdS(N(R%(R<Rg((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pys	<genexpr>�scss-|]#}|jdk	r|j|fVqdS(N(R%R"(R<Rg((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pys	<genexpr>�sc3s)|]}|�|�|ffVqdS(N((R<R%(tconn_indexes_by_nametconn_uniques_by_name(sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pys	<genexpr>�scss|]}|j|fVqdS(N(R�(R<R�((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pys	<genexpr>�scss|]}|j|fVqdS(N(R�(R<R�((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pys	<genexpr>�scss|]}|j|fVqdS(N(R�(R<R�((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pys	<genexpr>�scss-|]#}|jdkr|j|fVqdS(N(R%R"R�(R<R�((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pys	<genexpr>�scs�|jrx�j|j|jdtd�r��jjtjj	|j��t
jd|jdjd|j
g��q�n��s�dS�r�dS�j|j|jdtd�r��jjtjj|j��t
jd|jdjd|j
g��ndS(NtindexsDetected added index '%s' on %ss, s'%s'tunique_constraints+Detected added unique constraint '%s' on %s(R�RFRyR%RR"RRGt
CreateIndexOpt
from_indexRJRKtjoinRetAddConstraintOptfrom_constraint(tobj(Rtis_create_tablet
modify_opstsupports_unique_constraints(sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pyt	obj_added�s(					cs�|jry|jr�rdS�j|j|jdtd�r��jjtj	j
|j��tjd|j��q�nY�j|j|jdtd�r��jjtj
j|j��tjd|j��ndS(NR�s#Detected removed index '%s' on '%s'R�s/Detected removed unique constraint '%s' on '%s'(R�R�RFRyR%RTR"RRGtDropIndexOpR�RJRKtDropConstraintOpR�(R�(RR�R�R>(sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pytobj_removed�s 				cs|jr��j|j|jdt|j�rtjd|j�dj|���jj	tj
j|j���jj	tjj|j��qn��j|j|jdt|j�rtjd|j�dj|���jj	tj
j|j���jj	tjj|j��ndS(NR�s&Detected changed index '%s' on '%s':%ss, R�s2Detected changed unique constraint '%s' on '%s':%s(R�RFRyR%RRJRKR�RRGR�R�R�R�R�R�(toldtnewtmsg(RR�R>(sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pytobj_changed�s&							s unique=%r to unique=%rs columns %r to %r(R&R"Rtconstraintstindexest	frozensetRthasattrR�RTtNotImplementedErrortget_indexesR*RQtcorrect_for_autogen_constraintsREtunionRVRWR.R�R�RGR�( RR�RR>RcR[R&tmetadata_unique_constraintstmetadata_indexestconn_uniquestconn_indexestconn_unique_constraintstmetadata_namest
conn_namestdoubled_constraintstconn_uniques_by_sigtmetadata_uniques_by_sigtmetadata_indexes_by_sigtunnamed_metadata_uniquesR�R�R�t
added_nameR�t
existing_nametmetadata_objtconn_uqtconn_idxtconn_objR�tremoved_nametuq_sig((RR�RcR�R�R�R�R>sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pyt_compare_indexes_and_uniques\s�	




	
	
"
"
			


		"


R{c	Csf|jr
dS|j}|j}||_||k	rb||_tjd|rRdnd||�ndS(NsDetected %s on column '%s.%s'tNULLsNOT NULL(tprimary_keytnullabletexisting_nullabletmodify_nullableRJRK(	RR�RR>RiR�R�tmetadata_col_nullabletconn_col_nullable((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pyt_compare_nullableHs						c
Cs�|j}||_|j}|jtjkrDtjd||�dS|jtjkrmtjd||�dS|jj||�}	|	r�||_	tjd||||�ndS(Ns3Couldn't determine database type for column '%s.%s's:Column '%s.%s' has no type within the model; can't compares-Detected type change from %r to %r on '%s.%s'(
ttypet
existing_typet_type_affinitytsqltypestNullTypeRJRKR*t
_compare_typetmodify_type(
RR�RR>RiR�R�t	conn_typet
metadata_typetisdiff((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pyR�^s"				
	
			cCs�td||�}|tk	r"|St|tj�rvt|jtj�rU|j}qvt|jj	d|j
��}nt|tj�r�|jjt
jkr�tjdd|�}t|�S|SndSdS(Ntserver_defaultRs^'|'$RA(R	RR�R:t
DefaultClausetargRtstring_typeststrtcompileRR�R�R�tStringtretsubtreprR"(tmetadata_defaultR�Rtrendered((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pyt"_render_server_default_for_compareys
cCs�|j}|j}|dkr.|dkr.tSt|||�}	|jrX|jjjnd}
||_|jj|||	|
�}|r�||_	t
jd||�ndS(Ns)Detected server default on column '%s.%s'(R�R"RR�R�ttexttexisting_server_defaultR*t_compare_server_defaulttmodify_server_defaultRJRK(RR�RR>RiR�R�R�tconn_col_defaulttrendered_metadata_defaulttrendered_conn_defaultR�((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pyR�s"						cs �dkrdS�j}td�|jD��}|j|d|�}|oZd|dk�t�fd�|D��}�jjj||�t�fd�|D��}t�fd�|D��}td�|D��}	td	�|D��}
td
�|D��}td�|D��}���fd�}
��fd
�}xht|	�j	|
�D]Q}|	|�||
kr\�j
|kr�|�j
jnd}|�|�q\q\Wxht|
�j	|	�D]Q}|
|�||	kr��j
|kr|�j
jnd}|
�|�q�q�WdS(Ncss'|]}t|tj�r|VqdS(N(R�R:Rv(R<tfk((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pys	<genexpr>�sRRoic3s|]}t|��VqdS(N(Rz(R<Ry(Rc(sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pys	<genexpr>�sc3s!|]}t|d��VqdS(R�N(R�(R<R(tbackend_reflects_fk_options(sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pys	<genexpr>�sc3s!|]}t|d��VqdS(R�N(R�(R<R(R(sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pys	<genexpr>�scss|]}|j|fVqdS(N(R�(R<Rg((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pys	<genexpr>�scss|]}|j|fVqdS(N(R�(R<Rg((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pys	<genexpr>�scss-|]#}|jdk	r|j|fVqdS(N(R%R"(R<Rg((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pys	<genexpr>�scss-|]#}|jdk	r|j|fVqdS(N(R%R"(R<Rg((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pys	<genexpr>�scs��j|j|jdt|�r��jjtjj�j��tj	ddj
|j�dj
|j�|j
r}d|j
nd|j�ndS(Ntforeign_key_constraints1Detected added foreign key (%s)(%s) on table %s%ss, s%s.RA(RFRyR%RRRGtCreateForeignKeyOpR�RJRKR�R�R�R�R�(R�t
compare_to(RRyR\(sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pyt_add_fk�s		cs��j|j|jdt|�r��jjtjj|j��tj	ddj
|j�dj
|j�|j
r}d|j
nd|j�ndS(NRs3Detected removed foreign key (%s)(%s) on table %s%ss, s%s.RA(RFRyR%RTRRGR�R�RJRKR�R�R�R�R�(R�R	(RR\(sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pyt
_remove_fk�s		(R"R&RR�tget_foreign_keysR*RQtcorrect_for_autogen_foreignkeysRER.R%Ry(RR\RR>RcR[R&tmetadata_fkstconn_fkstconn_fks_by_sigtmetadata_fks_by_sigtmetadata_fks_by_nametconn_fks_by_nameR
Rtremoved_sigR	t	added_sig((RRRcRyR\sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pyt_compare_foreign_keys�sH	



%
%(2t
sqlalchemyRR:RR�tsqlalchemy.engine.reflectionRRt
operationsRtloggingRARRRtsqlalchemy.utilRR�trenderR	t
contextlibtalembic.ddl.baseR
t	getLoggerR�RJRt
DispatcherRTR#R
tdispatch_forR9R3RjRlRztcontextmanagerRXtobjectR�R�R�R�R�R�R�R�RR(((sM/opt/alt/python27/lib/python2.7/site-packages/alembic/autogenerate/compare.pyt<module>s@			l				2 �	

Zerion Mini Shell 1.0