https://t.me/AnonymousX5
Server : Apache
System : Linux cvar2.toservers.com 3.10.0-962.3.2.lve1.5.73.el7.x86_64 #1 SMP Wed Aug 24 21:31:23 UTC 2022 x86_64
User : njnconst ( 1116)
PHP Version : 8.4.18
Disable Function : NONE
Directory :  /usr/lib/python2.7/site-packages/south/creator/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //usr/lib/python2.7/site-packages/south/creator/changes.pyc
�
��Rc@s�dZddlmZddlmZddlmZddlmZddl	m
Z
mZmZddl
mZddlmZd	efd
��YZdefd��YZd
efd��YZdefd��YZdS(sx
Contains things to detect changes - either using options passed in on the
commandline, or by using autodetection, etc.
i����(tprint_function(tmodels(tGenericRelation(t
SortedDict(tremove_useless_attributestfreeze_appst	model_key(tauto_through(tstring_typestBaseChangescBs2eZdZd�Zd�Zd�Zd�ZRS(s
    Base changes class.
    cCsdS(Nt((tself((s9/usr/lib/python2.7/site-packages/south/creator/changes.pytsuggest_namescCs�t�}t�}t�}xh|j�D]Z\}}|dkrI|}q(t|jj|�dtj�rx|||<q(|||<q(W|||fS(s�
        Given a model and its model def (a dict of field: triple), returns three
        items: the real fields dict, the Meta dict, and the M2M fields dict.
        tMetai(Rtitemst
isinstancet_metatget_field_by_nameRtManyToManyField(Rtmodelt	model_deftreal_fieldstmetat
m2m_fieldstnamettriple((s9/usr/lib/python2.7/site-packages/south/creator/changes.pytsplit_model_defs				"
cCs%|jd�\}}tj||�S(Nt.(tsplitRt	get_model(Rtkeyt	app_labelt
model_name((s9/usr/lib/python2.7/site-packages/south/creator/changes.pytcurrent_model_from_key(scCsu|jd�\}}|dkrUtj�}d|_d|_d|_d|_|Stj||�jj	|�dS(NRt_orderi(
RRtIntegerFieldRtattnametcolumntdefaultRRR(RRt	fieldnameRR tfield((s9/usr/lib/python2.7/site-packages/south/creator/changes.pytcurrent_field_from_key,s				(t__name__t
__module__t__doc__RRR!R)(((s9/usr/lib/python2.7/site-packages/south/creator/changes.pyR	s
			tAutoChangescBsPeZdZegZd�Zd�Zd�Zed��Z	ed��Z
RS(sL
    Detects changes by 'diffing' two sets of frozen model definitions.
    cCs(||_||_||_||_dS(N(t
migrationstold_defstold_ormtnew_defs(RR.R/R0R1((s9/usr/lib/python2.7/site-packages/south/creator/changes.pyt__init__Ds			cCs�dg}x�|j�D]�\}}|dkrR|jd|djjj��q|dkr�|jd|djjj��q|dkr�|jd|djjj�|d	jf�q|d
kr�|jd|djjj�|d	jf�q|dkr9|jd
|djjj�|djf�q|dkr�|jd|djjj�djg|dD]}|j^qr�f�q|dkr�|jd|djjj�djg|dD]}|j^q��f�q|dkrD|jd|djjj�djg|dD]}|j^q$�f�q|dkr|jd|djjj�djg|dD]}|j^q}�f�qqWdj|�d S(NtautotAddModelsadd_%sRtDeleteModelsdel_%stAddFieldsadd_field_%s_%sR(tDeleteFieldsdel_field_%s_%stChangeFieldschg_field_%s_%st	new_fieldt	AddUniquesadd_unique_%s_%st_tfieldstDeleteUniquesdel_unique_%s_%stAddIndexsadd_index_%s_%stDeleteIndexsdel_index_%s_%st__iF(tget_changestappendRtobject_nametlowerRtjoin(Rtpartstchange_nametparamstx((s9/usr/lib/python2.7/site-packages/south/creator/changes.pyRJsF	$$				1	1	1	5ccs�	t�}x�|jD]�}||jkr|j|j||j|�\}}}|jdd�dkr�di|j|d6|d6fVxR|D]J}|j|d|}t|�r�di|j|d6|d	6fVq�q�Wx�d d!fD]�\}}	t|j|d��}
|
r�t|
dt	�r4|
g}
nx[|
D]P}|	i|j|d6g|D]#}|j|j
j|�d^q\d6fVq;Wq�q�Wn|j|�qqWx�|jD]�}||jkr�|j|j
|�|j|�\}
}}|jdd�dkrGdi|j
|�d6|
d6fVxQ|D]I}|j||�}t|�r8di|j
|�d6|d	6fVq8q8Wx�d"d#fD]�\}}	t|j|d��}
|
r�t|
dt	�r�|
g}
nx_|
D]T}|	i|j
|�d6g|D]%}|j
|�j
j|�d^qd6fVq�Wq�q�WqGq�q�Wx�|jD]�}||krU|j|j||j|�\}}}|j|j
|�|j|�\}
}}|jdd�dkr�qUnx�|D]�}||
kr�|j|d|}t}x)|jD]}t||�rt}qqW|rpdi|j|d6|d	6||d6fVqpq�q�Wx�|
D]�}||kr{|j||�}t}x)|jD]}t||�r�t}q�q�W|r
di|j
|�d6|d	6|
|d6fVq
q{q{Wxa|D]Y}||kr|j|d|}t|�rndi|j|d6|d	6fVqnqqWx`|D]X}||kry|j||�}t|�r�di|j
|�d6|d	6fVq�qyqyWx�t|�jt|
��D]�}|jt||tt�t|
|tt��r�di|j
|�d6|j|d|d6|j||�d6||d6|
|d6fVn|j|d|}|j||�}|jr�|jr�di|j
|�d6|gd6fVn|jr!|jr!d
i|j|d6|gd6fVn|j|jkr�|jrddi|j
|�d6|gd6fVq�di|j|d6|gd6fVq�q�Wx�t|�jt|��D]�}|j|d|}|j||�}t|�rt|�rdi|j|d6|d	6fVnt|�r�t|�r�di|j
|�d6|d	6fVq�q�Wx�d$d%fD]x\}}}t|j|d��}t|j|d��}|r�t|dt	�r�|g}n|r�t|dt	�r�|g}ntd�|D��}td�|D��}|j|�}|j|�}xP|D]H}|i|j|d6g|D]}|j|d|^q]	d6fVq<	WxO|D]G}|i|j
|�d6g|D]}|j||�^q�	d6fVq�	WqbWqUqUWdS(&s�
        Returns the difference between the old and new sets of models as a 5-tuple:
        added_models, deleted_models, added_fields, deleted_fields, changed_fields
        tmanagedtTruetFalseR5RRt:t	DeleteM2MR(tunique_togetherR=tindex_togetherR?s[]iR<R4tAddM2MR:R>R7t	field_defR6R8t	old_fieldR9told_deftnew_defcss|]}t|�VqdS(N(ttuple(t.0to((s9/usr/lib/python2.7/site-packages/south/creator/changes.pys	<genexpr>8scss|]}t|�VqdS(N(RV(RWtn((s9/usr/lib/python2.7/site-packages/south/creator/changes.pys	<genexpr>9sN(ROsDeleteUnique(RPsDeleteIndex(ROs	AddUnique(RPsAddIndex(ROs	AddUniquesDeleteUnique(RPsAddIndexsDeleteIndex(tsetR/R1RR0tgetRtevalRRRRtaddR!R)RKtIGNORED_FIELD_TYPESRLtintersectiontdifferent_attributesRtdb_indextuniquet	frozensett
difference(Rtdeleted_modelsRt
old_fieldstold_metatold_m2msR'R(tattrt	operationttogetherR<RIt
new_fieldstnew_metatnew_m2mst
field_allowedt
field_typeRSR9t
add_operationt
del_operationtold_togethertnew_togethertdisappearedtappearedtitem((s9/usr/lib/python2.7/site-packages/south/creator/changes.pyRAvs	)
'
D+
)
M)+




*
,"	"#)
2
cCsdt|ttf�oct|�dkoct|dt�oct|dttf�oct|dt�S(s)Returns whether the argument is a triple.iiii(RtlistRVtlenRtdict(tclsR((s9/usr/lib/python2.7/site-packages/south/creator/changes.pyt	is_tripleHs'c	Cs�|j|�s |j|�r*||kS|\}}}|\}}}||}}t|j��}t|j��}d|kr�|d=nd|kr�|d=n||kr|jd�r|jd�s�|jd�r|jd�d|jd�dkr
tSd}}qn|r�d|kr�d	|dkr�d	|d
kr�y6|d
|djd�djd�dkr�tSWntk
r�nX|d}|d=n||kp�||kp�||kS(
s�
        Backwards-compat comparison that ignores orm. on the RHS and not the left
        and which knows django.db.models.fields.CharField = models.CharField.
        Has a whole load of tests in tests/autodetection.py.
        Rbsmodels.sdjango.db.modelssdjango.contrib.gisRi����R
ttotormit'i(R|RzRt
startswithRRKt
IndexError(	R{toldtnewRStold_postold_kwdR9tnew_postnew_kwd((s9/usr/lib/python2.7/site-packages/south/creator/changes.pyR`Ps4	 


