Ë
    ðmxiÇ  ã            
      ó€  — d Z ddlmZ ddlZddlmZ ddlmZ ddlm	Z	 ddl
mZ dd	l
mZ dd
l
mZ ddl
mZ ddl
mZ ddl
mZ ddl
mZ ddl
mZ ddlmZ ddlmZ  G d„ d«      ZededededediZd„ Zd„ Z ej2                  ed«      d„ «       Z ej2                  ed«       ej2                  ed«      d„ «       «       Zy) z2Establish constraint and index naming conventions.é    )ÚannotationsNé   )Úevents)Ú
_NONE_NAME)Úconv)ÚCheckConstraint)ÚColumn)Ú
Constraint)ÚForeignKeyConstraint)ÚIndex)ÚPrimaryKeyConstraint)ÚTable)ÚUniqueConstrainté   )Úevent)Úexcc                  óH   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zy)ÚConventionDictc                óz   — || _         t        |t        «      | _        || _        || _        |j                  | _        y ©N)ÚconstÚ
isinstancer   Ú_is_fkÚtableÚ
conventionÚnameÚ_const_name)Úselfr   r   r   s       úL/home/htdocs/ttos/venv/lib/python3.12/site-packages/sqlalchemy/sql/naming.pyÚ__init__zConventionDict.__init__   s2   € ØˆŒ
Ü  Ô(<Ó=ˆŒØˆŒ
Ø$ˆŒØ Ÿ:™:ˆÕó    c                ó.   — | j                   j                  S r   )r   r   ©r   s    r   Ú_key_table_namezConventionDict._key_table_name&   s   € Ø�z‰z�‰Ðr!   c                ó  — | j                   r0	 | j                  j                  |   }t        |j                  |«      S t        | j                  j                  «      }	 ||   }t        ||«      S # t
        $ r Y yw xY w# t
        $ r Y yw xY w)NÚ )r   r   ÚelementsÚgetattrÚparentÚ
IndexErrorÚlistÚcolumns)r   ÚidxÚattrnameÚfkÚcolsÚcols         r   Ú	_column_XzConventionDict._column_X)   s�   € Ø�;Š;ð4Ø—Z‘Z×(Ñ(¨Ñ-�ô ˜rŸy™y¨(Ó3Ð3ä˜Ÿ
™
×*Ñ*Ó+ˆDð.Ø˜3‘i�ô ˜s HÓ-Ð-øô ò Ùðûô ò Ùðús#   ŽA. ÁA= Á.	A:Á9A:Á=	B	ÂB	c                óÂ   — | j                   d t        fv rt        j                  d«      ‚t	        | j                   t
        «      sd | j                  _        | j                   S )NzcNaming convention including %(constraint_name)s token requires that constraint is explicitly named.)r   r   r   ÚInvalidRequestErrorr   r   r   r   r#   s    r   Ú_key_constraint_namez#ConventionDict._key_constraint_name:   sV   € Ø×Ñ ¤jÐ1Ñ1Ü×)Ñ)ð2óð ô
 ˜$×*Ñ*¬DÔ1Ø"ˆD�J‰JŒOØ×ÑÐr!   c                ó&   — | j                  |d«      S )NÚkey©r2   ©r   r-   s     r   Ú_key_column_X_keyz ConventionDict._key_column_X_keyE   s   € ð �~‰~˜c 5Ó)Ð)r!   c                ó&   — | j                  |d«      S )Nr   r8   r9   s     r   Ú_key_column_X_namez!ConventionDict._key_column_X_nameK   s   € Ø�~‰~˜c 6Ó*Ð*r!   c                ó&   — | j                  |d«      S )NÚ
_ddl_labelr8   r9   s     r   Ú_key_column_X_labelz"ConventionDict._key_column_X_labelN   s   € Ø�~‰~˜c <Ó0Ð0r!   c                ó¤   — | j                   j                  d   }|j                  j                  d«      }t	        |«      dk(  r|\  }}}|S |\  }}|S )Nr   ú.é   )r   r'   Útarget_fullnameÚsplitÚlen)r   r/   ÚrefsÚ	refschemaÚreftableÚrefcols         r   Ú_key_referred_table_namez'ConventionDict._key_referred_table_nameQ   s[   € Ø�Z‰Z× Ñ  Ñ#ˆØ×!Ñ!×'Ñ'¨Ó,ˆÜˆt‹9˜Š>Ø*.Ñ'ˆI�x ð ˆð  $ÑˆH�fØˆr!   c                ó`   — | j                   j                  |   }|j                  j                  S r   )r   r'   Úcolumnr   )r   r-   r/   s      r   Ú_key_referred_column_X_namez*ConventionDict._key_referred_column_X_nameZ   s&   € Ø�Z‰Z× Ñ  Ñ%ˆð �y‰y�~‰~Ðr!   c                ób  — || j                   v r* | j                   |   | j                  | j                  «      S t        | d|z  «      r t	        | d|z  «      «       S t        j                  d|«      }|�r|j                  d«      }|j                  d«      }|r·| j                  r| j                  j                  }nt        | j                  j                  «      }g }t        |«      D ]?  \  }}d|j                  d|z   d«      z   }	 |j                   t	        | |«      |«      «       ŒA |j#                  d«      rdnd	}	|	j%                  |«      S d|j                  |d«      z   }t'        |«      }t        | |«      r t	        | |«      |«      S t!        |«      ‚# t        $ r t!        |«      ‚w xY w)
Nz_key_%sz.*_?column_(\d+)(_?N)?_.+r   r   Ú_key_Ú0ÚXÚ_r&   )r   r   r   Úhasattrr(   ÚreÚmatchÚgroupr   r'   r+   r,   Ú	enumerateÚreplaceÚappendÚAttributeErrorÚKeyErrorÚ
startswithÚjoinÚint)
r   r7   Úcol_templater-   Ú	multiplesÚelemsÚtokensÚelemÚattrÚseps
             r   Ú__getitem__zConventionDict.__getitem__a   s�  € Ø�$—/‘/Ñ!Ø'�4—?‘? 3Ñ'¨¯
