SQLAlchemy 2.0.28__py3-none-any.whl → 2.0.30__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {SQLAlchemy-2.0.28.dist-info → SQLAlchemy-2.0.30.dist-info}/METADATA +1 -1
- {SQLAlchemy-2.0.28.dist-info → SQLAlchemy-2.0.30.dist-info}/RECORD +64 -64
- {SQLAlchemy-2.0.28.dist-info → SQLAlchemy-2.0.30.dist-info}/WHEEL +1 -1
- sqlalchemy/__init__.py +1 -1
- sqlalchemy/connectors/asyncio.py +2 -6
- sqlalchemy/dialects/mssql/base.py +0 -23
- sqlalchemy/dialects/mysql/reserved_words.py +4 -0
- sqlalchemy/dialects/postgresql/array.py +38 -37
- sqlalchemy/dialects/postgresql/asyncpg.py +4 -4
- sqlalchemy/dialects/postgresql/base.py +233 -146
- sqlalchemy/dialects/postgresql/json.py +1 -1
- sqlalchemy/dialects/postgresql/named_types.py +17 -3
- sqlalchemy/dialects/postgresql/pg_catalog.py +18 -12
- sqlalchemy/dialects/postgresql/psycopg.py +32 -0
- sqlalchemy/dialects/postgresql/psycopg2.py +1 -1
- sqlalchemy/dialects/sqlite/pysqlite.py +6 -3
- sqlalchemy/engine/base.py +4 -7
- sqlalchemy/engine/characteristics.py +76 -2
- sqlalchemy/engine/cursor.py +13 -10
- sqlalchemy/engine/default.py +68 -68
- sqlalchemy/engine/util.py +2 -1
- sqlalchemy/event/api.py +1 -1
- sqlalchemy/ext/asyncio/engine.py +12 -4
- sqlalchemy/ext/asyncio/session.py +11 -2
- sqlalchemy/ext/automap.py +99 -60
- sqlalchemy/ext/hybrid.py +1 -1
- sqlalchemy/ext/mypy/names.py +11 -18
- sqlalchemy/orm/_orm_constructors.py +7 -4
- sqlalchemy/orm/attributes.py +4 -4
- sqlalchemy/orm/base.py +2 -1
- sqlalchemy/orm/bulk_persistence.py +7 -0
- sqlalchemy/orm/context.py +16 -4
- sqlalchemy/orm/decl_api.py +22 -14
- sqlalchemy/orm/events.py +1 -1
- sqlalchemy/orm/exc.py +3 -2
- sqlalchemy/orm/interfaces.py +8 -3
- sqlalchemy/orm/loading.py +32 -15
- sqlalchemy/orm/mapper.py +2 -1
- sqlalchemy/orm/path_registry.py +14 -11
- sqlalchemy/orm/properties.py +9 -3
- sqlalchemy/orm/relationships.py +27 -16
- sqlalchemy/orm/session.py +72 -20
- sqlalchemy/orm/strategy_options.py +80 -47
- sqlalchemy/orm/util.py +13 -2
- sqlalchemy/sql/_elements_constructors.py +31 -20
- sqlalchemy/sql/_typing.py +16 -2
- sqlalchemy/sql/base.py +18 -13
- sqlalchemy/sql/compiler.py +97 -53
- sqlalchemy/sql/elements.py +51 -22
- sqlalchemy/sql/functions.py +4 -1
- sqlalchemy/sql/lambdas.py +1 -1
- sqlalchemy/sql/schema.py +37 -5
- sqlalchemy/sql/selectable.py +39 -20
- sqlalchemy/sql/sqltypes.py +55 -80
- sqlalchemy/sql/type_api.py +5 -25
- sqlalchemy/testing/asyncio.py +11 -6
- sqlalchemy/testing/fixtures/sql.py +4 -0
- sqlalchemy/testing/plugin/pytestplugin.py +6 -0
- sqlalchemy/util/_concurrency_py3k.py +51 -28
- sqlalchemy/util/concurrency.py +42 -7
- sqlalchemy/util/langhelpers.py +14 -16
- sqlalchemy/util/typing.py +1 -1
- {SQLAlchemy-2.0.28.dist-info → SQLAlchemy-2.0.30.dist-info}/LICENSE +0 -0
- {SQLAlchemy-2.0.28.dist-info → SQLAlchemy-2.0.30.dist-info}/top_level.txt +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
sqlalchemy/__init__.py,sha256=
|
|
1
|
+
sqlalchemy/__init__.py,sha256=yI12J_Tdp5kmBfaR8P8wQjcZg4U0qua6pbbB7JTvCsw,13033
|
|
2
2
|
sqlalchemy/events.py,sha256=k-ZD38aSPD29LYhED7CBqttp5MDVVx_YSaWC2-cu9ec,525
|
|
3
3
|
sqlalchemy/exc.py,sha256=M_8-O1hd8i6gbyx-TapV400p_Lxq2QqTGMXUAO-YgCc,23976
|
|
4
4
|
sqlalchemy/inspection.py,sha256=MF-LE358wZDUEl1IH8-Uwt2HI65EsQpQW5o5udHkZwA,5063
|
|
@@ -8,7 +8,7 @@ sqlalchemy/schema.py,sha256=dKiWmgHYjcKQ4TiiD6vD0UMmIsD8u0Fsor1M9AAeGUs,3194
|
|
|
8
8
|
sqlalchemy/types.py,sha256=cQFM-hFRmaf1GErun1qqgEs6QxufvzMuwKqj9tuMPpE,3168
|
|
9
9
|
sqlalchemy/connectors/__init__.py,sha256=PzXPqZqi3BzEnrs1eW0DcsR4lyknAzhhN9rWcQ97hb4,476
|
|
10
10
|
sqlalchemy/connectors/aioodbc.py,sha256=GSTiNMO9h0qjPxgqaxDwWZ8HvhWMFNVR6MJQnN1oc40,5288
|
|
11
|
-
sqlalchemy/connectors/asyncio.py,sha256=
|
|
11
|
+
sqlalchemy/connectors/asyncio.py,sha256=K3U5857TD0GmJXIhxgRljKnJhJNzYFhQ8UjyFX0Yyoo,5878
|
|
12
12
|
sqlalchemy/connectors/pyodbc.py,sha256=t7AjyxIOnaWg3CrlUEpBs4Y5l0HFdNt3P_cSSKhbi0Y,8501
|
|
13
13
|
sqlalchemy/cyextension/__init__.py,sha256=GzhhN8cjMnDTE0qerlUlpbrNmFPHQWCZ4Gk74OAxl04,244
|
|
14
14
|
sqlalchemy/cyextension/collections.pyx,sha256=L7DZ3DGKpgw2MT2ZZRRxCnrcyE5pU1NAFowWgAzQPEc,12571
|
|
@@ -22,7 +22,7 @@ sqlalchemy/dialects/_typing.py,sha256=hyv0nKucX2gI8ispB1IsvaUgrEPn9zEcq9hS7kfstE
|
|
|
22
22
|
sqlalchemy/dialects/type_migration_guidelines.txt,sha256=-uHNdmYFGB7bzUNT6i8M5nb4j6j9YUKAtW4lcBZqsMg,8239
|
|
23
23
|
sqlalchemy/dialects/mssql/__init__.py,sha256=r5t8wFRNtBQoiUWh0WfIEWzXZW6f3D0uDt6NZTW_7Cc,1880
|
|
24
24
|
sqlalchemy/dialects/mssql/aioodbc.py,sha256=UQd9ecSMIML713TDnLAviuBVJle7P7i1FtqGZZePk2Y,2022
|
|
25
|
-
sqlalchemy/dialects/mssql/base.py,sha256=
|
|
25
|
+
sqlalchemy/dialects/mssql/base.py,sha256=87Z8bQbA8q5_T2Oyd4tUuttWNjYTQD9Dhq-eplDJcY4,132301
|
|
26
26
|
sqlalchemy/dialects/mssql/information_schema.py,sha256=HswjDc6y0mPXCf_x6VyylHlBdBa4PSY6Evxmmlch700,8084
|
|
27
27
|
sqlalchemy/dialects/mssql/json.py,sha256=evUACW2O62TAPq8B7QIPagz7jfc664ql9ms68JqiYzg,4816
|
|
28
28
|
sqlalchemy/dialects/mssql/provision.py,sha256=RTVbgYLFAHzEnpVQDJroU8ji_10MqBTiZfyP9_-QNT4,5362
|
|
@@ -45,7 +45,7 @@ sqlalchemy/dialects/mysql/provision.py,sha256=4oGkClQ8jC3YLPF54sB4kCjFc8HRTwf5zl
|
|
|
45
45
|
sqlalchemy/dialects/mysql/pymysql.py,sha256=GUnSHd2M2uKjmN46Hheymtm26g7phEgwYOXrX0zLY8M,4083
|
|
46
46
|
sqlalchemy/dialects/mysql/pyodbc.py,sha256=072crI4qVyPhajYvHnsfFeSrNjLFVPIjBQKo5uyz5yk,4297
|
|
47
47
|
sqlalchemy/dialects/mysql/reflection.py,sha256=XXM8AGpaRTqDvuObg89Bzn_4h2ETG03viYBpWZJM3vc,22822
|
|
48
|
-
sqlalchemy/dialects/mysql/reserved_words.py,sha256=
|
|
48
|
+
sqlalchemy/dialects/mysql/reserved_words.py,sha256=ucKX2p2c3UnMq2ayZuOHuf73eXhu7SKsOsTlIN1Q83I,9258
|
|
49
49
|
sqlalchemy/dialects/mysql/types.py,sha256=L5cTCsMT1pTedszNEM3jSxFNZEMcHQLprYCZ0vmfsnA,24343
|
|
50
50
|
sqlalchemy/dialects/oracle/__init__.py,sha256=p4-2gw7TT0bX_MoJXTGD4i8WHctYsK9kCRbkpzykBrc,1493
|
|
51
51
|
sqlalchemy/dialects/oracle/base.py,sha256=-7b5iubFPxJyDRoLXlxj8rk8eBRN2_IdZlB2zzzrrbw,118246
|
|
@@ -56,20 +56,20 @@ sqlalchemy/dialects/oracle/provision.py,sha256=O9ZpF4OG6Cx4mMzLRfZwhs8dZjrJETWR4
|
|
|
56
56
|
sqlalchemy/dialects/oracle/types.py,sha256=QK3hJvWzKnnCe3oD3rItwEEIwcoBze8qGg7VFOvVlIk,8231
|
|
57
57
|
sqlalchemy/dialects/postgresql/__init__.py,sha256=wwnNAq4wDQzrlPRzDNB06ayuq3L2HNO99nzeEvq-YcU,3892
|
|
58
58
|
sqlalchemy/dialects/postgresql/_psycopg_common.py,sha256=7TudtgsPiSB8O5kX8W8KxcNYR8t5h_UHb86b_ChL0P8,5696
|
|
59
|
-
sqlalchemy/dialects/postgresql/array.py,sha256=
|
|
60
|
-
sqlalchemy/dialects/postgresql/asyncpg.py,sha256=
|
|
61
|
-
sqlalchemy/dialects/postgresql/base.py,sha256=
|
|
59
|
+
sqlalchemy/dialects/postgresql/array.py,sha256=bWcame7ntmI_Kx6gmBX0-chwADFdLHeCvaDQ4iX8id8,13734
|
|
60
|
+
sqlalchemy/dialects/postgresql/asyncpg.py,sha256=e4Zv7hTb8OdwfvrM_B82GXgORBJeNQ2vChVfogvN7KI,40240
|
|
61
|
+
sqlalchemy/dialects/postgresql/base.py,sha256=ed49Ode09deJF3jXr8V5sSHTwVoFVq0dlvNdP3mJaBQ,178989
|
|
62
62
|
sqlalchemy/dialects/postgresql/dml.py,sha256=Pc69Le6qzmUHHb1FT5zeUSD31dWm6SBgdCAGW89cs3s,11212
|
|
63
63
|
sqlalchemy/dialects/postgresql/ext.py,sha256=1bZ--iNh2O9ym7l2gXZX48yP3yMO4dqb9RpYro2Mj2Q,16262
|
|
64
64
|
sqlalchemy/dialects/postgresql/hstore.py,sha256=otAx-RTDfpi_tcXkMuQV0JOIXtYgevgnsikLKKOkI6U,11541
|
|
65
|
-
sqlalchemy/dialects/postgresql/json.py,sha256
|
|
66
|
-
sqlalchemy/dialects/postgresql/named_types.py,sha256=
|
|
65
|
+
sqlalchemy/dialects/postgresql/json.py,sha256=9-ZvkLVMfQNSz0aHGml_B8sNg3gVq3-gxLnb5BO7Pog,11217
|
|
66
|
+
sqlalchemy/dialects/postgresql/named_types.py,sha256=3IV1ufo7zJjKmX4VtGDEnoXE6xEqLJAtGG82IiqHXwY,17594
|
|
67
67
|
sqlalchemy/dialects/postgresql/operators.py,sha256=NsAaWun_tL3d_be0fs9YL6T4LPKK6crnmFxxIJHgyeY,2808
|
|
68
68
|
sqlalchemy/dialects/postgresql/pg8000.py,sha256=3yoekiWSF-xnaWMqG76XrYPMqerg-42TdmfsW_ivK9E,18640
|
|
69
|
-
sqlalchemy/dialects/postgresql/pg_catalog.py,sha256=
|
|
69
|
+
sqlalchemy/dialects/postgresql/pg_catalog.py,sha256=hY3NXEUHxTWD4umhd2aowNu3laC-61Q_qQ_pReyXTUM,9254
|
|
70
70
|
sqlalchemy/dialects/postgresql/provision.py,sha256=yqyx-aDFO9l2YcL9f4T5HBP_Lnt5dHsMjpuXUG8mi7A,5762
|
|
71
|
-
sqlalchemy/dialects/postgresql/psycopg.py,sha256=
|
|
72
|
-
sqlalchemy/dialects/postgresql/psycopg2.py,sha256=
|
|
71
|
+
sqlalchemy/dialects/postgresql/psycopg.py,sha256=3_xRoZ71mgTR-tYKDb6N0ebbrRD3dFwVRI5-ZuFFOg8,23378
|
|
72
|
+
sqlalchemy/dialects/postgresql/psycopg2.py,sha256=DbCB1-90O8YQDaIR67RtKOjzW3nvrdHoiwnVWYv_mX4,31605
|
|
73
73
|
sqlalchemy/dialects/postgresql/psycopg2cffi.py,sha256=M7wAYSL6Pvt-4nbfacAHGyyw4XMKJ_bQZ1tc1pBtIdg,1756
|
|
74
74
|
sqlalchemy/dialects/postgresql/ranges.py,sha256=6CgV7qkxEMJ9AQsiibo_XBLJYzGh-2ZxpG83sRaesVY,32949
|
|
75
75
|
sqlalchemy/dialects/postgresql/types.py,sha256=Jfxqw9JaKNOq29JRWBublywgb3lLMyzx8YZI7CXpS2s,7300
|
|
@@ -80,16 +80,16 @@ sqlalchemy/dialects/sqlite/dml.py,sha256=9GE55WvwoktKy2fHeT-Wbc9xPHgsbh5oBfd_fck
|
|
|
80
80
|
sqlalchemy/dialects/sqlite/json.py,sha256=Eoplbb_4dYlfrtmQaI8Xddd2suAIHA-IdbDQYM-LIhs,2777
|
|
81
81
|
sqlalchemy/dialects/sqlite/provision.py,sha256=UCpmwxf4IWlrpb2eLHGbPTpCFVbdI_KAh2mKtjiLYao,5632
|
|
82
82
|
sqlalchemy/dialects/sqlite/pysqlcipher.py,sha256=OL2S_05DK9kllZj6DOz7QtEl7jI7syxjW6woS725ii4,5356
|
|
83
|
-
sqlalchemy/dialects/sqlite/pysqlite.py,sha256=
|
|
83
|
+
sqlalchemy/dialects/sqlite/pysqlite.py,sha256=USPhTjA19ks7VfzjlMXN_BkUpZiPH8J5ZyR4B9DBhVY,28045
|
|
84
84
|
sqlalchemy/engine/__init__.py,sha256=Stb2oV6l8w65JvqEo6J4qtKoApcmOpXy3AAxQud4C1o,2818
|
|
85
85
|
sqlalchemy/engine/_py_processors.py,sha256=j9i_lcYYQOYJMcsDerPxI0sVFBIlX5sqoYMdMJlgWPI,3744
|
|
86
86
|
sqlalchemy/engine/_py_row.py,sha256=wSqoUFzLOJ1f89kgDb6sJm9LUrF5LMFpXPcK1vUsKcs,3787
|
|
87
87
|
sqlalchemy/engine/_py_util.py,sha256=f2DI3AN1kv6EplelowesCVpwS8hSXNufRkZoQmJtSH8,2484
|
|
88
|
-
sqlalchemy/engine/base.py,sha256=
|
|
89
|
-
sqlalchemy/engine/characteristics.py,sha256=
|
|
88
|
+
sqlalchemy/engine/base.py,sha256=0jDuJYb1tipD-N9chnMCvd25JySJQCm8CDCt_lobmv0,122898
|
|
89
|
+
sqlalchemy/engine/characteristics.py,sha256=N3kbvw_ApMh86wb5yAGnxtPYD4YRhYMWion1H_aVZBI,4765
|
|
90
90
|
sqlalchemy/engine/create.py,sha256=mYJtOG2ZKM8sgyfjpGpamW15RDU7JXi5s6iibbJHMIs,33206
|
|
91
|
-
sqlalchemy/engine/cursor.py,sha256=
|
|
92
|
-
sqlalchemy/engine/default.py,sha256=
|
|
91
|
+
sqlalchemy/engine/cursor.py,sha256=cFq61yrw76k-QR_xNUBWuL-Zeyb14ltG-6jo2Q2iuuw,76392
|
|
92
|
+
sqlalchemy/engine/default.py,sha256=B3i9Ce3Jk64CtNaS1gnes4uCMhiQn2cMwnZh5RxR-aE,84137
|
|
93
93
|
sqlalchemy/engine/events.py,sha256=c0unNFFiHzTAvkUtXoJaxzMFMDwurBkHiiUhuN8qluc,37381
|
|
94
94
|
sqlalchemy/engine/interfaces.py,sha256=n6G7VW5kaGyBlKdCkgaDs694tfzLPOxZeboDmVaJThg,112832
|
|
95
95
|
sqlalchemy/engine/mock.py,sha256=yvpxgFmRw5G4QsHeF-ZwQGHKES-HqQOucTxFtN1uzdk,4179
|
|
@@ -99,20 +99,20 @@ sqlalchemy/engine/result.py,sha256=j6BI4Wj2bziQNQG5OlG_Cm4KcNWY9AoYvTXVlJUU-D8,7
|
|
|
99
99
|
sqlalchemy/engine/row.py,sha256=9AAQo9zYDL88GcZ3bjcQTwMT-YIcuGTSMAyTfmBJ_yM,12032
|
|
100
100
|
sqlalchemy/engine/strategies.py,sha256=DqFSWaXJPL-29Omot9O0aOcuGL8KmCGyOvnPGDkAJoE,442
|
|
101
101
|
sqlalchemy/engine/url.py,sha256=8eWkUaIUyDExOcJ2D4xJXRcn4OY1GQJ3Q2duSX6UGAg,30784
|
|
102
|
-
sqlalchemy/engine/util.py,sha256=
|
|
102
|
+
sqlalchemy/engine/util.py,sha256=bNirO8k1S8yOW61uNH-a9QrWtAJ9VGFgbiR0lk1lUQU,5682
|
|
103
103
|
sqlalchemy/event/__init__.py,sha256=KBrp622xojnC3FFquxa2JsMamwAbfkvzfv6Op0NKiYc,997
|
|
104
|
-
sqlalchemy/event/api.py,sha256=
|
|
104
|
+
sqlalchemy/event/api.py,sha256=DtDVgjKSorOfp9MGJ7fgMWrj4seC_hkwF4D8CW1RFZU,8226
|
|
105
105
|
sqlalchemy/event/attr.py,sha256=X8QeHGK4ioSYht1vkhc11f606_mq_t91jMNIT314ubs,20751
|
|
106
106
|
sqlalchemy/event/base.py,sha256=3n9FmUkcXYHHyGzfpjKDsrIUVCNST_hq4zOtrNm0_a4,14954
|
|
107
107
|
sqlalchemy/event/legacy.py,sha256=teMPs00fO-4g8a_z2omcVKkYce5wj_1uvJO2n2MIeuo,8227
|
|
108
108
|
sqlalchemy/event/registry.py,sha256=nfTSSyhjZZXc5wseWB4sXn-YibSc0LKX8mg17XlWmAo,10835
|
|
109
109
|
sqlalchemy/ext/__init__.py,sha256=S1fGKAbycnQDV01gs-JWGaFQ9GCD4QHwKcU2wnugg_o,322
|
|
110
110
|
sqlalchemy/ext/associationproxy.py,sha256=5O5ANHARO8jytvqBQmOu-QjNVE4Hh3tfYquqKAj5ajs,65771
|
|
111
|
-
sqlalchemy/ext/automap.py,sha256=
|
|
111
|
+
sqlalchemy/ext/automap.py,sha256=cMs3mMXZBbfQXahxHbT3-6h5uMM--GZIcdtwhRrZoio,61589
|
|
112
112
|
sqlalchemy/ext/baked.py,sha256=H6T1il7GY84BhzPFj49UECSpZh_eBuiHomA-QIsYOYQ,17807
|
|
113
113
|
sqlalchemy/ext/compiler.py,sha256=ONPoxoKD2yUS9R2-oOhmPsA7efm-Bs0BXo7HE1dGlsU,20391
|
|
114
114
|
sqlalchemy/ext/horizontal_shard.py,sha256=wuwAPnHymln0unSBnyx-cpX0AfESKSsypaSQTYCvzDk,16750
|
|
115
|
-
sqlalchemy/ext/hybrid.py,sha256=
|
|
115
|
+
sqlalchemy/ext/hybrid.py,sha256=IYkCaPZ29gm2cPKPg0cWMkLCEqMykD8-JJTvgacGbmc,52458
|
|
116
116
|
sqlalchemy/ext/indexable.py,sha256=UkTelbydKCdKelzbv3HWFFavoET9WocKaGRPGEOVfN8,11032
|
|
117
117
|
sqlalchemy/ext/instrumentation.py,sha256=sg8ghDjdHSODFXh_jAmpgemnNX1rxCeeXEG3-PMdrNk,15707
|
|
118
118
|
sqlalchemy/ext/mutable.py,sha256=L5ZkHBGYhMaqO75Xtyrk2DBR44RDk0g6Rz2HzHH0F8Q,37355
|
|
@@ -120,59 +120,59 @@ sqlalchemy/ext/orderinglist.py,sha256=TGYbsGH72wEZcFNQDYDsZg9OSPuzf__P8YX8_2HtYU
|
|
|
120
120
|
sqlalchemy/ext/serializer.py,sha256=YemanWdeMVUDweHCnQc-iMO6mVVXNo2qQ5NK0Eb2_Es,6178
|
|
121
121
|
sqlalchemy/ext/asyncio/__init__.py,sha256=1OqSxEyIUn7RWLGyO12F-jAUIvk1I6DXlVy80-Gvkds,1317
|
|
122
122
|
sqlalchemy/ext/asyncio/base.py,sha256=fl7wxZD9KjgFiCtG3WXrYjHEvanamcsodCqq9pH9lOk,8905
|
|
123
|
-
sqlalchemy/ext/asyncio/engine.py,sha256=
|
|
123
|
+
sqlalchemy/ext/asyncio/engine.py,sha256=S_IRWX4QAjj2veLSu4Y3gKBIXkKQt7_2StJAK2_KUDY,48190
|
|
124
124
|
sqlalchemy/ext/asyncio/exc.py,sha256=8sII7VMXzs2TrhizhFQMzSfcroRtiesq8o3UwLfXSgQ,639
|
|
125
125
|
sqlalchemy/ext/asyncio/result.py,sha256=ID2eh-NHW-lnNFTxbKhje8fr-tnsucUsiw_jcpGcSPc,30409
|
|
126
126
|
sqlalchemy/ext/asyncio/scoping.py,sha256=BmE1UbFV_C4BXB4WngJc523DeMH-nTchNb8ORiSPYfE,52597
|
|
127
|
-
sqlalchemy/ext/asyncio/session.py,sha256=
|
|
127
|
+
sqlalchemy/ext/asyncio/session.py,sha256=ZZklu124Rm2p9B5pbcDbR0zVyEuq-rn69_ltByuKNXo,63092
|
|
128
128
|
sqlalchemy/ext/declarative/__init__.py,sha256=20psLdFQbbOWfpdXHZ0CTY6I1k4UqXvKemNVu1LvPOI,1818
|
|
129
129
|
sqlalchemy/ext/declarative/extensions.py,sha256=uCjN1GisQt54AjqYnKYzJdUjnGd2pZBW47WWdPlS7FE,19547
|
|
130
130
|
sqlalchemy/ext/mypy/__init__.py,sha256=0WebDIZmqBD0OTq5JLtd_PmfF9JGxe4d4Qv3Ml3PKUg,241
|
|
131
131
|
sqlalchemy/ext/mypy/apply.py,sha256=Aek_-XA1eXihT4attxhfE43yBKtCgsxBSb--qgZKUqc,10550
|
|
132
132
|
sqlalchemy/ext/mypy/decl_class.py,sha256=1vVJRII2apnLTUbc5HkJS6Z2GueaUv_eKvhbqh7Wik4,17384
|
|
133
133
|
sqlalchemy/ext/mypy/infer.py,sha256=KVnmLFEVS33Al8pUKI7MJbJQu3KeveBUMl78EluBORw,19369
|
|
134
|
-
sqlalchemy/ext/mypy/names.py,sha256=
|
|
134
|
+
sqlalchemy/ext/mypy/names.py,sha256=Q3ef8XQBgVm9WUwlItqlYCXDNi_kbV5DdLEgbtEMEI8,10479
|
|
135
135
|
sqlalchemy/ext/mypy/plugin.py,sha256=74ML8LI9xar0V86oCxnPFv5FQGEEfUzK64vOay4BKFs,9750
|
|
136
136
|
sqlalchemy/ext/mypy/util.py,sha256=1zuDQG8ezmF-XhJmAQU_lcBHiD--sL-lq20clg8t4lE,9448
|
|
137
137
|
sqlalchemy/future/__init__.py,sha256=q2mw-gxk_xoxJLEvRoyMha3vO1xSRHrslcExOHZwmPA,512
|
|
138
138
|
sqlalchemy/future/engine.py,sha256=AgIw6vMsef8W6tynOTkxsjd6o_OQDwGjLdbpoMD8ue8,495
|
|
139
139
|
sqlalchemy/orm/__init__.py,sha256=ZYys5nL3RFUDCMOLFDBrRI52F6er3S1U1OY9TeORuKs,8463
|
|
140
|
-
sqlalchemy/orm/_orm_constructors.py,sha256=
|
|
140
|
+
sqlalchemy/orm/_orm_constructors.py,sha256=tlTZoY87CFSBpnw7iIYKTCeofjLg-r2ibfCfMfbyEMU,99461
|
|
141
141
|
sqlalchemy/orm/_typing.py,sha256=DVBfpHmDVK4x1zxaGJPY2GoTrAsyR6uexv20Lzf1afc,4973
|
|
142
|
-
sqlalchemy/orm/attributes.py,sha256
|
|
143
|
-
sqlalchemy/orm/base.py,sha256=
|
|
144
|
-
sqlalchemy/orm/bulk_persistence.py,sha256=
|
|
142
|
+
sqlalchemy/orm/attributes.py,sha256=wGpyY9aIxWRkL3y6qlbUgIW78rGA4X38ZhOaWI9S818,92535
|
|
143
|
+
sqlalchemy/orm/base.py,sha256=re6A8ooMxLyfCAeQfhBwwxeJQkiH7EtzzOZIVIiTPlw,27466
|
|
144
|
+
sqlalchemy/orm/bulk_persistence.py,sha256=wU204OQK-V6rJfpc3HPeMAA1X9vZg9nSNpI1zKuZtcY,70086
|
|
145
145
|
sqlalchemy/orm/clsregistry.py,sha256=29LyYiuj0qbebOpgW6DbBPNB2ikTweFQar1byCst7I0,17958
|
|
146
146
|
sqlalchemy/orm/collections.py,sha256=jpMsJGVixmrW9kfT8wevm9kpatKRqyDLcqWd7CjKPxE,52179
|
|
147
|
-
sqlalchemy/orm/context.py,sha256=
|
|
148
|
-
sqlalchemy/orm/decl_api.py,sha256=
|
|
147
|
+
sqlalchemy/orm/context.py,sha256=pFFc-1ZjaV3aQMAO27UIh0W6NyLc30n2IbuWNprMtS8,112445
|
|
148
|
+
sqlalchemy/orm/decl_api.py,sha256=_WPKQ_vSE5k2TLtNmkaxxYmvbhZvkRMrrvCeDxdqDQE,63998
|
|
149
149
|
sqlalchemy/orm/decl_base.py,sha256=Tq6I3Jm3bkM01mmoiHfdFXLE94YDk1ik2u2dXL1RxLc,81601
|
|
150
150
|
sqlalchemy/orm/dependency.py,sha256=hgjksUWhgbmgHK5GdJdiDCBgDAIGQXIrY-Tj79tbL2k,47631
|
|
151
151
|
sqlalchemy/orm/descriptor_props.py,sha256=pKtpP7H1LB_YuHRVrEYpfFZybEnUUdPwQXxduYFe2hA,37180
|
|
152
152
|
sqlalchemy/orm/dynamic.py,sha256=jksBDCOsm6EBMVParcNGuMeaAv12hX4IzouKspC-HPA,9786
|
|
153
153
|
sqlalchemy/orm/evaluator.py,sha256=q292K5vdpP69G7Z9y1RqI5GFAk2diUPwnsXE8De_Wgw,11925
|
|
154
|
-
sqlalchemy/orm/events.py,sha256=
|
|
155
|
-
sqlalchemy/orm/exc.py,sha256=
|
|
154
|
+
sqlalchemy/orm/events.py,sha256=0lxP-EluVWSUr07ny2nsuQ8QhrDu9Qc4ON6QRUhuJnA,127703
|
|
155
|
+
sqlalchemy/orm/exc.py,sha256=IP40P-wOeXhkYk0YizuTC3wqm6W9cPTaQU08f5MMaQ0,7413
|
|
156
156
|
sqlalchemy/orm/identity.py,sha256=jHdCxCpCyda_8mFOfGmN_Pr0XZdKiU-2hFZshlNxbHs,9249
|
|
157
157
|
sqlalchemy/orm/instrumentation.py,sha256=M-kZmkUvHUxtf-0mCA8RIM5QmMH1hWlYR_pKMwaidjA,24321
|
|
158
|
-
sqlalchemy/orm/interfaces.py,sha256=
|
|
159
|
-
sqlalchemy/orm/loading.py,sha256=
|
|
158
|
+
sqlalchemy/orm/interfaces.py,sha256=Hmf1BjbfOarZRgMlruqghR7cgH2xyugA9v5t0x-a-wU,48502
|
|
159
|
+
sqlalchemy/orm/loading.py,sha256=9RacpzFOWbuKgPRWHFmyIvD4fYCLAnkpwBFASyQ2CoI,58277
|
|
160
160
|
sqlalchemy/orm/mapped_collection.py,sha256=3cneB1dfPTLrsTvKoo9_oCY2xtq4UAHfe5WSXPyqIS4,19690
|
|
161
|
-
sqlalchemy/orm/mapper.py,sha256=
|
|
162
|
-
sqlalchemy/orm/path_registry.py,sha256=
|
|
161
|
+
sqlalchemy/orm/mapper.py,sha256=bfoRzNKKnjF-CDvr2Df7HZC9TepvtuQ49LRz_fW7DGQ,171088
|
|
162
|
+
sqlalchemy/orm/path_registry.py,sha256=sJZMv_WPqUpHfQtKWaX3WYFeKBcNJ8C3wOM2mkBGkTE,25920
|
|
163
163
|
sqlalchemy/orm/persistence.py,sha256=dzyB2JOXNwQgaCbN8kh0sEz00WFePr48qf8NWVCUZH8,61701
|
|
164
|
-
sqlalchemy/orm/properties.py,sha256=
|
|
164
|
+
sqlalchemy/orm/properties.py,sha256=eDPFzxYUgdM3uWjHywnb1XW-i0tVKKyx7A2MCD31GQU,29306
|
|
165
165
|
sqlalchemy/orm/query.py,sha256=qKuFTUlbGVjs84AQ7APBY0PJhrzc2JJ1upeI658MV_o,117596
|
|
166
|
-
sqlalchemy/orm/relationships.py,sha256=
|
|
166
|
+
sqlalchemy/orm/relationships.py,sha256=dS5SY0v1MiD7iCNnAQlHaI6prUQhL5EkXT7ijc8FR8E,128644
|
|
167
167
|
sqlalchemy/orm/scoping.py,sha256=gFYywLeMmd5qjFdVPzeuCX727mTaChrCv8aqn4wPke0,78677
|
|
168
|
-
sqlalchemy/orm/session.py,sha256=
|
|
168
|
+
sqlalchemy/orm/session.py,sha256=Da-wd01Rw5fCqRr05RBY3dath-ssdloB4BvVrTVy8LA,195250
|
|
169
169
|
sqlalchemy/orm/state.py,sha256=mW2f1hMSNeTJ89foutOE1EqLLD6DZkrSeO-pgagZweg,37520
|
|
170
170
|
sqlalchemy/orm/state_changes.py,sha256=qKYg7NxwrDkuUY3EPygAztym6oAVUFcP2wXn7QD3Mz4,6815
|
|
171
171
|
sqlalchemy/orm/strategies.py,sha256=OtmMtWpCDk4ZiaM_ipzGn80sPOi6Opwj3Co4lUHpd_w,114206
|
|
172
|
-
sqlalchemy/orm/strategy_options.py,sha256=
|
|
172
|
+
sqlalchemy/orm/strategy_options.py,sha256=tFDJllL8Evxo2UjpyMkrxxRdphaclM-FBUd9O8WArdY,85366
|
|
173
173
|
sqlalchemy/orm/sync.py,sha256=g7iZfSge1HgxMk9SKRgUgtHEbpbZ1kP_CBqOIdTOXqc,5779
|
|
174
174
|
sqlalchemy/orm/unitofwork.py,sha256=fiVaqcymbDDHRa1NjS90N9Z466nd5pkJOEi1dHO6QLY,27033
|
|
175
|
-
sqlalchemy/orm/util.py,sha256=
|
|
175
|
+
sqlalchemy/orm/util.py,sha256=PvU_J4PSNcaOoNnsLY9qZ0lcElG71ykvdZSDZ76WSwg,80660
|
|
176
176
|
sqlalchemy/orm/writeonly.py,sha256=SYu2sAaHZONk2pW4PmtE871LG-O0P_bjidvKzY1H_zI,22305
|
|
177
177
|
sqlalchemy/pool/__init__.py,sha256=qiDdq4r4FFAoDrK6ncugF_i6usi_X1LeJt-CuBHey0s,1804
|
|
178
178
|
sqlalchemy/pool/base.py,sha256=WF4az4ZKuzQGuKeSJeyexaYjmWZUvYdC6KIi8zTGodw,52236
|
|
@@ -180,39 +180,39 @@ sqlalchemy/pool/events.py,sha256=xGjkIUZl490ZDtCHqnQF9ZCwe2Jv93eGXmnQxftB11E,131
|
|
|
180
180
|
sqlalchemy/pool/impl.py,sha256=JwpALSkH-pCoO_6oENbkHYY00Jx9nlttyoI61LivRNc,18944
|
|
181
181
|
sqlalchemy/sql/__init__.py,sha256=UNa9EUiYWoPayf-FzNcwVgQvpsBdInPZfpJesAStN9o,5820
|
|
182
182
|
sqlalchemy/sql/_dml_constructors.py,sha256=YdBJex0MCVACv4q2nl_ii3uhxzwU6aDB8zAsratX5UQ,3867
|
|
183
|
-
sqlalchemy/sql/_elements_constructors.py,sha256=
|
|
183
|
+
sqlalchemy/sql/_elements_constructors.py,sha256=1SX6o1ezeB8C9DAa2m0WxmfhM3ji3FeCprXFQkNerNY,63048
|
|
184
184
|
sqlalchemy/sql/_orm_types.py,sha256=T-vjcry4C1y0GToFKVxQCnmly_-Zsq4IO4SHN6bvUF4,625
|
|
185
185
|
sqlalchemy/sql/_py_util.py,sha256=hiM9ePbRSGs60bAMxPFuJCIC_p9SQ1VzqXGiPchiYwE,2173
|
|
186
186
|
sqlalchemy/sql/_selectable_constructors.py,sha256=wjE6HrLm9cR7bxvZXT8sFLUqT6t_J9G1XyQCnYmBDl0,18780
|
|
187
|
-
sqlalchemy/sql/_typing.py,sha256=
|
|
187
|
+
sqlalchemy/sql/_typing.py,sha256=oqwrYHVMtK-AuKGH9c4SgfiOEJUt5vjkzSEzzscMHkM,12771
|
|
188
188
|
sqlalchemy/sql/annotation.py,sha256=aqbbVz9kfbCT3_66CZ9GEirVN197Cukoqt8rq48FgkQ,18245
|
|
189
|
-
sqlalchemy/sql/base.py,sha256=
|
|
189
|
+
sqlalchemy/sql/base.py,sha256=Lg7iHywXmB7XuRMar45XSM4KayChGhfj1c8E7nWUJdo,73899
|
|
190
190
|
sqlalchemy/sql/cache_key.py,sha256=0Db8mR8IrpBgdzXs4TGTt98LOpL3c7KABd72MAPKUQQ,33668
|
|
191
191
|
sqlalchemy/sql/coercions.py,sha256=1xzN_9U5BCJGgokdc5iYj5o2cMAfEEZkr1Oa9Q-JYj8,40493
|
|
192
|
-
sqlalchemy/sql/compiler.py,sha256=
|
|
192
|
+
sqlalchemy/sql/compiler.py,sha256=e5XWUmeZnE3O8r7fndfmXjAze3qlFZY223BHqrso0AY,274647
|
|
193
193
|
sqlalchemy/sql/crud.py,sha256=g9xcol2KRGjZi1qsb2-bVz8zgVy_53gfMtJcnNO2vyQ,56521
|
|
194
194
|
sqlalchemy/sql/ddl.py,sha256=CIqMilCKfuQnF0lrZsQdTxgrbXqcTauKr0Ojzj77PFQ,45602
|
|
195
195
|
sqlalchemy/sql/default_comparator.py,sha256=utXWsZVGEjflhFfCT4ywa6RnhORc1Rryo87Hga71Rps,16707
|
|
196
196
|
sqlalchemy/sql/dml.py,sha256=pn0Lm1ofC5qVZzwGWFW73lPCiNba8OsTeemurJgwRyg,65614
|
|
197
|
-
sqlalchemy/sql/elements.py,sha256=
|
|
197
|
+
sqlalchemy/sql/elements.py,sha256=coAHu2qUNrEKOv0ZvnDsc3G8_6o9lciylZn-K6fJDXU,174621
|
|
198
198
|
sqlalchemy/sql/events.py,sha256=iC_Q1Htm1Aobt5tOYxWfHHqNpoytrULORmUKcusH_-E,18290
|
|
199
199
|
sqlalchemy/sql/expression.py,sha256=VMX-dLpsZYnVRJpYNDozDUgaj7iQ0HuewUKVefD57PE,7586
|
|
200
|
-
sqlalchemy/sql/functions.py,sha256=
|
|
201
|
-
sqlalchemy/sql/lambdas.py,sha256=
|
|
200
|
+
sqlalchemy/sql/functions.py,sha256=kMMYplvuIHFAPwxBI03SizwaLcYEHzysecWk-R1V-JM,63762
|
|
201
|
+
sqlalchemy/sql/lambdas.py,sha256=DP0Qz7Ypo8QhzMwygGHYgRhwJMx-rNezO1euouH3iYU,49292
|
|
202
202
|
sqlalchemy/sql/naming.py,sha256=ZHs1qSV3ou8TYmZ92uvU3sfdklUQlIz4uhe330n05SU,6858
|
|
203
203
|
sqlalchemy/sql/operators.py,sha256=r4oQp4h5zTMFFOpiFNV56joIK-QIjJCobatsmaZ-724,75935
|
|
204
204
|
sqlalchemy/sql/roles.py,sha256=pOsVn_OZD7mF2gJByHf24Rjopt0_Hu3dUCEOK5t4KS8,7662
|
|
205
|
-
sqlalchemy/sql/schema.py,sha256=
|
|
206
|
-
sqlalchemy/sql/selectable.py,sha256=
|
|
207
|
-
sqlalchemy/sql/sqltypes.py,sha256=
|
|
205
|
+
sqlalchemy/sql/schema.py,sha256=GctEXTYd5R9nqS07xgf5uFC-_3UIZJ7q3RaetzSs0Pk,229225
|
|
206
|
+
sqlalchemy/sql/selectable.py,sha256=XHL0xJeLWnQeGG_dK7zQ8lNsCGdP8DeJQuCF4bCW-bo,233505
|
|
207
|
+
sqlalchemy/sql/sqltypes.py,sha256=AAXED0rebCNmrY8K8kL6zox8_GD0L_p0lRzwM3SxCGk,126076
|
|
208
208
|
sqlalchemy/sql/traversals.py,sha256=NFgJrVJzInO3HrnG90CklxrDXhFydZohPs2vRJkh3Bo,33589
|
|
209
|
-
sqlalchemy/sql/type_api.py,sha256=
|
|
209
|
+
sqlalchemy/sql/type_api.py,sha256=CJAvRix_rRoOsE77sH4BqeGX0lIdtk8dX-StjGx3mUo,83208
|
|
210
210
|
sqlalchemy/sql/util.py,sha256=qGHQF-tPCj-m1FBerzT7weCanGcXU7dK5m-W7NHio-4,48077
|
|
211
211
|
sqlalchemy/sql/visitors.py,sha256=71wdVvhhZL4nJvVwFAs6ssaW-qZgNRSmKjpAcOzF_TA,36317
|
|
212
212
|
sqlalchemy/testing/__init__.py,sha256=VsrEHrORpAF5n7Vfl43YQgABh6EP1xBx_gHxs7pSXeE,3126
|
|
213
213
|
sqlalchemy/testing/assertions.py,sha256=gL0rA7CCZJbcVgvWOPV91tTZTRwQc1_Ta0-ykBn83Ew,31439
|
|
214
214
|
sqlalchemy/testing/assertsql.py,sha256=IgQG7l94WaiRP8nTbilJh1ZHZl125g7GPq-S5kmQZN0,16817
|
|
215
|
-
sqlalchemy/testing/asyncio.py,sha256=
|
|
215
|
+
sqlalchemy/testing/asyncio.py,sha256=kM8uuOqDBagZF0r9xvGmsiirUVLUQ_KBzjUFU67W-b8,3830
|
|
216
216
|
sqlalchemy/testing/config.py,sha256=AqyH1qub_gDqX0BvlL-JBQe7N-t2wo8655FtwblUNOY,12090
|
|
217
217
|
sqlalchemy/testing/engines.py,sha256=HFJceEBD3Q_TTFQMTtIV5wGWO_a7oUgoKtUF_z636SM,13481
|
|
218
218
|
sqlalchemy/testing/entities.py,sha256=IphFegPKbff3Un47jY6bi7_MQXy6qkx_50jX2tHZJR4,3354
|
|
@@ -228,11 +228,11 @@ sqlalchemy/testing/fixtures/__init__.py,sha256=dMClrIoxqlYIFpk2ia4RZpkbfxsS_3EBi
|
|
|
228
228
|
sqlalchemy/testing/fixtures/base.py,sha256=9r_J2ksiTzClpUxW0TczICHrWR7Ny8PV8IsBz6TsGFI,12256
|
|
229
229
|
sqlalchemy/testing/fixtures/mypy.py,sha256=gdxiwNFIzDlNGSOdvM3gbwDceVCC9t8oM5kKbwyhGBk,11973
|
|
230
230
|
sqlalchemy/testing/fixtures/orm.py,sha256=8EFbnaBbXX_Bf4FcCzBUaAHgyVpsLGBHX16SGLqE3Fg,6095
|
|
231
|
-
sqlalchemy/testing/fixtures/sql.py,sha256=
|
|
231
|
+
sqlalchemy/testing/fixtures/sql.py,sha256=TE5q2BSOc_Vq1TPaLnj1F9ZA_YiQHlqyvUtGId9bGr0,15774
|
|
232
232
|
sqlalchemy/testing/plugin/__init__.py,sha256=79F--BIY_NTBzVRIlJGgAY5LNJJ3cD19XvrAo4X0W9A,247
|
|
233
233
|
sqlalchemy/testing/plugin/bootstrap.py,sha256=oYScMbEW4pCnWlPEAq1insFruCXFQeEVBwo__i4McpU,1685
|
|
234
234
|
sqlalchemy/testing/plugin/plugin_base.py,sha256=BgNzWNEmgpK4CwhyblQQKnH-7FDKVi_Uul5vw8fFjBU,21578
|
|
235
|
-
sqlalchemy/testing/plugin/pytestplugin.py,sha256=
|
|
235
|
+
sqlalchemy/testing/plugin/pytestplugin.py,sha256=6jkQHH2VQMD75k2As9CuWXmEy9jrscoFRhCNg6-PaTw,27656
|
|
236
236
|
sqlalchemy/testing/suite/__init__.py,sha256=Y5DRNG0Yl1u3ypt9zVF0Z9suPZeuO_UQGLl-wRgvTjU,722
|
|
237
237
|
sqlalchemy/testing/suite/test_cte.py,sha256=6zBC3W2OwX1Xs-HedzchcKN2S7EaLNkgkvV_JSZ_Pq0,6451
|
|
238
238
|
sqlalchemy/testing/suite/test_ddl.py,sha256=1Npkf0C_4UNxphthAGjG078n0vPEgnSIHpDu5MfokxQ,12031
|
|
@@ -249,20 +249,20 @@ sqlalchemy/testing/suite/test_unicode_ddl.py,sha256=c3_eIxLyORuSOhNDP0jWKxPyUf3S
|
|
|
249
249
|
sqlalchemy/testing/suite/test_update_delete.py,sha256=yTiM2unnfOK9rK8ZkqeTTU_MkT-RsKFLmdYliniZfAY,3994
|
|
250
250
|
sqlalchemy/util/__init__.py,sha256=B3bedg-LSQEscwqgmYYU-VENUX8_zAE3q9vb7tkfJNY,8277
|
|
251
251
|
sqlalchemy/util/_collections.py,sha256=NE9dGJo8UNXIMbY3l3k8AO9BdPW04DlKTYraKCinchI,20063
|
|
252
|
-
sqlalchemy/util/_concurrency_py3k.py,sha256=
|
|
252
|
+
sqlalchemy/util/_concurrency_py3k.py,sha256=IBxZDTSyLbEx9I9ViQVXYP1twxM-pTa-3x_-U8snmLU,9191
|
|
253
253
|
sqlalchemy/util/_has_cy.py,sha256=wCQmeSjT3jaH_oxfCEtGk-1g0gbSpt5MCK5UcWdMWqk,1247
|
|
254
254
|
sqlalchemy/util/_py_collections.py,sha256=U6L5AoyLdgSv7cdqB4xxQbw1rpeJjyOZVXffgxgga8I,16714
|
|
255
255
|
sqlalchemy/util/compat.py,sha256=R6bpBydldtbr6h7oJePihQxFb7jKiI-YDsK465MSOzk,8714
|
|
256
|
-
sqlalchemy/util/concurrency.py,sha256=
|
|
256
|
+
sqlalchemy/util/concurrency.py,sha256=9lT_cMoO1fZNdY8QTUZ22oeSf-L5I-79Ke7chcBNPA0,3304
|
|
257
257
|
sqlalchemy/util/deprecations.py,sha256=YBwvvYhSB8LhasIZRKvg_-WNoVhPUcaYI1ZrnjDn868,11971
|
|
258
|
-
sqlalchemy/util/langhelpers.py,sha256=
|
|
258
|
+
sqlalchemy/util/langhelpers.py,sha256=kT7kwtTOPzHUFs6PhM1IEoW5ioeuFUFg2pjHSbH4d94,64891
|
|
259
259
|
sqlalchemy/util/preloaded.py,sha256=az7NmLJLsqs0mtM9uBkIu10-841RYDq8wOyqJ7xXvqE,5904
|
|
260
260
|
sqlalchemy/util/queue.py,sha256=CaeSEaYZ57YwtmLdNdOIjT5PK_LCuwMFiO0mpp39ybM,10185
|
|
261
261
|
sqlalchemy/util/tool_support.py,sha256=9braZyidaiNrZVsWtGmkSmus50-byhuYrlAqvhjcmnA,6135
|
|
262
262
|
sqlalchemy/util/topological.py,sha256=N3M3Le7KzGHCmqPGg0ZBqixTDGwmFLhOZvBtc4rHL_g,3458
|
|
263
|
-
sqlalchemy/util/typing.py,sha256=
|
|
264
|
-
SQLAlchemy-2.0.
|
|
265
|
-
SQLAlchemy-2.0.
|
|
266
|
-
SQLAlchemy-2.0.
|
|
267
|
-
SQLAlchemy-2.0.
|
|
268
|
-
SQLAlchemy-2.0.
|
|
263
|
+
sqlalchemy/util/typing.py,sha256=UctfgugSTnFJgZraikXJbB-5RoV7oyccZmbf2NeRfoA,16671
|
|
264
|
+
SQLAlchemy-2.0.30.dist-info/LICENSE,sha256=PA9Zq4h9BB3mpOUv_j6e212VIt6Qn66abNettue-MpM,1100
|
|
265
|
+
SQLAlchemy-2.0.30.dist-info/METADATA,sha256=je_u9qkpPX36jMg6zWrd8VjcEuly2P0zmsxfGP9GAHE,9602
|
|
266
|
+
SQLAlchemy-2.0.30.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
|
267
|
+
SQLAlchemy-2.0.30.dist-info/top_level.txt,sha256=rp-ZgB7D8G11ivXON5VGPjupT1voYmWqkciDt5Uaw_Q,11
|
|
268
|
+
SQLAlchemy-2.0.30.dist-info/RECORD,,
|
sqlalchemy/__init__.py
CHANGED
sqlalchemy/connectors/asyncio.py
CHANGED
|
@@ -11,7 +11,6 @@
|
|
|
11
11
|
from __future__ import annotations
|
|
12
12
|
|
|
13
13
|
import collections
|
|
14
|
-
import itertools
|
|
15
14
|
|
|
16
15
|
from ..engine import AdaptedConnection
|
|
17
16
|
from ..util.concurrency import asyncio
|
|
@@ -114,11 +113,8 @@ class AsyncAdapt_dbapi_cursor:
|
|
|
114
113
|
def fetchmany(self, size=None):
|
|
115
114
|
if size is None:
|
|
116
115
|
size = self.arraysize
|
|
117
|
-
|
|
118
|
-
rr
|
|
119
|
-
retval = list(itertools.islice(rr, 0, size))
|
|
120
|
-
self._rows = collections.deque(rr)
|
|
121
|
-
return retval
|
|
116
|
+
rr = self._rows
|
|
117
|
+
return [rr.popleft() for _ in range(min(size, len(rr)))]
|
|
122
118
|
|
|
123
119
|
def fetchall(self):
|
|
124
120
|
retval = list(self._rows)
|
|
@@ -1555,29 +1555,6 @@ class MSUUid(sqltypes.Uuid):
|
|
|
1555
1555
|
|
|
1556
1556
|
return process
|
|
1557
1557
|
|
|
1558
|
-
def _sentinel_value_resolver(self, dialect):
|
|
1559
|
-
if not self.native_uuid:
|
|
1560
|
-
# dealing entirely with strings going in and out of
|
|
1561
|
-
# CHAR(32)
|
|
1562
|
-
return None
|
|
1563
|
-
|
|
1564
|
-
# true if we expect the returned UUID values to be strings
|
|
1565
|
-
# pymssql sends UUID objects back, pyodbc sends strings,
|
|
1566
|
-
# however pyodbc converts them to uppercase coming back, so
|
|
1567
|
-
# need special logic here
|
|
1568
|
-
character_based_uuid = not dialect.supports_native_uuid
|
|
1569
|
-
|
|
1570
|
-
if character_based_uuid:
|
|
1571
|
-
# we sent UUID objects in all cases, see bind_processor()
|
|
1572
|
-
def process(uuid_value):
|
|
1573
|
-
return str(uuid_value).upper()
|
|
1574
|
-
|
|
1575
|
-
return process
|
|
1576
|
-
elif not self.as_uuid:
|
|
1577
|
-
return _python_UUID
|
|
1578
|
-
else:
|
|
1579
|
-
return None
|
|
1580
|
-
|
|
1581
1558
|
|
|
1582
1559
|
class UNIQUEIDENTIFIER(sqltypes.Uuid[sqltypes._UUID_RETURN]):
|
|
1583
1560
|
__visit_name__ = "UNIQUEIDENTIFIER"
|
|
@@ -282,6 +282,7 @@ RESERVED_WORDS_MARIADB = {
|
|
|
282
282
|
}
|
|
283
283
|
)
|
|
284
284
|
|
|
285
|
+
# https://dev.mysql.com/doc/refman/8.3/en/keywords.html
|
|
285
286
|
# https://dev.mysql.com/doc/refman/8.0/en/keywords.html
|
|
286
287
|
# https://dev.mysql.com/doc/refman/5.7/en/keywords.html
|
|
287
288
|
# https://dev.mysql.com/doc/refman/5.6/en/keywords.html
|
|
@@ -403,6 +404,7 @@ RESERVED_WORDS_MYSQL = {
|
|
|
403
404
|
"int4",
|
|
404
405
|
"int8",
|
|
405
406
|
"integer",
|
|
407
|
+
"intersect",
|
|
406
408
|
"interval",
|
|
407
409
|
"into",
|
|
408
410
|
"io_after_gtids",
|
|
@@ -468,6 +470,7 @@ RESERVED_WORDS_MYSQL = {
|
|
|
468
470
|
"outfile",
|
|
469
471
|
"over",
|
|
470
472
|
"parse_gcol_expr",
|
|
473
|
+
"parallel",
|
|
471
474
|
"partition",
|
|
472
475
|
"percent_rank",
|
|
473
476
|
"persist",
|
|
@@ -476,6 +479,7 @@ RESERVED_WORDS_MYSQL = {
|
|
|
476
479
|
"primary",
|
|
477
480
|
"procedure",
|
|
478
481
|
"purge",
|
|
482
|
+
"qualify",
|
|
479
483
|
"range",
|
|
480
484
|
"rank",
|
|
481
485
|
"read",
|
|
@@ -183,8 +183,9 @@ class ARRAY(sqltypes.ARRAY):
|
|
|
183
183
|
|
|
184
184
|
mytable.c.data.contains([1, 2])
|
|
185
185
|
|
|
186
|
-
|
|
187
|
-
|
|
186
|
+
Indexed access is one-based by default, to match that of PostgreSQL;
|
|
187
|
+
for zero-based indexed access, set
|
|
188
|
+
:paramref:`_postgresql.ARRAY.zero_indexes`.
|
|
188
189
|
|
|
189
190
|
Additionally, the :class:`_postgresql.ARRAY`
|
|
190
191
|
type does not work directly in
|
|
@@ -224,41 +225,6 @@ class ARRAY(sqltypes.ARRAY):
|
|
|
224
225
|
|
|
225
226
|
"""
|
|
226
227
|
|
|
227
|
-
class Comparator(sqltypes.ARRAY.Comparator):
|
|
228
|
-
"""Define comparison operations for :class:`_types.ARRAY`.
|
|
229
|
-
|
|
230
|
-
Note that these operations are in addition to those provided
|
|
231
|
-
by the base :class:`.types.ARRAY.Comparator` class, including
|
|
232
|
-
:meth:`.types.ARRAY.Comparator.any` and
|
|
233
|
-
:meth:`.types.ARRAY.Comparator.all`.
|
|
234
|
-
|
|
235
|
-
"""
|
|
236
|
-
|
|
237
|
-
def contains(self, other, **kwargs):
|
|
238
|
-
"""Boolean expression. Test if elements are a superset of the
|
|
239
|
-
elements of the argument array expression.
|
|
240
|
-
|
|
241
|
-
kwargs may be ignored by this operator but are required for API
|
|
242
|
-
conformance.
|
|
243
|
-
"""
|
|
244
|
-
return self.operate(CONTAINS, other, result_type=sqltypes.Boolean)
|
|
245
|
-
|
|
246
|
-
def contained_by(self, other):
|
|
247
|
-
"""Boolean expression. Test if elements are a proper subset of the
|
|
248
|
-
elements of the argument array expression.
|
|
249
|
-
"""
|
|
250
|
-
return self.operate(
|
|
251
|
-
CONTAINED_BY, other, result_type=sqltypes.Boolean
|
|
252
|
-
)
|
|
253
|
-
|
|
254
|
-
def overlap(self, other):
|
|
255
|
-
"""Boolean expression. Test if array has elements in common with
|
|
256
|
-
an argument array expression.
|
|
257
|
-
"""
|
|
258
|
-
return self.operate(OVERLAP, other, result_type=sqltypes.Boolean)
|
|
259
|
-
|
|
260
|
-
comparator_factory = Comparator
|
|
261
|
-
|
|
262
228
|
def __init__(
|
|
263
229
|
self,
|
|
264
230
|
item_type: _TypeEngineArgument[Any],
|
|
@@ -310,6 +276,41 @@ class ARRAY(sqltypes.ARRAY):
|
|
|
310
276
|
self.dimensions = dimensions
|
|
311
277
|
self.zero_indexes = zero_indexes
|
|
312
278
|
|
|
279
|
+
class Comparator(sqltypes.ARRAY.Comparator):
|
|
280
|
+
"""Define comparison operations for :class:`_types.ARRAY`.
|
|
281
|
+
|
|
282
|
+
Note that these operations are in addition to those provided
|
|
283
|
+
by the base :class:`.types.ARRAY.Comparator` class, including
|
|
284
|
+
:meth:`.types.ARRAY.Comparator.any` and
|
|
285
|
+
:meth:`.types.ARRAY.Comparator.all`.
|
|
286
|
+
|
|
287
|
+
"""
|
|
288
|
+
|
|
289
|
+
def contains(self, other, **kwargs):
|
|
290
|
+
"""Boolean expression. Test if elements are a superset of the
|
|
291
|
+
elements of the argument array expression.
|
|
292
|
+
|
|
293
|
+
kwargs may be ignored by this operator but are required for API
|
|
294
|
+
conformance.
|
|
295
|
+
"""
|
|
296
|
+
return self.operate(CONTAINS, other, result_type=sqltypes.Boolean)
|
|
297
|
+
|
|
298
|
+
def contained_by(self, other):
|
|
299
|
+
"""Boolean expression. Test if elements are a proper subset of the
|
|
300
|
+
elements of the argument array expression.
|
|
301
|
+
"""
|
|
302
|
+
return self.operate(
|
|
303
|
+
CONTAINED_BY, other, result_type=sqltypes.Boolean
|
|
304
|
+
)
|
|
305
|
+
|
|
306
|
+
def overlap(self, other):
|
|
307
|
+
"""Boolean expression. Test if array has elements in common with
|
|
308
|
+
an argument array expression.
|
|
309
|
+
"""
|
|
310
|
+
return self.operate(OVERLAP, other, result_type=sqltypes.Boolean)
|
|
311
|
+
|
|
312
|
+
comparator_factory = Comparator
|
|
313
|
+
|
|
313
314
|
@property
|
|
314
315
|
def hashable(self):
|
|
315
316
|
return self.as_tuple
|
|
@@ -112,8 +112,8 @@ To disable the prepared statement cache, use a value of zero::
|
|
|
112
112
|
|
|
113
113
|
.. _asyncpg_prepared_statement_name:
|
|
114
114
|
|
|
115
|
-
Prepared Statement Name
|
|
116
|
-
|
|
115
|
+
Prepared Statement Name with PGBouncer
|
|
116
|
+
--------------------------------------
|
|
117
117
|
|
|
118
118
|
By default, asyncpg enumerates prepared statements in numeric order, which
|
|
119
119
|
can lead to errors if a name has already been taken for another prepared
|
|
@@ -128,7 +128,7 @@ a prepared statement is prepared::
|
|
|
128
128
|
from uuid import uuid4
|
|
129
129
|
|
|
130
130
|
engine = create_async_engine(
|
|
131
|
-
"postgresql+asyncpg://user:pass@
|
|
131
|
+
"postgresql+asyncpg://user:pass@somepgbouncer/dbname",
|
|
132
132
|
poolclass=NullPool,
|
|
133
133
|
connect_args={
|
|
134
134
|
'prepared_statement_name_func': lambda: f'__asyncpg_{uuid4()}__',
|
|
@@ -141,7 +141,7 @@ a prepared statement is prepared::
|
|
|
141
141
|
|
|
142
142
|
https://github.com/sqlalchemy/sqlalchemy/issues/6467
|
|
143
143
|
|
|
144
|
-
.. warning::
|
|
144
|
+
.. warning:: When using PGBouncer, to prevent a buildup of useless prepared statements in
|
|
145
145
|
your application, it's important to use the :class:`.NullPool` pool
|
|
146
146
|
class, and to configure PgBouncer to use `DISCARD <https://www.postgresql.org/docs/current/sql-discard.html>`_
|
|
147
147
|
when returning connections. The DISCARD command is used to release resources held by the db connection,
|