HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/django/db/migrations/operations/__pycache__/special.cpython-310.pyc
o

ʎ�_p�@sLddlmZddlmZGdd�de�ZGdd�de�ZGdd	�d	e�Zd
S)�)�router�)�	Operationc@sJeZdZdZddgZddd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�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_operationsNcCs|pg|_|pg|_dS�N)rr)�selfrr�r
�I/usr/lib/python3/dist-packages/django/db/migrations/operations/special.py�__init__s
z!SeparateDatabaseAndState.__init__cCs2i}|jr
|j|d<|jr|j|d<|jjg|fS)Nrr)rr�	__class__�__qualname__�r	�kwargsr
r
r�deconstructs

�z$SeparateDatabaseAndState.deconstructcC�|jD]}|�||�qdSr�r�state_forwards�r	�	app_label�state�state_operationr
r
rr �
�z'SeparateDatabaseAndState.state_forwardscCs8|jD]}|��}|�||�|�||||�|}qdSr)r�cloner�database_forwards)r	r�
schema_editor�
from_state�to_state�database_operationr
r
rr$s
�z*SeparateDatabaseAndState.database_forwardscCs\i}|jD]}|||<|��}|�||�qt|j�D]}|}||}|�||||�qdSr)rrr�reversed�database_backwards)r	rrrr�	to_states�dboprr
r
rr!,s
�z+SeparateDatabaseAndState.database_backwardscC�dS)Nz(Custom state/database change combinationr
�r	r
r
r�describe;�z!SeparateDatabaseAndState.describe)NN)�__name__�
__module__r�__doc__�serialization_expand_argsrrrrr!r&r
r
r
rrs
rc@sZeZdZdZdZddd�Zdd�Zed	d
��Zdd�Z	d
d�Z
dd�Zdd�Zdd�Z
dS)�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.
    �NFcCs*||_||_|p	g|_|pi|_||_dSr)�sql�reverse_sqlr�hints�elidable)r	r.r/rr0r1r
r
rrHs



zRunSQL.__init__cCsLd|ji}|jdur|j|d<|jr|j|d<|jr|j|d<|jjg|fS)Nr.r/rr0)r.r/rr0r
rrr
r
rrOs�



�zRunSQL.deconstructcC�
|jduSr)r/r%r
r
r�
reversible_�
zRunSQL.reversiblecCrrrrr
r
rrcrzRunSQL.state_forwardscCs0tj|jj|fi|j��r|�||j�dSdSr)r�
allow_migrate�
connection�aliasr0�_run_sqlr.�r	rrrrr
r
rrgs�zRunSQL.database_forwardscCsB|jdur	td��tj|jj|fi|j��r|�||j�dSdS�Nz!You cannot reverse this operation)r/�NotImplementedErrorrr5r6r7r0r8r9r
r
rr!k�

�zRunSQL.database_backwardscCr$)NzRaw SQL operationr
r%r
r
rr&qr'zRunSQL.describecCs�t|ttf�r1|D]%}d}t|ttf�r't|�}|dkr!|\}}ntd|��|j||d�q	dS|tjkrI|jj	�
|�}|D]}|j|dd�q?dSdS)N�zExpected a 2-tuple but got %d)�params)�
isinstance�list�tuple�len�
ValueError�executer,�noopr6�ops�prepare_sql_script)r	r�sqlsr.r>�elements�
statements�	statementr
r
rr8ts 
�
	�zRunSQL._run_sql�NNNF)r(r)rr*rErr�propertyr3rrr!r&r8r
r
r
rr,?s

r,c@s^eZdZdZdZddd�Zdd�Zedd	��Zd
d�Z	dd
�Z
dd�Zdd�Ze
dd��ZdS)�	RunPythonzS
    Run Python code in a context suitable for doing versioned ORM operations.
    FNcCsV||_t|�std��||_|durd|_nt|�std��||_|p$i|_||_dS)Nz*RunPython must be supplied with a callablez2RunPython must be supplied with callable arguments)�atomic�callablerC�code�reverse_coder0r1)r	rQrRrOr0r1r
r
rr�s

zRunPython.__init__cCsPd|ji}|jdur|j|d<|jdur|j|d<|jr!|j|d<|jjg|fS)NrQrRrOr0)rQrRrOr0r
rrr
r
rr�s�




�zRunPython.deconstructcCr2r)rRr%r
r
rr3�r4zRunPython.reversiblecC�dSrr
)r	rrr
r
rr�szRunPython.state_forwardscCs8|��tj|jj|fi|j��r|�|j|�dSdSr)�clear_delayed_apps_cacherr5r6r7r0rQ�appsr9r
r
rr�s�zRunPython.database_forwardscCsB|jdur	td��tj|jj|fi|j��r|�|j|�dSdSr:)rRr;rr5r6r7r0rUr9r
r
rr!�r<zRunPython.database_backwardscCr$)NzRaw Python operationr
r%r
r
rr&�r'zRunPython.describecCrSrr
)rUrr
r
rrE�szRunPython.nooprL)r(r)rr*�reduces_to_sqlrrrMr3rrr!r&�staticmethodrEr
r
r
rrN�s

rNN)�	django.dbr�baserrr,rNr
r
r
r�<module>s
9F