©
°D·J±JÓ?Ð?Ü�T˜9 s™?Ô+Ø1”7˜4 ¨S¡Ó1Ó3Ð3äŸ8™8Ð$@À#ÓFˆLÚØ"×(Ñ(¨Ó+�Ø(×.Ñ.¨qÓ1�	áØ—{’{Ø $§
¡
× 3Ñ 3™ä $ T§Z¡Z×%7Ñ%7Ó 8˜Ø�FÜ%.¨uÓ%5ò 0™	˜˜TØ&¨¯©°S¸9±_ÀcÓ)JÑJ˜ð0Ø"ŸM™MÐ*=¬'°$¸Ó*=¸cÓ*BÕCð0ð "+×!5Ñ!5°cÔ!:™#À�CØŸ8™8 FÓ+Ð+à" S§[¡[°°cÓ%:Ñ:�DÜ˜c›(�CÜ˜t TÔ*Ø2œw t¨TÓ2°3Ó7Ð7Ü�s‹mÐøô  .ò 0Ü"*¨3£-Ð/ð0ús   Ä!FÆF.N)Ú__name__Ú
__module__Ú__qualname__r    r$   r2   r5   r:   r<   r?   rJ   rM   rf   © r!   r   r   r      s4   „ ò&òò.ò"	 ò*ò+ò1òòór!   r   ÚixÚpkÚckÚuqr/   c                ó~   — |j                   D ].  }|t        v rt        |   | v r| t        |      c S || v sŒ)| |   c S  y r   )Ú__mro__Ú_prefix_dict)Údict_r7   Úsuper_s      r   Ú_get_conventionrt   ‹   sO   € Ø—+‘+ò ˆØ”\Ñ!¤l°6Ñ&:¸eÑ&CØœ fÑ-Ñ.Ò.Ø�uŠ_Ø˜‘=Ò ð	ð r!   c                óz  — |j                   }t        |j                  t        | «      «      }t	        | j
                  t        «      r| j
                  S |�_t	        | j
                  t        «      sE| j
                  �d|v s| j
                  t        u r#t        |t        | ||j                  «      z  «      S |t        u ry y )NÚconstraint_name)	Úmetadatart   Únaming_conventionÚtyper   r   r   r   r   )r   r   rw   r   s       r   Ú_constraint_name_for_tablerz   •   s§   € Ø�~‰~€HÜ  ×!;Ñ!;¼TÀ%»[ÓI€Jä�%—*‘*œdÔ#Ø�z‰zÐàÐÜ˜5Ÿ:™:¤tÔ,à�J‰JÐØ  JÑ.Ø�z‰zœZÑ'ô ØÜ˜U E¨8×+EÑ+EÓFñGó
ð 	
ð 
”zÑ	!Øð 
"r!   Ú'_sa_event_column_added_to_pk_constraintc                óp   — | j                   r*| j                  }d | _        t        | |«      }|r|| _        y y y r   )Ú_implicit_generatedr   r   rz   )Úpk_constraintr1   r   Únewnames       r   Ú_column_added_to_pk_constraintr€   ¬   sC   € ð ×(Ò(ð
 ×#Ñ#ˆØ!ˆÔÜ,¨]¸EÓBˆÙØ!(ˆMÕð ð )r!   Úafter_parent_attachc                ó  ‡ — t        |t        «      rt        j                  |dˆ fd„«       y t        |t        «      rDt        ‰ j
                  t        «      s‰ j
                  t        u ry t        ‰ |«      }|r|‰ _        y y y )Nr�   c                ó   •— t        ‰|«      S r   )Ú_constraint_name)r1   r   r   s     €r   ú<lambda>z"_constraint_name.<locals>.<lambda>È   s   ø€ Ô/°°uÓ=€ r!   )	r   r	   r   Úlistenr   r   r   r   rz   )r   r   r   s   `  r   r„   r„   ¼   sn   ø€ ô �%œÔ ô 	�‰ØØ!Û=õ	
ô 
�Eœ5Ô	!Ü�e—j‘j¤$Ô'¨5¯:©:¼Ñ+CØä,¨U°EÓ:ˆÙØ ˆE�Jð ð 
"r!   )Ú__doc__Ú
__future__r   rT   r&   r   Úbaser   r'   r   Úschemar   r	   r
   r   r   r   r   r   r   r   r   rq   rt   rz   Úlistens_forr€   r„   rj   r!   r   ú<module>rŒ      sÓ   ðñ 9å "ã 	å Ý Ý "Ý #Ý Ý Ý (Ý Ý (Ý Ý $Ý Ý ÷añ aðJ 
ˆ4Ø˜$Ø�TØ�dØ˜$ð€òòð. €×ÑØÐCóñ
)óð
)ð €×Ñ�:Ð4Ó5Ø€×Ñ�5Ð/Ó0ñ!ó 1ó 6ñ!r!   