
    -h{              
       v   S r SSKrSSKJr  SSKJr  SSKJr  SSKJr  SSKJ	r	  SS	KJ
r
  SS
KJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr   " S S\5      r\S\S\S\S\S0rS rS r\R.                  " \S5      S 5       r\R.                  " \
S5      \R.                  " \S5      S 5       5       rg)z5Establish constraint and index naming conventions.


    N   )events)
_NONE_NAME)conv)CheckConstraint)Column)
Constraint)ForeignKeyConstraint)Index)PrimaryKeyConstraint)Table)UniqueConstraint   )event)excc                   P    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rSrg)ConventionDict   c                 t    Xl         [        U[        5      U l        X l        X0l        UR                  U l        g N)const
isinstancer
   _is_fktable
conventionname_const_name)selfr   r   r   s       jC:\Users\ROHAN GUPTA\OneDrive\Desktop\mathbuddy-assessment\venv\Lib\site-packages\sqlalchemy/sql/naming.py__init__ConventionDict.__init__   s,    
 (<=
$ ::    c                 .    U R                   R                  $ r   )r   r   r   s    r   _key_table_nameConventionDict._key_table_name&   s    zzr"   c                 "   U R                   (       a0   U R                  R                  U   n[        UR                  U5      $ [        U R                  R                  5      n XA   n[        XR5      $ ! [
         a     gf = f! [
         a     gf = f)N )r   r   elementsgetattrparent
IndexErrorlistcolumns)r   idxattrnamefkcolscols         r   	_column_XConventionDict._column_X)   s    ;;4ZZ((- ryy(33

**+D.i s--    s#   A1 "B 1
A>=A>
BBc                     U R                   S [        4;   a  [        R                  " S5      e[	        U R                   [
        5      (       d  S U R                  l        U R                   $ )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_name#ConventionDict._key_constraint_name:   sY    j11))2 
 $**D11"DJJOr"   c                 &    U R                  US5      $ )Nkeyr4   r   r/   s     r   _key_column_X_key ConventionDict._key_column_X_keyE   s     ~~c5))r"   c                 &    U R                  US5      $ )Nr   r<   r=   s     r   _key_column_X_name!ConventionDict._key_column_X_nameK   s    ~~c6**r"   c                 &    U R                  US5      $ )N
_ddl_labelr<   r=   s     r   _key_column_X_label"ConventionDict._key_column_X_labelN   s    ~~c<00r"   c                     U R                   R                  S   nUR                  R                  S5      n[	        U5      S:X  a  Uu  p4nU$ Uu  pEU$ )Nr   .   )r   r)   target_fullnamesplitlen)r   r1   refs	refschemareftablerefcols         r   _key_referred_table_name'ConventionDict._key_referred_table_nameQ   sW    ZZ  #!!'',t9>*.'I   $Hr"   c                 `    U R                   R                  U   nUR                  R                  $ r   )r   r)   columnr   )r   r/   r1   s      r   _key_referred_column_X_name*ConventionDict._key_referred_column_X_nameZ   s&    ZZ  % yy~~r"   c                    XR                   ;   a*  U R                   U   " U R                  U R                  5      $ [        U SU-  5      (       a  [	        U SU-  5      " 5       $ [
        R                  " SU5      nU(       Ga+  UR                  S5      nUR                  S5      nU(       a  U R                  (       a  U R                  R                  nO[        U R                  R                  5      n/ n[        U5       H>  u  p7SUR                  SU-   S5      -   n UR                  [	        X5      " U5      5        M@     UR#                  S5      (       a  SOS	n	U	R%                  U5      $ SUR                  US5      -   n['        U5      n[        X5      (       a  [	        X5      " U5      $ [!        U5      e! [         a    [!        U5      ef = f)
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   r;   col_templater/   	multipleselemstokenselemattrseps
             r   __getitem__ConventionDict.__getitem__a   s   //!??3'

DJJ??T9s?++4S13388$@#FL"((+(..q1	{{ $

 3 3 $TZZ%7%7 8F%.u%5	&S9_c)JJ0"MM'$*=c*BC &6 "+!5!5c!:!:#C88F++"S[[c%::Dc(Ct**&t2377sm  . 0"*3-/0s    F77G)r   r   r   r   r   N)__name__
__module____qualname____firstlineno__r    r%   r4   r8   r>   rA   rE   rQ   rU   ro   __static_attributes__ r"   r   r   r      s4    &."	 *+1r"   r   ixpkckuqr1   c                     UR                    H3  nU[        ;   a  [        U   U ;   a  U [        U      s  $ X ;   d  M/  X   s  $    g r   )__mro___prefix_dict)dict_r;   super_s      r   _get_conventionr      sF    ++\!l6&:e&Cf-.._= 	  r"   c                    UR                   n[        UR                  [        U 5      5      n[	        U R
                  [        5      (       a  U R
                  $ Ubg  [	        U R
                  [        5      (       dH  U R
                  b  SU;   d  U R
                  [        L a"  [        U[        XUR                  5      -  5      $ U[        L a  g g )Nconstraint_name)	metadatar   naming_conventiontyper   r   r   r   r   )r   r   r   r   s       r   _constraint_name_for_tabler      s    ~~H !;!;T%[IJ%**d##zz5::t,,JJ J.zzZ' U8+E+EFG
 	
 
z	! 
"r"   '_sa_event_column_added_to_pk_constraintc                     U R                   (       a-  U R                  nS U l        [        X5      nU(       a  X0l        g g g r   )_implicit_generatedr   r   r   )pk_constraintr3   r   newnames       r   _column_added_to_pk_constraintr      s?     ((
 ##!,]B!(  )r"   after_parent_attachc                 2  ^  [        U[        5      (       a  [        R                  " USU 4S j5        g [        U[        5      (       aO  [        T R
                  [        5      (       d  T R
                  [        L a  g [        T U5      nU(       a  UT l        g g g )Nr   c                    > [        TU5      $ r   )_constraint_name)r3   r   r   s     r   <lambda>"_constraint_name.<locals>.<lambda>   s    /u=r"   )	r   r   r   listenr   r   r   r   r   )r   r   r   s   `  r   r   r      sw     %   	!=	
 
E5	!	!ejj$''5::+C,UE: EJ  
"r"   )__doc__r]   r(   r   r)   r   r   schemar   r   r	   r
   r   r   r   r   r   r   objectr   r}   r   r   listens_forr   r   rv   r"   r   <module>r      s   
 
     #   (  (  $  aV aJ 
4$Td$. C
)
) :455/0! 1 6!r"   