https://t.me/RX1948
Server : Apache
System : Linux iad1-shared-b8-43 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64
User : dh_edsupp ( 6597262)
PHP Version : 8.2.26
Disable Function : NONE
Directory :  /lib/python3/dist-packages/django/db/backends/sqlite3/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //lib/python3/dist-packages/django/db/backends/sqlite3/__pycache__/introspection.cpython-310.pyc
o

�a�O�@s�ddlZddlmZddlZddlmZmZmZddl	m
Z
ddlmZedej
d�Zed�Zd	d
�ZGdd�d�ZGd
d�de�ZdS)�N)�
namedtuple)�BaseDatabaseIntrospection�	FieldInfo�	TableInfo)�Index)�_lazy_re_compiler)�pk�has_json_constraintz&^\s*(?:var)?char\s*\(\s*(\d+)\s*\)\s*$cCst�|�}|r
t|d�SdS)z8 Extract the size number from a "varchar(11)" type name �N)�
field_size_re�search�int)�name�m�r�J/usr/lib/python3/dist-packages/django/db/backends/sqlite3/introspection.py�get_field_sizes
rc@s�eZdZidd�dd�dd�dd�dd�d	d
�dd
�dd
�dd�dd�dd�dd�dd�dd�dd�dd�dd�dd d!��Zd"d#�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�timecCs"|���dd�d��}|j|S)N�(r
r)�lower�split�strip�base_data_types_reverse)�self�keyrrr�__getitem__4s
z#FlexibleFieldLookupDict.__getitem__N)�__name__�
__module__�__qualname__r6r9rrrrrsP��������	�
���
������rcs�eZdZe�Z�fdd�Zdd�Zdd�Zddd	�Zd
d�Z	dd
�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Z�ZS)�DatabaseIntrospectioncs.t��||�}|jr|dvrdS|jrdS|S)N>rrr�	AutoField�	JSONField)�super�get_field_typerr	)r7�	data_type�description�
field_type��	__class__rrrA<sz$DatabaseIntrospection.get_field_typecCs|�d�dd�|��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 namecSs"g|]
}t|d|dd��qS)rr
)r)�.0�rowrrr�
<listcomp>Ns"z8DatabaseIntrospection.get_table_list.<locals>.<listcomp>)�execute�fetchall)r7�cursorrrr�get_table_listFs
z$DatabaseIntrospection.get_table_listcs�|�d|jj�|��|��}|�||��t��|jjjr<|D]}|d}d|}|�d||g��	�}|r;��
|�q ��fdd�|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
                csHg|] \}}}}}}t||dt|�dd||��|�|dk|�v��qS)Nr
)rr�get)rG�cidrrB�notnull�defaultr��
collations�json_columnsrrrIgs���z?DatabaseIntrospection.get_table_description.<locals>.<listcomp>)rJ�
connection�ops�
quote_namerK�_get_column_collations�set�features�can_introspect_json_field�fetchone�add)r7rL�
table_name�
table_info�line�column�json_constraint_sqlr	rrRr�get_table_descriptionPs&
��
��z+DatabaseIntrospection.get_table_descriptionrcCs|�||�}||d�gS)N)�tablera)�get_primary_key_column)r7rLr^�table_fields�pk_colrrr�
get_sequencesosz#DatabaseIntrospection.get_sequencescCsti}|�d|g�|��\}}|dkr|S||�d�d|�d��}|�d�D]�}|��}|�d�r4q(t�d|tj	�}|s?q(d	d
�|�
�D�\}	}
|�d�r_t�d|tj	�}|d�d
�}n	|��d�d
�}|�d|	g�|��d}|d��}
|
�d�|
�d�}}|
|d|�}
|
�d�D]#}|��}|�d�r�q�|�dd�d�d
�}||
kr�||	f||<nq�q(|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')�viewr2r
�)�,�UNIQUEz$references (\S*) ?\(["|]?(.*)["|]?\)cSsg|]}|�d��qS)�"�r5�rG�srrrrI�sz7DatabaseIntrospection.get_relations.<locals>.<listcomp>zFOREIGN KEYzFOREIGN KEY\s*\(([^\)]*)\).*rnrz1SELECT sql FROM sqlite_master WHERE tbl_name = %s� )
rJr\�index�rindexr4r5�
startswith�rer�I�groups�matchrK)r7rLr^�	relations�
create_sql�
table_type�results�
field_descrrdra�
field_name�result�other_table_results�li�ri�
other_desc�
other_namerrr�
get_relationsssJ�


