zmc
2023-12-22 9fdbf60165db0400c2e8e6be2dc6e88138ac719a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
U
¸ý°d§ã
@s"dZddlmZddlZddlmZddlmZddlm    Z    ddl
m Z dd    l
m Z dd
l
m Z dd l
mZdd l
mZdd l
mZddl
mZddl
mZddlmZddlmZGdd„dƒZedede dedediZdd„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
„Zd d „Zd d„Z    dd„Z
dd„Z dd„Z dS)ÚConventionDictcCs*||_t|tƒ|_||_||_|j|_dS©N)ÚconstÚ
isinstancer
Ú_is_fkÚtableÚ
conventionÚnameÚ _const_name)Úselfrrr©rúLd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\sqlalchemy/sql/naming.pyÚ__init__"s
 zConventionDict.__init__cCs|jjSr)rr©rrrrÚ_key_table_name)szConventionDict._key_table_namecCsz|jr<z|jj|}Wntk
r,YdSXt|j|ƒSn:t|jjƒ}z ||}Wntk
rjYdSXt||ƒSdS)NÚ)rrÚelementsÚ
IndexErrorÚgetattrÚparentÚlistÚcolumns)rÚidxÚattrnameÚfkÚcolsÚcolrrrÚ    _column_X,s  zConventionDict._column_XcCs2|jdtfkrt d¡‚t|jtƒs,d|j_|jS)NzcNaming convention including %(constraint_name)s token requires that constraint is explicitly named.)rrrZInvalidRequestErrorrrrrrrrrÚ_key_constraint_name=sÿ z#ConventionDict._key_constraint_namecCs | |d¡S)NÚkey©r-©rr(rrrÚ_key_column_X_keyHsz ConventionDict._key_column_X_keycCs | |d¡S)Nrr0r1rrrÚ_key_column_X_nameNsz!ConventionDict._key_column_X_namecCs | |d¡S)NZ
_ddl_labelr0r1rrrÚ_key_column_X_labelQsz"ConventionDict._key_column_X_labelcCs<|jjd}|j d¡}t|ƒdkr0|\}}}n|\}}|S)NrÚ.é)rr"Ztarget_fullnameÚsplitÚlen)rr*ÚrefsZ    refschemaZreftableZrefcolrrrÚ_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>||jkr|j||j|jƒSt|d|ƒr<t|d|ƒƒSt d|¡}|r2| d¡}| d¡}|r|jrx|jj    }n t
|jj ƒ}g}t |ƒD]R\}}d|  d|d¡}z| t||ƒ|ƒ¡Wqtk
ràt|ƒ‚YqXq| d¡ròdnd    }    |     |¡Sd|  |d¡}t|ƒ}t||ƒr2t||ƒ|ƒSt|ƒ‚dS)
Nz_key_%sz.*_?column_(\d+)(_?N)?_.+rrZ_key_Ú0ÚXÚ_r!)rrrÚhasattrr$ÚreÚmatchÚgrouprr"r&r'Ú    enumerateÚreplaceÚappendÚAttributeErrorÚKeyErrorÚ
startswithÚjoinÚint)
rr/Z col_templater(Z    multiplesÚelemsÚtokensÚelemÚattrÚseprrrÚ __getitem__ds4
 
 
 
 
 zConventionDict.__getitem__N) Ú__name__Ú
__module__Ú __qualname__rr r-r.r2r3r4r:r<rQrrrrr!s     rÚixÚpkZckZuqr*cCsH|jD]<}|tkr.t||kr.|t|S||kr||SqdSr)Ú__mro__Ú _prefix_dict)Zdict_r/Zsuper_rrrÚ_get_conventionŽs 
rYcCs~|j}t|jt|ƒƒ}t|jtƒr(|jS|dk    rnt|jtƒsn|jdksXd|ksX|jtkrnt|t|||jƒƒS|tkrzdSdS)NZconstraint_name)    ÚmetadatarYZnaming_conventionÚtyperrrrr)rrrZrrrrÚ_constraint_name_for_table™s* ÿ
þüûú     ÿÿr\Z'_sa_event_column_added_to_pk_constraintcCs*|jr&|j}d|_t||ƒ}|r&||_dSr)Z_implicit_generatedrrr\)Z pk_constraintr,rÚnewnamerrrÚ_column_added_to_pk_constraint°s 
r^Úafter_parent_attachcs^t|tƒr"t |d‡fdd„¡n8t|tƒrZtˆjtƒsBˆjtkrFdStˆ|ƒ}|rZ|ˆ_dS)Nr_cs
tˆ|ƒSr)Ú_constraint_name)r,r©rrrÚ<lambda>Ìóz"_constraint_name.<locals>.<lambda>)    rrrÚlistenr rrrr\)rrr]rrarr`Às
 
ý
 
r`)Ú__doc__Ú
__future__rrAr!rÚbaserr"rZschemarrr    r
r r r rrrrrXrYr\Z listens_forr^r`rrrrÚ<module>    sJ              eû     ÿ