+
    Tj@                     d    ^ RI Ht ^RIHtHt  ! R R]4      t ! R R]4      t ! R R]4      tR	# )
    )router)	OperationOperationCategoryc                   l   a  ] tR t^t o Rt]P                  tRR.tRR lt	R t
R tR tR	 tR
 tRtV tR# )SeparateDatabaseAndStatea  
Take two lists of operations - ones that will be used for the database,
and ones that will be used for the state change. This allows operations
that don't support state change to have it applied, or have operations
that affect the state or not the database, or so on.
database_operationsstate_operationsNc                J    T;'       g    . V n         T;'       g    . V n        R # Nr   r	   )selfr   r	   s   &&&\/var/www/idalgo/venv/lib/python3.14/site-packages/django/db/migrations/operations/special.py__init__!SeparateDatabaseAndState.__init__   s"    #6#<#<"  0 6 6B    c                    / pV P                   '       d   V P                   VR &   V P                  '       d   V P                  VR&   V P                  P                  . V3# r   )r   r	   	__class____qualname__r   kwargss   & r   deconstruct$SeparateDatabaseAndState.deconstruct   sX    ###,0,D,DF()   )-)>)>F%&++R88r   c                N    V P                    F  pVP                  W4       K  	  R # r   r	   state_forwardsr   	app_labelstatestate_operations   &&& r   r   'SeparateDatabaseAndState.state_forwards        #44O**9<  5r   c                    V P                    F8  pVP                  4       pVP                  W4       VP                  WW44       TpK:  	  R # r   )r   cloner   database_forwards)r   r   schema_editor
from_stateto_statedatabase_operations   &&&&& r   r$   *SeparateDatabaseAndState.database_forwards!   sK     #'":":!'')H--iB00* "J #;r   c                    / pV P                    F(  pWEV&   VP                  4       pVP                  W4       K*  	  \        V P                   4       F  pTpWW,          pVP	                  WW44       K!  	  R # r   )r   r#   r   reverseddatabase_backwards)r   r   r%   r&   r'   	to_statesdbopr(   s   &&&&&   r   r,   +SeparateDatabaseAndState.database_backwards,   ss     	,,D&dO~~'H	4 - #+4+C+C"D!J 4H11* #Er   c                    R # )z(Custom state/database change combination r   s   &r   describe!SeparateDatabaseAndState.describe>   s    9r   r   )NN)__name__
__module__r   __firstlineno____doc__r   MIXEDcategoryserialization_expand_argsr   r   r   r$   r,   r3   __static_attributes____classdictcell____classdict__s   @r   r   r      sF      !&&H!68J K79=	"$: :r   r   c                   ~   a  ] tR t^Bt o Rt]P                  tRtRR lt	R t
]R 4       tR tR tR	 tR
 tR tRtV tR# )RunSQLz
Run some raw SQL. A reverse SQL statement may be provided.

Also accept a list of operations that represent the state change effected
by this SQL change, in case it's custom column/table creation/deletion.
 Nc                n    Wn         W n        T;'       g    . V n        T;'       g    / V n        WPn        R # r   )sqlreverse_sqlr	   hintselidable)r   rD   rE   r	   rF   rG   s   &&&&&&r   r   RunSQL.__init__M   s1     & 0 6 6B[[b
 r   c                   R V P                   /pV P                  e   V P                  VR&   V P                  '       d   V P                  VR&   V P                  '       d   V P                  VR&   V P                  P
                  . V3# )rD   rE   r	   rF   )rD   rE   r	   rF   r   r   r   s   & r   r   RunSQL.deconstructV   sz    488
 '$($4$4F=!   )-)>)>F%&:::"jjF7O++R88r   c                    V P                   R J# r   )rE   r2   s   &r   
reversibleRunSQL.reversibleb   s    t++r   c                N    V P                    F  pVP                  W4       K  	  R # r   r   r   s   &&& r   r   RunSQL.state_forwardsf   r!   r   c                    \         P                  ! VP                  P                  V3/ V P                  B '       d   V P                  W P                  4       R # R # r   )r   allow_migrate
connectionaliasrF   _run_sqlrD   r   r   r%   r&   r'   s   &&&&&r   r$   RunSQL.database_forwardsj   sI    $$**I
9=
 
 MM-2