��z#DatabaseIntrospection.get_relationscCs�g}|�d|dg�|��d��}||�d�d|�d��}t|�d��D]'\}}|��}|�d�r5q't�	d	|tj
�}|s@q'|�td
d�|�
�D���q'|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 = %srdrr2r
rkrlrmz("(.*)".*references (.*) \(["|](.*)["|]\)css�|]}|�d�VqdS)rnNrorprrr�	<genexpr>���z8DatabaseIntrospection.get_key_columns.<locals>.<genexpr>)rJr\r5rsrt�	enumerater4rurvrrw�append�tuplerx)r7rLr^�key_columnsr}�field_indexr~rrrr�get_key_columns�s
z%DatabaseIntrospection.get_key_columnsc	Cs�|�d|g�|��}|durtd|��|\}}|dkrdS||�d�d|�d��}|�d�D]}|��}t�d	|�}|rP|drJ|dS|d
Sq2dS)z>Return the column name of the primary key for the given table.riNzTable %s does not existrjr2r
rkrlz1(?:(?:["`\[])(.*)(?:["`\]])|(\w+)).*PRIMARY KEY.*�)	rJr\�
ValueErrorrsrtr4r5rvry)	r7rLr^rHr{r|�
fields_sqlr~rrrrre�s$� �z,DatabaseIntrospection.get_primary_key_columnc
Csdi}|�d|jj�|��|��D]}|dd�\}}}}}	|gdd||	fddd�|d|<q|S)NzPRAGMA foreign_key_list(%s)�F��columns�primary_key�unique�foreign_key�checkrszfk_%d)rJrUrVrWrK)
r7rLr^�constraintsrH�id_�_rd�from_�torrr�_get_foreign_key_constraints�s�z2DatabaseIntrospection._get_foreign_key_constraintscCs�d}d}d}d}d}g}d}	g}
d}|D�]!}|�tjjd�r$|d7}n"|�tjjd�r8|d8}|dkr7�nn|dkrF|�tjjd�rFn�|durU|�tjjd�}|rUq|r�|durz|jtjjtjjfvrj|j}n|jtjjj	j
krz|jdd�}|�tjjd	�r�d
}|}n_|r�||kr�|r�d}q|jtjjtjjfvr�|�|j�nB|jtjjj	j
kr�|�|jdd��n.|dur�|jtjjtjjfvr�|j}n|jtjjj	j
kr�|jdd�}|�tjjd	�r�|g}|�tjjd�r�d
}	|}
q|	�r6|
|kr�|
r�d}	q|jtjjtjjfv�r|j|v�r|
�|j�q|jtjjj	j
k�r6|jdd�|v�r6|
�|jdd��q|�rCd
|ddddd�nd}|
�rQd
|
ddddd
�nd}||||fS)NFrr2r
rkrl�
CONSTRAINT���rmT�CHECK)r�r�r�r�r�rs)r�r�r�r�r�rs)ry�sqlparse�tokens�Punctuation�Keyword�ttype�Name�value�Literal�String�Symbolr�)r7r�r��token�is_constraint_definitionr�constraint_namer��unique_columnsr��
check_columns�braces_deep�unique_braces_deep�check_braces_deep�unique_constraint�check_constraintrrr�&_parse_column_or_constraint_definition�s�

����������z<DatabaseIntrospection._parse_column_or_constraint_definitioncCs�t�|�d}i}d}dd�|��D�}|D]}|�tjjd�r"nq	|�||�\}}	}
}|	rA|r7|	||<n
|d7}|	|d|<|
rT|rJ|
||<n
|d7}|
|d|<|�tjjd�r_	|Sq$)	Nrcss�|]}|js|VqdS�N)�
is_whitespace)rGr�rrrr�Qr�zADatabaseIntrospection._parse_table_constraints.<locals>.<genexpr>r2Tr
z__unnamed_constraint_%s__rk)r��parse�flattenryr�r�r�)r7�sqlr��	statementr��unnamed_constrains_indexr�r�r�r�r��	end_tokenrrr�_parse_table_constraintsKs0�

�z.DatabaseIntrospection._parse_table_constraintsc	Cs�i}z|�d|jj�|�f���d}Wn	tyYnwdd�|�||�D�}|�|�||��|�d|jj�|��|�	�D]m}|dd�\}}}	|�d|jj�|��|��p_d	\}
|
sdqC|�d
|jj�|��|�	�D]\}}}
||vr�gdt
|	�dddd
�||<||d�|
�qt||dr�tj
||d<|�|
�}|dur�|||d<qC|�||�}|r�|gdddddd
�|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=%srcSsh|]}|j�qSr)r�rG�inforrr�	<setcomp>zsz8DatabaseIntrospection.get_constraints.<locals>.<setcomp>zPRAGMA index_list(%s)N�z<SELECT sql FROM sqlite_master WHERE type='index' AND name=%sr�zPRAGMA index_info(%s)FTr�r�rs�type�orders�__primary__)rJrUrVrWr\�	TypeErrorrc�updater�rKrr�r�suffix�_get_index_columns_ordersrer�)r7rLr^r��table_schemar�rH�numberrsr�r��
index_rank�column_rankrar��	pk_columnrrr�get_constraintsisj������
�
�
�z%DatabaseIntrospection.get_constraintscCsPt�|�d}|D]}t|tjj�r%t|��d��d�}dd�|D�Sq	dS)Nr�()�, cSsg|]}|�d�rdnd�qS)�DESC�ASC)�endswithr�rrrrI�szCDatabaseIntrospection._get_index_columns_orders.<locals>.<listcomp>)r�r��
isinstancer��Parenthesis�strr5r4)r7r�r�r�r�rrrr��s�z/DatabaseIntrospection._get_index_columns_ordersc
Cs�|�d|g���}|s
iS|d}tt�|�dd��d��d�}i}|D],}|dd���}|d�d�}	t|�D]\}
}|dkrK||
d}nq;d}|||	<q&|S)	Nzn
            SELECT sql
            FROM sqlite_master
            WHERE type = 'table' AND name = %s
        rr�r�r�r
rn�COLLATE)rJr\r�r�r�r5r4r�)
r7rLr^rHr�r�rSrar��column_namersr��	collationrrrrX�s*��"�
z,DatabaseIntrospection._get_column_collations)r)r:r;r<r�data_types_reverserArMrcrhr�r�rer�r�r�r�r�rX�
__classcell__rrrErr=9s


:ZOr=)rv�collectionsrr��%django.db.backends.base.introspectionrr�
BaseFieldInfor�django.db.modelsr�django.utils.regex_helperr�_fieldsrrrr=rrrr�<module>s	

https://t.me/RX1948 - 2025