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
53
54
55
56
57
58
59
60
61
62
63
64
U
¸ý°dSã@sØddlmZddlZddlmZddlmZddlmZddlmZdd    lmZ    dd
l
m Z dd l mZd d gZiZddœdd „Zdd„Z dd „Zdd„ZGdd„dƒZGdd„dƒZGdd„dƒZdd„Zdd„ZdS) é)Ú annotationsNé)Úconfig)Ú
exclusionsé)Úevent)Úschema)Útypes)Ú mapped_column)Ú OrderedDictÚTableÚColumnz schema.Table)Úreturncs¾‡fdd„tˆƒDƒ}ˆ t¡t tjd¡rjdˆkr²dˆkr²dˆkr²d|ksVd|kr`d    ˆd<q²d
ˆd<nHt tjd ¡r²d ˆkr²d ˆkr²dˆkr²d|ks d|krªd    ˆd <nd
ˆd <tj|ˆŽS)z8A schema.Table wrapper/hook for dialect-specific tweaks.cs"i|]}| d¡r|ˆ |¡“qS©Ztest_©Ú
startswithÚpop©Ú.0Úk©Úkw©úPd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\sqlalchemy/testing/schema.pyÚ
<dictcomp>s
zTable.<locals>.<dictcomp>ZmysqlZ mysql_engineZ
mysql_typeZ autoload_withZ test_needs_fkZtest_needs_acidZInnoDBZMyISAMZmariadbZmariadb_engineZ mariadb_type)    ÚlistÚupdateÚ table_optionsrÚagainstrÚ_currentrr )ÚargsrÚ    test_optsrrrr s.
ÿþý
 
ÿþý
cOs tt||ƒS)z>An orm.mapped_column wrapper/hook for dialect-specific tweaks.)Ú_schema_columnÚ_orm_mapped_column©r rrrrr
?sr
cOsttj||ƒS)z9A schema.Column wrapper/hook for dialect-specific tweaks.)r"rr r$rrrr Escsº‡fdd„tˆƒDƒ}tjj t¡s2dd„|Dƒ}||ˆŽ}|tjkrL|}n|j}| dd¡r¶ˆ dd¡r¶|j    dkr„|j
dkr„d|_ d|j d<t  tjd    ¡r¶d
d „}tj|d |dd |S)Ncs"i|]}| d¡r|ˆ |¡“qSrrrrrrrLs
z"_schema_column.<locals>.<dictcomp>cSsg|]}t|tjƒs|‘qSr)Ú
isinstancerZ
ForeignKey)rÚargrrrÚ
<listcomp>Os z"_schema_column.<locals>.<listcomp>Ztest_needs_autoincrementFZ primary_keyTZoraclecSs2| tjttjj|jd|jdƒdd¡dS)NÚ_Z_seqT)Úoptional)Z _init_itemsrÚSequenceÚ_truncate_namerÚdbÚdialectÚname)ÚcZtblrrrÚadd_seqfsÿüÿz_schema_column.<locals>.add_seqZafter_parent_attach)Ú    propagate)rrÚ requirementsZforeign_key_ddlZenabled_for_configrr ÚcolumnÚgetÚdefaultZserver_defaultZ autoincrementÚinforrrrÚlisten)Úfactoryr rr!Z    constructÚcolr0rrrr"Ks$
 
ÿ
 
r"c@s(eZdZdZdd„Zdd„Zdd„ZdS)    Úeq_type_affinityaÎHelper to compare types inside of datastructures based on affinity.
 
    E.g.::
 
        eq_(
            inspect(connection).get_columns("foo"),
            [
                {
                    "name": "id",
                    "type": testing.eq_type_affinity(sqltypes.INTEGER),
                    "nullable": False,
                    "default": None,
                    "autoincrement": False,
                },
                {
                    "name": "data",
                    "type": testing.eq_type_affinity(sqltypes.NullType),
                    "nullable": True,
                    "default": None,
                    "autoincrement": False,
                },
            ],
        )
 
    cCst |¡|_dS©N)ÚsqltypesZ to_instanceÚtarget©Úselfr=rrrÚ__init__szeq_type_affinity.__init__cCs|jj|jkSr;©r=Z_type_affinity©r?ÚotherrrrÚ__eq__’szeq_type_affinity.__eq__cCs|jj|jk    Sr;rArBrrrÚ__ne__•szeq_type_affinity.__ne__N©Ú__name__Ú
__module__Ú __qualname__Ú__doc__r@rDrErrrrr:tsr:c@s(eZdZdZdd„Zdd„Zdd„ZdS)    Úeq_compile_typez,similar to eq_type_affinity but uses compilecCs
||_dSr;©r=r>rrrr@œszeq_compile_type.__init__cCs|j| ¡kSr;©r=ÚcompilerBrrrrDŸszeq_compile_type.__eq__cCs|j| ¡kSr;rMrBrrrrE¢szeq_compile_type.__ne__NrFrrrrrK™srKc@s(eZdZdZdd„Zdd„Zdd„ZdS)    Úeq_clause_elementz3Helper to compare SQL structures based on compare()cCs
||_dSr;rLr>rrrr@©szeq_clause_element.__init__cCs |j |¡Sr;©r=ÚcomparerBrrrrD¬szeq_clause_element.__eq__cCs|j |¡ Sr;rPrBrrrrE¯szeq_clause_element.__ne__NrFrrrrrO¦srOcCsJt|ƒ|jkrB|dt|jddƒ…dtt|ƒdƒdd…S|SdS)Nrér(é@r)ÚlenZmax_identifier_lengthÚmaxÚhexÚhash)r-r.rrrr+³sÿþÿr+c    s‚tƒ}d    ‡fdd„    }i‰t‡fdd„ƒ}t|tf|||dœƒ}zt d¡j dd¡}Wntt    fk
rnYnX|dk    r~||_
|S)
NcsL||_||_||j|<|ˆ|<t|j||ƒ|rH||j|<t|j||ƒdSr;)r.ÚvalueÚ __members__ÚsetattrÚ    __class__)r?r.rXÚalias©Zvalue_to_memberrrr@Âs
 
zpep435_enum.<locals>.__init__csˆ|Sr;r)ÚclsrXr]rrr4Îszpep435_enum.<locals>.get)rYr@r4rrGÚ__main__)N) r Ú classmethodÚtypeÚobjectÚsysÚ    _getframeÚ    f_globalsr4ÚAttributeErrorÚ
ValueErrorrH)r.rYr@r4ZsomeenumÚmodulerr]rÚ pep435_enum¾s"
 
ýri)Ú
__future__rrcÚrrrrr    r<Zormr
r#Úutilr Ú__all__rr r r"r:rKrOr+rirrrrÚ<module>    s&        %)%