r   c                    V P                   f   \        R4      h\        P                  ! VP                  P
                  V3/ V P                  B '       d   V P                  W P                   4       R # R # Nz!You cannot reverse this operation)rE   NotImplementedErrorr   rQ   rR   rS   rF   rT   rU   s   &&&&&r   r,   RunSQL.database_backwardsp   sc    #%&IJJ$$**I
9=
 
 MM-)9)9:
r   c                    R # )zRaw SQL operationr1   r2   s   &r   r3   RunSQL.describex   s    "r   c                   \        V\        \        34      '       de   V F\  pR p\        V\        \        34      '       d*   \        V4      pV^8X  d   Vw  r4M\	        RV,          4      hVP                  W4R7       K^  	  R # V\        P                  8w  dD   VP                  P                  P                  V4      pV F  pVP                  VR R7       K  	  R # R # )NzExpected a 2-tuple but got %d)params)
isinstancelisttuplelen
ValueErrorexecuterA   nooprR   opsprepare_sql_script)r   r%   sqlsrD   r^   elements
statements	statements   &&&     r   rT   RunSQL._run_sql{   s    dT5M**cD%=11"3xH1}&)V()H8)STT%%c%9  V[[ &1155HHNJ'	%%i%= ( !r   )rG   rF   rE   rD   r	   NNNF)r5   r6   r   r7   r8   r   SQLr:   re   r   r   propertyrL   r   r$   r,   r3   rT   r<   r=   r>   s   @r   rA   rA   B   sX      !$$HD!
9 , ,=3;#> >r   rA   c                      a  ] tR t^t o Rt]P                  tRtRR lt	R t
]R 4       tR tR tR	 tR
 t]R 4       tRtV tR# )	RunPythonzK
Run Python code in a context suitable for doing versioned ORM operations.
FNc                    W0n         \        V4      '       g   \        R 4      hWn        Vf	   RV n        M"\        V4      '       g   \        R4      hW n        T;'       g    / V n        WPn        R# )z*RunPython must be supplied with a callableNz2RunPython must be supplied with callable arguments)atomiccallablerc   codereverse_coderF   rG   )r   ru   rv   rs   rF   rG   s   &&&&&&r   r   RunPython.__init__   s`     ~~IJJ	 $DL)) !UVV ,[[b
 r   c                   R V P                   /pV P                  e   V P                  VR&   V P                  e   V P                  VR&   V P                  '       d   V P                  VR&   V P                  P
                  . V3# )ru   rv   rs   rF   )ru   rv   rs   rF   r   r   r   s   & r   r   RunPython.deconstruct   su    DII
 (%)%6%6F>";;"#{{F8:::"jjF7O++R88r   c                    V P                   R J# r   )rv   r2   s   &r   rL   RunPython.reversible   s      ,,r   c                    R # r   r1   )r   r   r   s   &&&r   r   RunPython.state_forwards   s     	r   c                    VP                  4        \        P                  ! VP                  P                  V3/ V P
                  B '       d   V P                  VP                  V4       R # R # r   )clear_delayed_apps_cacher   rQ   rR   rS   rF   ru   appsrU   s   &&&&&r   r$   RunPython.database_forwards   sY     	++-$$**I
9=
 
 IIjoo}5
r   c                    V P                   f   \        R4      h\        P                  ! VP                  P
                  V3/ V P                  B '       d   V P                  VP                  V4       R # R # rX   )rv   rY   r   rQ   rR   rS   rF   r   rU   s   &&&&&r   r,   RunPython.database_backwards   se    $%&IJJ$$**I
9=
 
 joo}=
r   c                    R # )zRaw Python operationr1   r2   s   &r   r3   RunPython.describe   s    %r   c                    R # r   r1   )r   r%   s   &&r   re   RunPython.noop   s    r   )rs   ru   rG   rF   rv   rm   )r5   r6   r   r7   r8   r   PYTHONr:   reduces_to_sqlr   r   ro   rL   r   r$   r,   r3   staticmethodre   r<   r=   r>   s   @r   rq   rq      sb      !''HN!$
9 - -
6>&  r   rq   N)	django.dbr   baser   r   r   rA   rq   r1   r   r   <module>r      s5     .9:y 9:xG>Y G>TJ	 Jr   