SQLAlchemy 2.0.31__py3-none-any.whl → 2.0.32__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.31.dist-info → SQLAlchemy-2.0.32.dist-info}/METADATA +33 -33
- {SQLAlchemy-2.0.31.dist-info → SQLAlchemy-2.0.32.dist-info}/RECORD +51 -51
- {SQLAlchemy-2.0.31.dist-info → SQLAlchemy-2.0.32.dist-info}/WHEEL +1 -1
- sqlalchemy/__init__.py +1 -1
- sqlalchemy/connectors/asyncio.py +10 -1
- sqlalchemy/dialects/mssql/base.py +4 -0
- sqlalchemy/dialects/mysql/base.py +2 -0
- sqlalchemy/dialects/oracle/base.py +36 -4
- sqlalchemy/dialects/oracle/cx_oracle.py +5 -14
- sqlalchemy/dialects/oracle/oracledb.py +123 -3
- sqlalchemy/dialects/postgresql/provision.py +1 -1
- sqlalchemy/dialects/postgresql/psycopg2.py +33 -23
- sqlalchemy/dialects/sqlite/base.py +19 -1
- sqlalchemy/engine/base.py +2 -0
- sqlalchemy/engine/default.py +19 -2
- sqlalchemy/engine/interfaces.py +10 -2
- sqlalchemy/event/base.py +46 -45
- sqlalchemy/ext/mypy/util.py +20 -1
- sqlalchemy/orm/_orm_constructors.py +12 -2
- sqlalchemy/orm/attributes.py +1 -1
- sqlalchemy/orm/bulk_persistence.py +29 -1
- sqlalchemy/orm/collections.py +5 -3
- sqlalchemy/orm/descriptor_props.py +3 -1
- sqlalchemy/orm/dynamic.py +6 -4
- sqlalchemy/orm/mapped_collection.py +12 -15
- sqlalchemy/orm/query.py +1 -1
- sqlalchemy/orm/session.py +11 -0
- sqlalchemy/orm/strategies.py +11 -0
- sqlalchemy/orm/util.py +1 -1
- sqlalchemy/sql/base.py +1 -1
- sqlalchemy/sql/coercions.py +40 -24
- sqlalchemy/sql/compiler.py +5 -3
- sqlalchemy/sql/crud.py +1 -1
- sqlalchemy/sql/elements.py +13 -3
- sqlalchemy/sql/operators.py +6 -0
- sqlalchemy/sql/schema.py +3 -8
- sqlalchemy/sql/selectable.py +38 -17
- sqlalchemy/sql/sqltypes.py +12 -7
- sqlalchemy/sql/traversals.py +2 -0
- sqlalchemy/sql/type_api.py +22 -7
- sqlalchemy/testing/__init__.py +1 -0
- sqlalchemy/testing/fixtures/sql.py +12 -2
- sqlalchemy/testing/requirements.py +25 -0
- sqlalchemy/testing/suite/test_results.py +43 -9
- sqlalchemy/testing/suite/test_select.py +111 -0
- sqlalchemy/testing/suite/test_types.py +70 -0
- sqlalchemy/testing/util.py +18 -0
- sqlalchemy/util/compat.py +1 -1
- sqlalchemy/util/langhelpers.py +8 -0
- {SQLAlchemy-2.0.31.dist-info → SQLAlchemy-2.0.32.dist-info}/LICENSE +0 -0
- {SQLAlchemy-2.0.31.dist-info → SQLAlchemy-2.0.32.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: SQLAlchemy
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.32
|
|
4
4
|
Summary: Database Abstraction Library
|
|
5
5
|
Home-page: https://www.sqlalchemy.org
|
|
6
6
|
Author: Mike Bayer
|
|
@@ -26,61 +26,61 @@ Classifier: Topic :: Database :: Front-Ends
|
|
|
26
26
|
Requires-Python: >=3.7
|
|
27
27
|
Description-Content-Type: text/x-rst
|
|
28
28
|
License-File: LICENSE
|
|
29
|
-
Requires-Dist: typing-extensions
|
|
30
|
-
Requires-Dist: greenlet
|
|
31
|
-
Requires-Dist: importlib-metadata
|
|
29
|
+
Requires-Dist: typing-extensions>=4.6.0
|
|
30
|
+
Requires-Dist: greenlet!=0.4.17; python_version < "3.13" and (platform_machine == "aarch64" or (platform_machine == "ppc64le" or (platform_machine == "x86_64" or (platform_machine == "amd64" or (platform_machine == "AMD64" or (platform_machine == "win32" or platform_machine == "WIN32"))))))
|
|
31
|
+
Requires-Dist: importlib-metadata; python_version < "3.8"
|
|
32
32
|
Provides-Extra: aiomysql
|
|
33
|
-
Requires-Dist: greenlet
|
|
34
|
-
Requires-Dist: aiomysql
|
|
33
|
+
Requires-Dist: greenlet!=0.4.17; extra == "aiomysql"
|
|
34
|
+
Requires-Dist: aiomysql>=0.2.0; extra == "aiomysql"
|
|
35
35
|
Provides-Extra: aioodbc
|
|
36
|
-
Requires-Dist: greenlet
|
|
37
|
-
Requires-Dist: aioodbc
|
|
36
|
+
Requires-Dist: greenlet!=0.4.17; extra == "aioodbc"
|
|
37
|
+
Requires-Dist: aioodbc; extra == "aioodbc"
|
|
38
38
|
Provides-Extra: aiosqlite
|
|
39
|
-
Requires-Dist: greenlet
|
|
40
|
-
Requires-Dist: aiosqlite
|
|
41
|
-
Requires-Dist: typing-extensions
|
|
39
|
+
Requires-Dist: greenlet!=0.4.17; extra == "aiosqlite"
|
|
40
|
+
Requires-Dist: aiosqlite; extra == "aiosqlite"
|
|
41
|
+
Requires-Dist: typing-extensions!=3.10.0.1; extra == "aiosqlite"
|
|
42
42
|
Provides-Extra: asyncio
|
|
43
|
-
Requires-Dist: greenlet
|
|
43
|
+
Requires-Dist: greenlet!=0.4.17; extra == "asyncio"
|
|
44
44
|
Provides-Extra: asyncmy
|
|
45
|
-
Requires-Dist: greenlet
|
|
46
|
-
Requires-Dist: asyncmy
|
|
45
|
+
Requires-Dist: greenlet!=0.4.17; extra == "asyncmy"
|
|
46
|
+
Requires-Dist: asyncmy!=0.2.4,!=0.2.6,>=0.2.3; extra == "asyncmy"
|
|
47
47
|
Provides-Extra: mariadb_connector
|
|
48
|
-
Requires-Dist: mariadb
|
|
48
|
+
Requires-Dist: mariadb!=1.1.2,!=1.1.5,>=1.0.1; extra == "mariadb-connector"
|
|
49
49
|
Provides-Extra: mssql
|
|
50
|
-
Requires-Dist: pyodbc
|
|
50
|
+
Requires-Dist: pyodbc; extra == "mssql"
|
|
51
51
|
Provides-Extra: mssql_pymssql
|
|
52
|
-
Requires-Dist: pymssql
|
|
52
|
+
Requires-Dist: pymssql; extra == "mssql-pymssql"
|
|
53
53
|
Provides-Extra: mssql_pyodbc
|
|
54
|
-
Requires-Dist: pyodbc
|
|
54
|
+
Requires-Dist: pyodbc; extra == "mssql-pyodbc"
|
|
55
55
|
Provides-Extra: mypy
|
|
56
|
-
Requires-Dist: mypy
|
|
56
|
+
Requires-Dist: mypy>=0.910; extra == "mypy"
|
|
57
57
|
Provides-Extra: mysql
|
|
58
|
-
Requires-Dist: mysqlclient
|
|
58
|
+
Requires-Dist: mysqlclient>=1.4.0; extra == "mysql"
|
|
59
59
|
Provides-Extra: mysql_connector
|
|
60
|
-
Requires-Dist: mysql-connector-python
|
|
60
|
+
Requires-Dist: mysql-connector-python; extra == "mysql-connector"
|
|
61
61
|
Provides-Extra: oracle
|
|
62
|
-
Requires-Dist: cx-oracle
|
|
62
|
+
Requires-Dist: cx-oracle>=8; extra == "oracle"
|
|
63
63
|
Provides-Extra: oracle_oracledb
|
|
64
|
-
Requires-Dist: oracledb
|
|
64
|
+
Requires-Dist: oracledb>=1.0.1; extra == "oracle-oracledb"
|
|
65
65
|
Provides-Extra: postgresql
|
|
66
|
-
Requires-Dist: psycopg2
|
|
66
|
+
Requires-Dist: psycopg2>=2.7; extra == "postgresql"
|
|
67
67
|
Provides-Extra: postgresql_asyncpg
|
|
68
|
-
Requires-Dist: greenlet
|
|
69
|
-
Requires-Dist: asyncpg
|
|
68
|
+
Requires-Dist: greenlet!=0.4.17; extra == "postgresql-asyncpg"
|
|
69
|
+
Requires-Dist: asyncpg; extra == "postgresql-asyncpg"
|
|
70
70
|
Provides-Extra: postgresql_pg8000
|
|
71
|
-
Requires-Dist: pg8000
|
|
71
|
+
Requires-Dist: pg8000>=1.29.1; extra == "postgresql-pg8000"
|
|
72
72
|
Provides-Extra: postgresql_psycopg
|
|
73
|
-
Requires-Dist: psycopg
|
|
73
|
+
Requires-Dist: psycopg>=3.0.7; extra == "postgresql-psycopg"
|
|
74
74
|
Provides-Extra: postgresql_psycopg2binary
|
|
75
|
-
Requires-Dist: psycopg2-binary
|
|
75
|
+
Requires-Dist: psycopg2-binary; extra == "postgresql-psycopg2binary"
|
|
76
76
|
Provides-Extra: postgresql_psycopg2cffi
|
|
77
|
-
Requires-Dist: psycopg2cffi
|
|
77
|
+
Requires-Dist: psycopg2cffi; extra == "postgresql-psycopg2cffi"
|
|
78
78
|
Provides-Extra: postgresql_psycopgbinary
|
|
79
|
-
Requires-Dist: psycopg[binary]
|
|
79
|
+
Requires-Dist: psycopg[binary]>=3.0.7; extra == "postgresql-psycopgbinary"
|
|
80
80
|
Provides-Extra: pymysql
|
|
81
|
-
Requires-Dist: pymysql
|
|
81
|
+
Requires-Dist: pymysql; extra == "pymysql"
|
|
82
82
|
Provides-Extra: sqlcipher
|
|
83
|
-
Requires-Dist: sqlcipher3-binary
|
|
83
|
+
Requires-Dist: sqlcipher3-binary; extra == "sqlcipher"
|
|
84
84
|
|
|
85
85
|
SQLAlchemy
|
|
86
86
|
==========
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
sqlalchemy/__init__.py,sha256=
|
|
1
|
+
sqlalchemy/__init__.py,sha256=i0mVxtnBs8TF20PbrQJe7ftldXr46Jp4MmWaCO0F8Pw,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=Hq2bkXmG6-KO_RfCrwMqx4oGH-uH1Z1WWKqPWNjz8p4,6138
|
|
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=TQekFOsor8Rc-cnDPmbq_JLQekKrHPtUdBdNsCYFw7w,132447
|
|
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
|
|
@@ -31,7 +31,7 @@ sqlalchemy/dialects/mssql/pyodbc.py,sha256=vwM-vBlmRwrqxOc73P0sFOrBSwn24wzc5IkEO
|
|
|
31
31
|
sqlalchemy/dialects/mysql/__init__.py,sha256=bxbi4hkysUK2OOVvr1F49akUj1cky27kKb07tgFzI9U,2153
|
|
32
32
|
sqlalchemy/dialects/mysql/aiomysql.py,sha256=-oMZnCqNsSki8mlQRTWIwiQPT1OVdZIuANkb90q8LAs,9999
|
|
33
33
|
sqlalchemy/dialects/mysql/asyncmy.py,sha256=YpuuOh8VknEeqHqUXQGfQ3jhfO3Xb-vZv78Jq5cscJ0,10067
|
|
34
|
-
sqlalchemy/dialects/mysql/base.py,sha256=
|
|
34
|
+
sqlalchemy/dialects/mysql/base.py,sha256=1iN5wVw52gDRi5go-q6YsX8vCPwW-Mkd3ej3rrX2ai8,120957
|
|
35
35
|
sqlalchemy/dialects/mysql/cymysql.py,sha256=eXT1ry0w_qRxjiO24M980c-8PZ9qSsbhqBHntjEiKB0,2300
|
|
36
36
|
sqlalchemy/dialects/mysql/dml.py,sha256=HXJMAvimJsqvhj3UZO4vW_6LkF5RqaKbHvklAjor7yU,7645
|
|
37
37
|
sqlalchemy/dialects/mysql/enumerated.py,sha256=ipEPPQqoXfFwcywNdcLlZCEzHBtnitHRah1Gn6nItcg,8448
|
|
@@ -48,10 +48,10 @@ sqlalchemy/dialects/mysql/reflection.py,sha256=3u34YwT1JJh3uThGZJZ3FKdnUcT7v08QB
|
|
|
48
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
|
-
sqlalchemy/dialects/oracle/base.py,sha256
|
|
52
|
-
sqlalchemy/dialects/oracle/cx_oracle.py,sha256=
|
|
51
|
+
sqlalchemy/dialects/oracle/base.py,sha256=cav9QxSLT75-JXhhFSneYT_y3coF6TmFkBa5fqQMrRI,119615
|
|
52
|
+
sqlalchemy/dialects/oracle/cx_oracle.py,sha256=QcbM3I6ixtEqTdTMjik8IASE43dAE9LUzs-2g_Q_J4w,55258
|
|
53
53
|
sqlalchemy/dialects/oracle/dictionary.py,sha256=7WMrbPkqo8ZdGjaEZyQr-5f2pajSOF1OTGb8P97z8-g,19519
|
|
54
|
-
sqlalchemy/dialects/oracle/oracledb.py,sha256=
|
|
54
|
+
sqlalchemy/dialects/oracle/oracledb.py,sha256=fZRKGqNIwW9LG4i8yDOXABrucbfzn_yC86Od-BJ3PcM,13619
|
|
55
55
|
sqlalchemy/dialects/oracle/provision.py,sha256=O9ZpF4OG6Cx4mMzLRfZwhs8dZjrJETWR402n9c7726A,8304
|
|
56
56
|
sqlalchemy/dialects/oracle/types.py,sha256=QK3hJvWzKnnCe3oD3rItwEEIwcoBze8qGg7VFOvVlIk,8231
|
|
57
57
|
sqlalchemy/dialects/postgresql/__init__.py,sha256=wwnNAq4wDQzrlPRzDNB06ayuq3L2HNO99nzeEvq-YcU,3892
|
|
@@ -67,15 +67,15 @@ sqlalchemy/dialects/postgresql/named_types.py,sha256=3IV1ufo7zJjKmX4VtGDEnoXE6xE
|
|
|
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
69
|
sqlalchemy/dialects/postgresql/pg_catalog.py,sha256=hY3NXEUHxTWD4umhd2aowNu3laC-61Q_qQ_pReyXTUM,9254
|
|
70
|
-
sqlalchemy/dialects/postgresql/provision.py,sha256=
|
|
70
|
+
sqlalchemy/dialects/postgresql/provision.py,sha256=t6TZj0XaWG9zrpCjNr0oJRjAC_WQzaNdp3kaKJIbS8I,5770
|
|
71
71
|
sqlalchemy/dialects/postgresql/psycopg.py,sha256=ACkfuT87vUJEW4kJyUqDYTwlnl5u0FZFlDcvLzxNzFQ,23226
|
|
72
|
-
sqlalchemy/dialects/postgresql/psycopg2.py,sha256=
|
|
72
|
+
sqlalchemy/dialects/postgresql/psycopg2.py,sha256=kwEnflz5bAqJcuO_20eYiCtha_a4m_tg5_lppdDnaeU,31998
|
|
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
|
|
76
76
|
sqlalchemy/dialects/sqlite/__init__.py,sha256=lp9DIggNn349M-7IYhUA8et8--e8FRExWD2V_r1LJk4,1182
|
|
77
77
|
sqlalchemy/dialects/sqlite/aiosqlite.py,sha256=g3qGV6jmiXabWyb3282g_Nmxtj1jThxGSe9C9yalb-U,12345
|
|
78
|
-
sqlalchemy/dialects/sqlite/base.py,sha256=
|
|
78
|
+
sqlalchemy/dialects/sqlite/base.py,sha256=GmDZ7DRgXVXWjx5BKSZgGzKmYHokMtCINM0p8bDmbAc,97557
|
|
79
79
|
sqlalchemy/dialects/sqlite/dml.py,sha256=9GE55WvwoktKy2fHeT-Wbc9xPHgsbh5oBfd_fckMH5Q,8443
|
|
80
80
|
sqlalchemy/dialects/sqlite/json.py,sha256=Eoplbb_4dYlfrtmQaI8Xddd2suAIHA-IdbDQYM-LIhs,2777
|
|
81
81
|
sqlalchemy/dialects/sqlite/provision.py,sha256=UCpmwxf4IWlrpb2eLHGbPTpCFVbdI_KAh2mKtjiLYao,5632
|
|
@@ -85,13 +85,13 @@ sqlalchemy/engine/__init__.py,sha256=Stb2oV6l8w65JvqEo6J4qtKoApcmOpXy3AAxQud4C1o
|
|
|
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=
|
|
88
|
+
sqlalchemy/engine/base.py,sha256=frWSMmt3dlentYH4QNN3cijdGzp8NbunColUZwWsWgI,122958
|
|
89
89
|
sqlalchemy/engine/characteristics.py,sha256=N3kbvw_ApMh86wb5yAGnxtPYD4YRhYMWion1H_aVZBI,4765
|
|
90
90
|
sqlalchemy/engine/create.py,sha256=mYJtOG2ZKM8sgyfjpGpamW15RDU7JXi5s6iibbJHMIs,33206
|
|
91
91
|
sqlalchemy/engine/cursor.py,sha256=cFq61yrw76k-QR_xNUBWuL-Zeyb14ltG-6jo2Q2iuuw,76392
|
|
92
|
-
sqlalchemy/engine/default.py,sha256=
|
|
92
|
+
sqlalchemy/engine/default.py,sha256=2wwKKdsagb3QTajRSEw8Hl-EnQ-LmRxy822xOGyenHc,84648
|
|
93
93
|
sqlalchemy/engine/events.py,sha256=c0unNFFiHzTAvkUtXoJaxzMFMDwurBkHiiUhuN8qluc,37381
|
|
94
|
-
sqlalchemy/engine/interfaces.py,sha256=
|
|
94
|
+
sqlalchemy/engine/interfaces.py,sha256=fcVHOmnMo7JZLHzgSKoK3QsdVHH7kJ_AmrDvwW9Ka3k,112936
|
|
95
95
|
sqlalchemy/engine/mock.py,sha256=yvpxgFmRw5G4QsHeF-ZwQGHKES-HqQOucTxFtN1uzdk,4179
|
|
96
96
|
sqlalchemy/engine/processors.py,sha256=XyfINKbo-2fjN-mW55YybvFyQMOil50_kVqsunahkNs,2379
|
|
97
97
|
sqlalchemy/engine/reflection.py,sha256=FlT5kPpKm7Lah50GNt5XcnlJWojTL3LD_x0SoCF9kfY,75127
|
|
@@ -103,7 +103,7 @@ sqlalchemy/engine/util.py,sha256=bNirO8k1S8yOW61uNH-a9QrWtAJ9VGFgbiR0lk1lUQU,568
|
|
|
103
103
|
sqlalchemy/event/__init__.py,sha256=KBrp622xojnC3FFquxa2JsMamwAbfkvzfv6Op0NKiYc,997
|
|
104
104
|
sqlalchemy/event/api.py,sha256=DtDVgjKSorOfp9MGJ7fgMWrj4seC_hkwF4D8CW1RFZU,8226
|
|
105
105
|
sqlalchemy/event/attr.py,sha256=X8QeHGK4ioSYht1vkhc11f606_mq_t91jMNIT314ubs,20751
|
|
106
|
-
sqlalchemy/event/base.py,sha256=
|
|
106
|
+
sqlalchemy/event/base.py,sha256=270OShTD17-bSFUFnPtKdVnB0NFJZ2AouYPo1wT0aJw,15127
|
|
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
|
|
@@ -133,23 +133,23 @@ sqlalchemy/ext/mypy/decl_class.py,sha256=1vVJRII2apnLTUbc5HkJS6Z2GueaUv_eKvhbqh7
|
|
|
133
133
|
sqlalchemy/ext/mypy/infer.py,sha256=KVnmLFEVS33Al8pUKI7MJbJQu3KeveBUMl78EluBORw,19369
|
|
134
134
|
sqlalchemy/ext/mypy/names.py,sha256=Q3ef8XQBgVm9WUwlItqlYCXDNi_kbV5DdLEgbtEMEI8,10479
|
|
135
135
|
sqlalchemy/ext/mypy/plugin.py,sha256=74ML8LI9xar0V86oCxnPFv5FQGEEfUzK64vOay4BKFs,9750
|
|
136
|
-
sqlalchemy/ext/mypy/util.py,sha256=
|
|
136
|
+
sqlalchemy/ext/mypy/util.py,sha256=DKRaurkXHI2lAMAAcEO5GLXbX_m2Xqy7l_juh8Byf5U,9960
|
|
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=c4RMiYKIXzOTjuPIBbyRIzpizYjUBm2sd7k0n1vqb2o,100717
|
|
141
141
|
sqlalchemy/orm/_typing.py,sha256=DVBfpHmDVK4x1zxaGJPY2GoTrAsyR6uexv20Lzf1afc,4973
|
|
142
|
-
sqlalchemy/orm/attributes.py,sha256=
|
|
142
|
+
sqlalchemy/orm/attributes.py,sha256=lorOHBJvJJYndOuafWJhHBbQ1pR6FAyimhqz-mErBRQ,92534
|
|
143
143
|
sqlalchemy/orm/base.py,sha256=re6A8ooMxLyfCAeQfhBwwxeJQkiH7EtzzOZIVIiTPlw,27466
|
|
144
|
-
sqlalchemy/orm/bulk_persistence.py,sha256=
|
|
144
|
+
sqlalchemy/orm/bulk_persistence.py,sha256=MfFALcRkE3eKwxkntVM1ZcUhOphUFwAr1Fc21qJoobo,71403
|
|
145
145
|
sqlalchemy/orm/clsregistry.py,sha256=29LyYiuj0qbebOpgW6DbBPNB2ikTweFQar1byCst7I0,17958
|
|
146
|
-
sqlalchemy/orm/collections.py,sha256=
|
|
146
|
+
sqlalchemy/orm/collections.py,sha256=WEKuUCRgLhDhJEIBhZ21UrE0pBOyRm2zxD20GvbgA9g,52243
|
|
147
147
|
sqlalchemy/orm/context.py,sha256=pFFc-1ZjaV3aQMAO27UIh0W6NyLc30n2IbuWNprMtS8,112445
|
|
148
148
|
sqlalchemy/orm/decl_api.py,sha256=_WPKQ_vSE5k2TLtNmkaxxYmvbhZvkRMrrvCeDxdqDQE,63998
|
|
149
149
|
sqlalchemy/orm/decl_base.py,sha256=oeL7xrty2J81FyDx03dNe02BtZ-R6iYpum-BoA1rhik,82822
|
|
150
150
|
sqlalchemy/orm/dependency.py,sha256=hgjksUWhgbmgHK5GdJdiDCBgDAIGQXIrY-Tj79tbL2k,47631
|
|
151
|
-
sqlalchemy/orm/descriptor_props.py,sha256=
|
|
152
|
-
sqlalchemy/orm/dynamic.py,sha256=
|
|
151
|
+
sqlalchemy/orm/descriptor_props.py,sha256=dR_h4Gvdtpcdp4sj_ZOR4P5Nng2J2vhsvFHouRLlntc,37244
|
|
152
|
+
sqlalchemy/orm/dynamic.py,sha256=rWAZ-nfAkREuNjt8e_FRdqYrvHDdbODn1CcfyP8Y18k,9816
|
|
153
153
|
sqlalchemy/orm/evaluator.py,sha256=q292K5vdpP69G7Z9y1RqI5GFAk2diUPwnsXE8De_Wgw,11925
|
|
154
154
|
sqlalchemy/orm/events.py,sha256=0lxP-EluVWSUr07ny2nsuQ8QhrDu9Qc4ON6QRUhuJnA,127703
|
|
155
155
|
sqlalchemy/orm/exc.py,sha256=IP40P-wOeXhkYk0YizuTC3wqm6W9cPTaQU08f5MMaQ0,7413
|
|
@@ -157,22 +157,22 @@ sqlalchemy/orm/identity.py,sha256=jHdCxCpCyda_8mFOfGmN_Pr0XZdKiU-2hFZshlNxbHs,92
|
|
|
157
157
|
sqlalchemy/orm/instrumentation.py,sha256=M-kZmkUvHUxtf-0mCA8RIM5QmMH1hWlYR_pKMwaidjA,24321
|
|
158
158
|
sqlalchemy/orm/interfaces.py,sha256=Hmf1BjbfOarZRgMlruqghR7cgH2xyugA9v5t0x-a-wU,48502
|
|
159
159
|
sqlalchemy/orm/loading.py,sha256=9RacpzFOWbuKgPRWHFmyIvD4fYCLAnkpwBFASyQ2CoI,58277
|
|
160
|
-
sqlalchemy/orm/mapped_collection.py,sha256=
|
|
160
|
+
sqlalchemy/orm/mapped_collection.py,sha256=zK3d3iozORzDruBUrAmkVC0RR3Orj5szk-TSQ24xzIU,19682
|
|
161
161
|
sqlalchemy/orm/mapper.py,sha256=bfoRzNKKnjF-CDvr2Df7HZC9TepvtuQ49LRz_fW7DGQ,171088
|
|
162
162
|
sqlalchemy/orm/path_registry.py,sha256=sJZMv_WPqUpHfQtKWaX3WYFeKBcNJ8C3wOM2mkBGkTE,25920
|
|
163
163
|
sqlalchemy/orm/persistence.py,sha256=dzyB2JOXNwQgaCbN8kh0sEz00WFePr48qf8NWVCUZH8,61701
|
|
164
164
|
sqlalchemy/orm/properties.py,sha256=eDPFzxYUgdM3uWjHywnb1XW-i0tVKKyx7A2MCD31GQU,29306
|
|
165
|
-
sqlalchemy/orm/query.py,sha256=
|
|
165
|
+
sqlalchemy/orm/query.py,sha256=woZDL-vAvu_CWQUgxf7geh7Bkl1gUE2zmrdF5UmTrFk,117630
|
|
166
166
|
sqlalchemy/orm/relationships.py,sha256=dS5SY0v1MiD7iCNnAQlHaI6prUQhL5EkXT7ijc8FR8E,128644
|
|
167
167
|
sqlalchemy/orm/scoping.py,sha256=rJVc7_Lic4V00HZ-UvYFWkVpXqdrMayRmIs4fIwH1UA,78688
|
|
168
|
-
sqlalchemy/orm/session.py,sha256=
|
|
168
|
+
sqlalchemy/orm/session.py,sha256=CZJTQ-wPwIy0c3AMFxgJnBgaft6eEf4JzcCLcaaCSjg,195979
|
|
169
169
|
sqlalchemy/orm/state.py,sha256=327-F4TG29s6mLC8oWRiO2PuvYIUZzY1MqUPjtUy7M4,37670
|
|
170
170
|
sqlalchemy/orm/state_changes.py,sha256=qKYg7NxwrDkuUY3EPygAztym6oAVUFcP2wXn7QD3Mz4,6815
|
|
171
|
-
sqlalchemy/orm/strategies.py,sha256=
|
|
171
|
+
sqlalchemy/orm/strategies.py,sha256=Sd6IKV_ya_CBKzebwazRrWWabvZ0PqariUB7KKUIUrc,115275
|
|
172
172
|
sqlalchemy/orm/strategy_options.py,sha256=-n44NV8QX-3uWjhFMA_R_7vYy-d57gJY9snB9JeOj-w,85341
|
|
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=u7Wd8Wc2V0Qu5EBTrt2taB1Clhnr2a8aK6LC9eIeKZw,80734
|
|
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
|
|
@@ -186,30 +186,30 @@ sqlalchemy/sql/_py_util.py,sha256=hiM9ePbRSGs60bAMxPFuJCIC_p9SQ1VzqXGiPchiYwE,21
|
|
|
186
186
|
sqlalchemy/sql/_selectable_constructors.py,sha256=wjE6HrLm9cR7bxvZXT8sFLUqT6t_J9G1XyQCnYmBDl0,18780
|
|
187
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=M1b-Tg49ikUW2mnZv0aI38oASG6dgeo4jBNWDgJgAg8,73925
|
|
190
190
|
sqlalchemy/sql/cache_key.py,sha256=0Db8mR8IrpBgdzXs4TGTt98LOpL3c7KABd72MAPKUQQ,33668
|
|
191
|
-
sqlalchemy/sql/coercions.py,sha256=
|
|
192
|
-
sqlalchemy/sql/compiler.py,sha256=
|
|
193
|
-
sqlalchemy/sql/crud.py,sha256=
|
|
191
|
+
sqlalchemy/sql/coercions.py,sha256=KjrVc2ks6cx_o6-_Zpu6uPuNGjJy2xvFzXy8z5oshQg,40628
|
|
192
|
+
sqlalchemy/sql/compiler.py,sha256=hrTptbOKIgVIHapywj4Lk5OMwpXvHS-KGg3odFwlo-I,274687
|
|
193
|
+
sqlalchemy/sql/crud.py,sha256=HBX4QPtW_PYYJmIKfNr-wE8IdEr963N24WXzFBUZOo0,56514
|
|
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=Vmn_ux-fwpKBoMyQPMxIAj8QrLZVDD9iCh6odPlfzbA,176378
|
|
198
198
|
sqlalchemy/sql/events.py,sha256=iC_Q1Htm1Aobt5tOYxWfHHqNpoytrULORmUKcusH_-E,18290
|
|
199
199
|
sqlalchemy/sql/expression.py,sha256=VMX-dLpsZYnVRJpYNDozDUgaj7iQ0HuewUKVefD57PE,7586
|
|
200
200
|
sqlalchemy/sql/functions.py,sha256=kMMYplvuIHFAPwxBI03SizwaLcYEHzysecWk-R1V-JM,63762
|
|
201
201
|
sqlalchemy/sql/lambdas.py,sha256=DP0Qz7Ypo8QhzMwygGHYgRhwJMx-rNezO1euouH3iYU,49292
|
|
202
202
|
sqlalchemy/sql/naming.py,sha256=ZHs1qSV3ou8TYmZ92uvU3sfdklUQlIz4uhe330n05SU,6858
|
|
203
|
-
sqlalchemy/sql/operators.py,sha256=
|
|
203
|
+
sqlalchemy/sql/operators.py,sha256=himArRqBzrljob3Zfhi_ZS-Jleg1u6YFp0g3d7Co6IM,76106
|
|
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=
|
|
208
|
-
sqlalchemy/sql/traversals.py,sha256=
|
|
209
|
-
sqlalchemy/sql/type_api.py,sha256=
|
|
205
|
+
sqlalchemy/sql/schema.py,sha256=XjSlSvJf6Ym8Y5Jt2c_TTAQ7OnOrnk9GU-RiJh2-yW0,229588
|
|
206
|
+
sqlalchemy/sql/selectable.py,sha256=iGTCMsfxmVjPcD3aGJTpHSpF-ckXEJyn29M6rD5UJww,234550
|
|
207
|
+
sqlalchemy/sql/sqltypes.py,sha256=NJnsB-ZC-oyrVBQzhV_sbRHlqFShKAU2FEX65fBj8Vg,126941
|
|
208
|
+
sqlalchemy/sql/traversals.py,sha256=3ScTC1fh1-y8Y478h_2Azmd2xdQdWPWkDve4YgrwMf8,33664
|
|
209
|
+
sqlalchemy/sql/type_api.py,sha256=q_FieFRALHiRkhy5Bj-cVgFHa7DXF1dP23FaRRYKeho,83717
|
|
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
|
-
sqlalchemy/testing/__init__.py,sha256=
|
|
212
|
+
sqlalchemy/testing/__init__.py,sha256=zgitAYzsCWT_U48ZiifXHHLJFo8nZBYmI-5TueA4_lE,3160
|
|
213
213
|
sqlalchemy/testing/assertions.py,sha256=gL0rA7CCZJbcVgvWOPV91tTZTRwQc1_Ta0-ykBn83Ew,31439
|
|
214
214
|
sqlalchemy/testing/assertsql.py,sha256=IgQG7l94WaiRP8nTbilJh1ZHZl125g7GPq-S5kmQZN0,16817
|
|
215
215
|
sqlalchemy/testing/asyncio.py,sha256=kM8uuOqDBagZF0r9xvGmsiirUVLUQ_KBzjUFU67W-b8,3830
|
|
@@ -220,15 +220,15 @@ sqlalchemy/testing/exclusions.py,sha256=T8B01hmm8WVs-EKcUOQRzabahPqblWJfOidi6bHJ
|
|
|
220
220
|
sqlalchemy/testing/pickleable.py,sha256=U9mIqk-zaxq9Xfy7HErP7UrKgTov-A3QFnhZh-NiOjI,2833
|
|
221
221
|
sqlalchemy/testing/profiling.py,sha256=PbuPhRFbauFilUONeY3tV_Y_5lBkD7iCa8VVyH2Sk9Y,10148
|
|
222
222
|
sqlalchemy/testing/provision.py,sha256=zXsw2D2Xpmw_chmYLsE1GXQqKQ-so3V8xU_joTcKan0,14619
|
|
223
|
-
sqlalchemy/testing/requirements.py,sha256=
|
|
223
|
+
sqlalchemy/testing/requirements.py,sha256=9hJRdF7ePsuor5WT1UPgEV2nlA7pjlr92pVPINmwO9g,52518
|
|
224
224
|
sqlalchemy/testing/schema.py,sha256=lr4GkGrGwagaHMuSGzWdzkMaj3HnS7dgfLLWfxt__-U,6513
|
|
225
|
-
sqlalchemy/testing/util.py,sha256=
|
|
225
|
+
sqlalchemy/testing/util.py,sha256=qldXKw8gRJ4I2x3uXsBssYMqwatmcMFMTOveRQCmfDU,14469
|
|
226
226
|
sqlalchemy/testing/warnings.py,sha256=fJ-QJUY2zY2PPxZJKv9medW-BKKbCNbA4Ns_V3YwFXM,1546
|
|
227
227
|
sqlalchemy/testing/fixtures/__init__.py,sha256=dMClrIoxqlYIFpk2ia4RZpkbfxsS_3EBigr9QsPJ66g,1198
|
|
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=KZMjco9_3dsuspmkew5Ejp88Wlr9PsSBB1qeJGFxQAk,15900
|
|
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
|
|
@@ -240,11 +240,11 @@ sqlalchemy/testing/suite/test_deprecations.py,sha256=BcJxZTcjYqeOAENVElCg3hVvU6f
|
|
|
240
240
|
sqlalchemy/testing/suite/test_dialect.py,sha256=EH4ZQWbnGdtjmx5amZtTyhYmrkXJCvW1SQoLahoE7uk,22923
|
|
241
241
|
sqlalchemy/testing/suite/test_insert.py,sha256=9azifj6-OCD7s8h_tAO1uPw100ibQv8YoKc_VA3hn3c,18824
|
|
242
242
|
sqlalchemy/testing/suite/test_reflection.py,sha256=tJSbJFg5fw0sSUv3I_FPmhN7rWWeJtq3YyxmylWJUlM,106466
|
|
243
|
-
sqlalchemy/testing/suite/test_results.py,sha256=
|
|
243
|
+
sqlalchemy/testing/suite/test_results.py,sha256=X720GafdA4p75SOGS93j-dXkt6QDEnnJbU2bh18VCcg,16914
|
|
244
244
|
sqlalchemy/testing/suite/test_rowcount.py,sha256=3KDTlRgjpQ1OVfp__1cv8Hvq4CsDKzmrhJQ_WIJWoJg,7900
|
|
245
|
-
sqlalchemy/testing/suite/test_select.py,sha256=
|
|
245
|
+
sqlalchemy/testing/suite/test_select.py,sha256=ulRZQJlzkwwcewEyisuBEXVWFR0Wshz9MEDxYYiYLwQ,61732
|
|
246
246
|
sqlalchemy/testing/suite/test_sequence.py,sha256=66bCoy4xo99GBSaX6Hxb88foANAykLGRz1YEKbvpfuA,9923
|
|
247
|
-
sqlalchemy/testing/suite/test_types.py,sha256=
|
|
247
|
+
sqlalchemy/testing/suite/test_types.py,sha256=K4MGHvnTtgqeksoQOBCZRVQYC7HoYO6Z6rVt5vj2t9o,67805
|
|
248
248
|
sqlalchemy/testing/suite/test_unicode_ddl.py,sha256=c3_eIxLyORuSOhNDP0jWKxPyUf3SwMFpdalxtquwqlM,6141
|
|
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
|
|
@@ -252,17 +252,17 @@ sqlalchemy/util/_collections.py,sha256=aZoSAVOXnHBoYEsxDOi0O9odg9wqLbGb7PGjaWQKi
|
|
|
252
252
|
sqlalchemy/util/_concurrency_py3k.py,sha256=zb0Bow2Y_QjTdaACEviBEEaFvqDuVvpJfmwCjaw8xNE,9170
|
|
253
253
|
sqlalchemy/util/_has_cy.py,sha256=wCQmeSjT3jaH_oxfCEtGk-1g0gbSpt5MCK5UcWdMWqk,1247
|
|
254
254
|
sqlalchemy/util/_py_collections.py,sha256=U6L5AoyLdgSv7cdqB4xxQbw1rpeJjyOZVXffgxgga8I,16714
|
|
255
|
-
sqlalchemy/util/compat.py,sha256=
|
|
255
|
+
sqlalchemy/util/compat.py,sha256=fJWqZVkW7qPY2l0DxK-7fHKjyp7b-wa-5wOlmuZlick,8724
|
|
256
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=uIK3szZuq9aMnO-vEpSlNekNWv4I-E391e56bkTnUm0,65090
|
|
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
263
|
sqlalchemy/util/typing.py,sha256=UctfgugSTnFJgZraikXJbB-5RoV7oyccZmbf2NeRfoA,16671
|
|
264
|
-
SQLAlchemy-2.0.
|
|
265
|
-
SQLAlchemy-2.0.
|
|
266
|
-
SQLAlchemy-2.0.
|
|
267
|
-
SQLAlchemy-2.0.
|
|
268
|
-
SQLAlchemy-2.0.
|
|
264
|
+
SQLAlchemy-2.0.32.dist-info/LICENSE,sha256=PA9Zq4h9BB3mpOUv_j6e212VIt6Qn66abNettue-MpM,1100
|
|
265
|
+
SQLAlchemy-2.0.32.dist-info/METADATA,sha256=hG6dXB5GSsBurmqvonmwwtBvJlerDWuK-3ERzPExHQU,9581
|
|
266
|
+
SQLAlchemy-2.0.32.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
|
|
267
|
+
SQLAlchemy-2.0.32.dist-info/top_level.txt,sha256=rp-ZgB7D8G11ivXON5VGPjupT1voYmWqkciDt5Uaw_Q,11
|
|
268
|
+
SQLAlchemy-2.0.32.dist-info/RECORD,,
|
sqlalchemy/__init__.py
CHANGED
sqlalchemy/connectors/asyncio.py
CHANGED
|
@@ -36,7 +36,8 @@ class AsyncAdapt_dbapi_cursor:
|
|
|
36
36
|
cursor = self._connection.cursor()
|
|
37
37
|
self._cursor = self._aenter_cursor(cursor)
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
if not self.server_side:
|
|
40
|
+
self._rows = collections.deque()
|
|
40
41
|
|
|
41
42
|
def _aenter_cursor(self, cursor):
|
|
42
43
|
return self.await_(cursor.__aenter__())
|
|
@@ -149,6 +150,14 @@ class AsyncAdapt_dbapi_ss_cursor(AsyncAdapt_dbapi_cursor):
|
|
|
149
150
|
def fetchall(self):
|
|
150
151
|
return self.await_(self._cursor.fetchall())
|
|
151
152
|
|
|
153
|
+
def __iter__(self):
|
|
154
|
+
iterator = self._cursor.__aiter__()
|
|
155
|
+
while True:
|
|
156
|
+
try:
|
|
157
|
+
yield self.await_(iterator.__anext__())
|
|
158
|
+
except StopAsyncIteration:
|
|
159
|
+
break
|
|
160
|
+
|
|
152
161
|
|
|
153
162
|
class AsyncAdapt_dbapi_connection(AdaptedConnection):
|
|
154
163
|
_cursor_cls = AsyncAdapt_dbapi_cursor
|
|
@@ -1988,6 +1988,10 @@ class MSSQLCompiler(compiler.SQLCompiler):
|
|
|
1988
1988
|
self.tablealiases = {}
|
|
1989
1989
|
super().__init__(*args, **kwargs)
|
|
1990
1990
|
|
|
1991
|
+
def _format_frame_clause(self, range_, **kw):
|
|
1992
|
+
kw["literal_execute"] = True
|
|
1993
|
+
return super()._format_frame_clause(range_, **kw)
|
|
1994
|
+
|
|
1991
1995
|
def _with_legacy_schema_aliasing(fn):
|
|
1992
1996
|
def decorate(self, *arg, **kw):
|
|
1993
1997
|
if self.dialect.legacy_schema_aliasing:
|
|
@@ -2380,6 +2380,8 @@ class MySQLTypeCompiler(compiler.GenericTypeCompiler):
|
|
|
2380
2380
|
def _visit_enumerated_values(self, name, type_, enumerated_values):
|
|
2381
2381
|
quoted_enums = []
|
|
2382
2382
|
for e in enumerated_values:
|
|
2383
|
+
if self.dialect.identifier_preparer._double_percents:
|
|
2384
|
+
e = e.replace("%", "%%")
|
|
2383
2385
|
quoted_enums.append("'%s'" % e.replace("'", "''"))
|
|
2384
2386
|
return self._extend_string(
|
|
2385
2387
|
type_, {}, "%s(%s)" % (name, ",".join(quoted_enums))
|
|
@@ -326,7 +326,6 @@ returned as well.
|
|
|
326
326
|
on parity with other backends.
|
|
327
327
|
|
|
328
328
|
|
|
329
|
-
|
|
330
329
|
ON UPDATE CASCADE
|
|
331
330
|
-----------------
|
|
332
331
|
|
|
@@ -467,7 +466,7 @@ is reflected and the type is reported as ``DATE``, the time-supporting
|
|
|
467
466
|
.. _oracle_table_options:
|
|
468
467
|
|
|
469
468
|
Oracle Table Options
|
|
470
|
-
|
|
469
|
+
--------------------
|
|
471
470
|
|
|
472
471
|
The CREATE TABLE phrase supports the following options with Oracle
|
|
473
472
|
in conjunction with the :class:`_schema.Table` construct:
|
|
@@ -1244,6 +1243,31 @@ class OracleCompiler(compiler.SQLCompiler):
|
|
|
1244
1243
|
def visit_aggregate_strings_func(self, fn, **kw):
|
|
1245
1244
|
return "LISTAGG%s" % self.function_argspec(fn, **kw)
|
|
1246
1245
|
|
|
1246
|
+
def _visit_bitwise(self, binary, fn_name, custom_right=None, **kw):
|
|
1247
|
+
left = self.process(binary.left, **kw)
|
|
1248
|
+
right = self.process(
|
|
1249
|
+
custom_right if custom_right is not None else binary.right, **kw
|
|
1250
|
+
)
|
|
1251
|
+
return f"{fn_name}({left}, {right})"
|
|
1252
|
+
|
|
1253
|
+
def visit_bitwise_xor_op_binary(self, binary, operator, **kw):
|
|
1254
|
+
return self._visit_bitwise(binary, "BITXOR", **kw)
|
|
1255
|
+
|
|
1256
|
+
def visit_bitwise_or_op_binary(self, binary, operator, **kw):
|
|
1257
|
+
return self._visit_bitwise(binary, "BITOR", **kw)
|
|
1258
|
+
|
|
1259
|
+
def visit_bitwise_and_op_binary(self, binary, operator, **kw):
|
|
1260
|
+
return self._visit_bitwise(binary, "BITAND", **kw)
|
|
1261
|
+
|
|
1262
|
+
def visit_bitwise_rshift_op_binary(self, binary, operator, **kw):
|
|
1263
|
+
raise exc.CompileError("Cannot compile bitwise_rshift in oracle")
|
|
1264
|
+
|
|
1265
|
+
def visit_bitwise_lshift_op_binary(self, binary, operator, **kw):
|
|
1266
|
+
raise exc.CompileError("Cannot compile bitwise_lshift in oracle")
|
|
1267
|
+
|
|
1268
|
+
def visit_bitwise_not_op_unary_operator(self, element, operator, **kw):
|
|
1269
|
+
raise exc.CompileError("Cannot compile bitwise_not in oracle")
|
|
1270
|
+
|
|
1247
1271
|
|
|
1248
1272
|
class OracleDDLCompiler(compiler.DDLCompiler):
|
|
1249
1273
|
def define_constraint_cascades(self, constraint):
|
|
@@ -2036,8 +2060,16 @@ class OracleDialect(default.DefaultDialect):
|
|
|
2036
2060
|
):
|
|
2037
2061
|
query = select(
|
|
2038
2062
|
dictionary.all_tables.c.table_name,
|
|
2039
|
-
|
|
2040
|
-
|
|
2063
|
+
(
|
|
2064
|
+
dictionary.all_tables.c.compression
|
|
2065
|
+
if self._supports_table_compression
|
|
2066
|
+
else sql.null().label("compression")
|
|
2067
|
+
),
|
|
2068
|
+
(
|
|
2069
|
+
dictionary.all_tables.c.compress_for
|
|
2070
|
+
if self._supports_table_compress_for
|
|
2071
|
+
else sql.null().label("compress_for")
|
|
2072
|
+
),
|
|
2041
2073
|
).where(dictionary.all_tables.c.owner == owner)
|
|
2042
2074
|
if has_filter_names:
|
|
2043
2075
|
query = query.where(
|
|
@@ -377,14 +377,12 @@ buffered objects with a ``read()`` method, the parameter
|
|
|
377
377
|
``auto_convert_lobs=False`` may be passed to :func:`_sa.create_engine`,
|
|
378
378
|
which takes place only engine-wide.
|
|
379
379
|
|
|
380
|
-
Two Phase Transactions Not Supported
|
|
381
|
-
|
|
380
|
+
Two Phase Transactions Not Supported (use oracledb)
|
|
381
|
+
---------------------------------------------------
|
|
382
382
|
|
|
383
|
-
Two phase transactions are **not supported** under cx_Oracle due to poor
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
to the underlying OCI layer with less automation. The additional logic
|
|
387
|
-
to support this system is not implemented in SQLAlchemy.
|
|
383
|
+
Two phase transactions are **not supported** under cx_Oracle due to poor driver
|
|
384
|
+
support. The newer :ref:`oracledb` dialect however **does** support two phase
|
|
385
|
+
transactions and should be preferred.
|
|
388
386
|
|
|
389
387
|
.. _cx_oracle_numeric:
|
|
390
388
|
|
|
@@ -1423,13 +1421,6 @@ class OracleDialect_cx_oracle(OracleDialect):
|
|
|
1423
1421
|
return False
|
|
1424
1422
|
|
|
1425
1423
|
def create_xid(self):
|
|
1426
|
-
"""create a two-phase transaction ID.
|
|
1427
|
-
|
|
1428
|
-
this id will be passed to do_begin_twophase(), do_rollback_twophase(),
|
|
1429
|
-
do_commit_twophase(). its format is unspecified.
|
|
1430
|
-
|
|
1431
|
-
"""
|
|
1432
|
-
|
|
1433
1424
|
id_ = random.randint(0, 2**128)
|
|
1434
1425
|
return (0x1234, "%032x" % id_, "%032x" % 9)
|
|
1435
1426
|
|