&2.


(R*R+R,RR^R2RRAtclassmethodR|R`(((s9/usr/lib/python2.7/site-packages/south/creator/changes.pyR-:s			,	�t
ManualChangescBs)eZdZd�Zd�Zd�ZRS(s6
    Detects changes by reading the command line.
    cCs(||_||_||_||_dS(N(R.tadded_modelstadded_fieldst
added_indexes(RR.R�R�R�((s9/usr/lib/python2.7/site-packages/south/creator/changes.pyR2�s			cCs�g}x"|jD]}|jd|�qWx"|jD]}|jd|�q5Wx"|jD]}|jd|�qZWdj|�jdd�S(Nsadd_model_%ssadd_field_%ssadd_index_%sR;R(R�RBR�R�REtreplace(RtbitsR t
field_namet
index_name((s9/usr/lib/python2.7/site-packages/south/creator/changes.pyR�sc	cs�t|jj�g�}xj|jD]_}tj|jj�|�}|j||t|��\}}}di|d6|d6fVq"Wx�|jD]�}y|j	d�\}}Wn't
tfk
r�td|��nXtj|jj�|�}|j||t|��\}}}di|d6|jj
|�dd6||d	6fVq�Wx�|jD]�}y|j	d�\}}Wn%t
tfk
r�td|�nXtj|jj�|�}d
i|d6|jj
|�dgd6fVqZWdS(NR4RRRs$%r is not a valid field description.R6iR(RRR>R<(RR.RR�RRRRR�Rt	TypeErrort
ValueErrorRRR�tprint(	Rt
model_defsR RRRRt
field_descR�((s9/usr/lib/python2.7/site-packages/south/creator/changes.pyRA�s6%%(R*R+R,R2RRA(((s9/usr/lib/python2.7/site-packages/south/creator/changes.pyR��s		
tInitialChangescBs)eZdZd�Zd�Zd�ZRS(s0
    Creates all models; handles --initial.
    cCsdS(Ntinitial((R((s9/usr/lib/python2.7/site-packages/south/creator/changes.pyR�scCs
||_dS(N(R.(RR.((s9/usr/lib/python2.7/site-packages/south/creator/changes.pyR2�sccs&t|jj�g�}xtjtj|jj���D]�}|jjs:t|jdt	�s:t|jdt
�r}q:n|j||t|��\}}}di|d6|d6fV|rnx�ddfD]�\}}t
|j|d
��}|r�t|dt�r|g}nxM|D]B}	|i|d6g|	D]}
|jj|
�d^q8d6fVqWq�q�Wnx�|j�D]�\}}|jj|�d}
|
jjr�y|
jj}Wq�tk
r�|
jj}q�Xn|
jjs�t|jd
t	�r{di|d6|
d6fVq{q{Wq:WdS(NtproxyRJR4RRROR:RPR>s[]iR<tauto_createdRQR((sunique_togethers	AddUnique(sindex_togethersAddIndex(RR.RRt
get_modelstget_appRtabstracttgetattrRLRKRRR\R[RRRRtreltthrought
through_modeltAttributeError(RR�RRRRRiRjRkR<RIRRR(R�((s9/usr/lib/python2.7/site-packages/south/creator/changes.pyRA�s:(7%
=
"(R*R+R,RR2RA(((s9/usr/lib/python2.7/site-packages/south/creator/changes.pyR��s		N(R,t
__future__Rt	django.dbRt#django.contrib.contenttypes.genericRtdjango.utils.datastructuresRtsouth.creator.freezerRRRtsouth.utilsRtsouth.utils.py3RtobjectR	R-R�R�(((s9/usr/lib/python2.7/site-packages/south/creator/changes.pyt<module>s*�M:

https://t.me/AnonymousX5 - 2025