B 4] @sdZddlZddlmZddlmZddlmZddlmZddlmZdd lm Z dd lm Z dd lm Z dd lm Z dd lm Z ddlmZddlmZddlmZddlmZGdddeZe de dedede diZddZddZee dee ddd ZdS)!z5Establish constraint and index naming conventions. N) _defer_name)_defer_none_name)conv)CheckConstraint)Column) Constraint)ForeignKeyConstraint)Index)PrimaryKeyConstraint)Table)UniqueConstraint)event)events)excc@s\eZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ dS)ConventionDictcCs*||_t|t|_||_||_|j|_dS)N)const isinstancer _is_fktable conventionname _const_name)selfrrrrH/opt/alt/python37/lib64/python3.7/site-packages/sqlalchemy/sql/naming.py__init__ s  zConventionDict.__init__cCs|jjS)N)rr)rrrr_key_table_name'szConventionDict._key_table_namecCs,|jr|jj|}|jSt|jj|SdS)N)rrelementsparentlistcolumns)ridxfkrrr _column_X*s zConventionDict._column_XcCs8t|jtdtfrtdt|jts2d|j_|jS)NzcNaming convention including %(constraint_name)s token requires that constraint is explicitly named.) rrtyperrZInvalidRequestErrorrrr)rrrr_key_constraint_name1s  z#ConventionDict._key_constraint_namecCs ||jS)N)r%key)rr#rrr_key_column_X_key<sz ConventionDict._key_column_X_keycCs ||jS)N)r%r)rr#rrr_key_column_X_nameBsz!ConventionDict._key_column_X_namecCs ||jS)N)r%Z_label)rr#rrr_key_column_X_labelEsz"ConventionDict._key_column_X_labelcCs<|jjd}|jd}t|dkr0|\}}}n|\}}|S)Nr.)rrZtarget_fullnamesplitlen)rr$ZrefsZ refschemaZreftableZrefcolrrr_key_referred_table_nameHs     z'ConventionDict._key_referred_table_namecCs|jj|}|jjS)N)rrcolumnr)rr#r$rrr_key_referred_column_X_nameQs z*ConventionDict._key_referred_column_X_namec CsB||jkr|j||j|jSt|d|rz"_constraint_name..) rrrZlistenr rrrrP)rrZnewnamer)rrrRs   rR)__doc__r9rrrrZschemarrrr r r r r r6rrrobjectrrMrNrPZ listens_forrRrrrr s2              [