HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //usr/local/lib/python3.10/dist-packages/sqlalchemy/sql/__pycache__/naming.cpython-310.pyc
o

���g��
@s"dZddlmZddlZddlmZddlmZddlm	Z	ddl
mZdd	l
mZdd
l
m
Z
ddl
mZddl
mZdd
l
mZddl
mZddl
mZddlmZddlmZGdd�d�ZededededediZdd�Zdd�Ze�ed�dd ��Ze�e
d!�e�ed!�d"d#���ZdS)$z5Establish constraint and index naming conventions.


�)�annotationsN�)�events)�
_NONE_NAME)�conv)�CheckConstraint)�Column)�
Constraint)�ForeignKeyConstraint)�Index)�PrimaryKeyConstraint)�Table)�UniqueConstraint�)�event)�excc@s\eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�ConventionDictcCs*||_t|t�|_||_||_|j|_dS�N)�const�
isinstancer
�_is_fk�table�
convention�name�_const_name)�selfrrr�r�@/usr/local/lib/python3.10/dist-packages/sqlalchemy/sql/naming.py�__init__"s
zConventionDict.__init__cCs|jjSr)rr�rrrr�_key_table_name)szConventionDict._key_table_namecCsp|jrz|jj|}Wn
tyYdSwt|j|�St|jj�}z||}Wn
ty2YdSwt||�S)N�)rr�elements�
IndexError�getattr�parent�list�columns)r�idx�attrname�fk�cols�colrrr�	_column_X,s��
zConventionDict._column_XcCs2|jdtfvrt�d��t|jt�sd|j_|jS)NzcNaming convention including %(constraint_name)s token requires that constraint is explicitly named.)rrr�InvalidRequestErrorrrrrrrrr�_key_constraint_name=s�z#ConventionDict._key_constraint_namecC�|�|d�S)N�key�r-�rr(rrr�_key_column_X_keyHsz ConventionDict._key_column_X_keycCr0)Nrr2r3rrr�_key_column_X_nameN�z!ConventionDict._key_column_X_namecCr0)N�
_ddl_labelr2r3rrr�_key_column_X_labelQr6z"ConventionDict._key_column_X_labelcCs>|jjd}|j�d�}t|�dkr|\}}}|S|\}}|S)Nr�.�)rr"�target_fullname�split�len)rr*�refs�	refschema�reftable�refcolrrr�_key_referred_table_nameTs
�z'ConventionDict._key_referred_table_namecCs|jj|}|jjSr)rr"�columnr)rr(r*rrr�_key_referred_column_X_name]sz*ConventionDict._key_referred_column_X_namec
	Cs,||jvr|j||j|j�St|d|�rt|d|��St�d|�}|r�|�d�}|�d�}|rz|jr:|jj	}nt
|jj�}g}t|�D]%\}}d|�
d|d�}z|�t||�|��WqFtykt|��w|�d�rsdnd	}	|	�|�Sd|�
|d�}t|�}t||�r�t||�|�St|��)
Nz_key_%sz.*_?column_(\d+)(_?N)?_.+rr�_key_�0�X�_r!)rrr�hasattrr$�re�match�grouprr"r&r'�	enumerate�replace�append�AttributeError�KeyError�
startswith�join�int)
rr1�col_templater(�	multiples�elems�tokens�elem�attr�seprrr�__getitem__ds6



�

zConventionDict.__getitem__N)
�__name__�
__module__�__qualname__rr r-r/r4r5r8rBrDr\rrrrr!s	r�ix�pk�ck�uqr*cCsH|jD]}|tvrt||vr|t|S||vr!||SqdSr)�__mro__�_prefix_dict)�dict_r1�super_rrr�_get_convention�s
�rhcCs~|j}t|jt|��}t|jt�r|jS|dur7t|jt�s7|jdus,d|vs,|jtur7t|t|||j��S|tur=dSdS)N�constraint_name)	�metadatarh�naming_convention�typerrrrr)rrrjrrrr�_constraint_name_for_table�s$
�

���rm�'_sa_event_column_added_to_pk_constraintcCs2|jr|j}d|_t||�}|r||_dSdSdSr)�_implicit_generatedrrrm)�
pk_constraintr,r�newnamerrr�_column_added_to_pk_constraint�s

�rr�after_parent_attachcsht|t�rt�|d�fdd��dSt|t�r0t�jt�s"�jtur$dSt�|�}|r2|�_dSdSdS)Nrscs
t�|�Sr)�_constraint_name)r,r�rrr�<lambda>�s
z"_constraint_name.<locals>.<lambda>)	rrr�listenr
rrrrm)rrrqrrurrt�s

�


�rt)�__doc__�
__future__rrJr!r�baserr"r�schemarrr	r
rrr
rrrrrerhrm�listens_forrrrtrrrr�<module>s@e�	
