SQLAlchemy 2.0.30__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.30.dist-info → SQLAlchemy-2.0.32.dist-info}/METADATA +33 -33
- {SQLAlchemy-2.0.30.dist-info → SQLAlchemy-2.0.32.dist-info}/RECORD +66 -66
- {SQLAlchemy-2.0.30.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/aiomysql.py +11 -10
- sqlalchemy/dialects/mysql/asyncmy.py +10 -10
- sqlalchemy/dialects/mysql/base.py +2 -0
- sqlalchemy/dialects/mysql/reflection.py +1 -1
- 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/asyncpg.py +21 -26
- sqlalchemy/dialects/postgresql/provision.py +1 -1
- sqlalchemy/dialects/postgresql/psycopg.py +9 -14
- sqlalchemy/dialects/postgresql/psycopg2.py +33 -23
- sqlalchemy/dialects/sqlite/aiosqlite.py +10 -10
- 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 +47 -39
- sqlalchemy/ext/asyncio/scoping.py +1 -1
- sqlalchemy/ext/asyncio/session.py +1 -1
- sqlalchemy/ext/mypy/util.py +20 -1
- sqlalchemy/ext/serializer.py +19 -23
- sqlalchemy/orm/_orm_constructors.py +43 -2
- sqlalchemy/orm/attributes.py +1 -1
- sqlalchemy/orm/bulk_persistence.py +29 -1
- sqlalchemy/orm/collections.py +5 -3
- sqlalchemy/orm/decl_base.py +34 -6
- 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/scoping.py +1 -1
- sqlalchemy/orm/session.py +12 -1
- sqlalchemy/orm/state.py +13 -6
- sqlalchemy/orm/strategies.py +39 -4
- sqlalchemy/orm/strategy_options.py +4 -4
- sqlalchemy/orm/util.py +5 -3
- 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 +78 -19
- sqlalchemy/sql/operators.py +6 -0
- sqlalchemy/sql/schema.py +23 -14
- sqlalchemy/sql/selectable.py +46 -21
- sqlalchemy/sql/sqltypes.py +36 -13
- 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/_collections.py +3 -3
- sqlalchemy/util/_concurrency_py3k.py +22 -24
- sqlalchemy/util/compat.py +1 -1
- sqlalchemy/util/langhelpers.py +10 -0
- {SQLAlchemy-2.0.30.dist-info → SQLAlchemy-2.0.32.dist-info}/LICENSE +0 -0
- {SQLAlchemy-2.0.30.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,16 +22,16 @@ 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
|
|
29
29
|
sqlalchemy/dialects/mssql/pymssql.py,sha256=eZRLz7HGt3SdoZUjFBmA9BS43N7AhIASw7VPBPEJuG0,4038
|
|
30
30
|
sqlalchemy/dialects/mssql/pyodbc.py,sha256=vwM-vBlmRwrqxOc73P0sFOrBSwn24wzc5IkEOpalbXQ,27056
|
|
31
31
|
sqlalchemy/dialects/mysql/__init__.py,sha256=bxbi4hkysUK2OOVvr1F49akUj1cky27kKb07tgFzI9U,2153
|
|
32
|
-
sqlalchemy/dialects/mysql/aiomysql.py,sha256
|
|
33
|
-
sqlalchemy/dialects/mysql/asyncmy.py,sha256=
|
|
34
|
-
sqlalchemy/dialects/mysql/base.py,sha256=
|
|
32
|
+
sqlalchemy/dialects/mysql/aiomysql.py,sha256=-oMZnCqNsSki8mlQRTWIwiQPT1OVdZIuANkb90q8LAs,9999
|
|
33
|
+
sqlalchemy/dialects/mysql/asyncmy.py,sha256=YpuuOh8VknEeqHqUXQGfQ3jhfO3Xb-vZv78Jq5cscJ0,10067
|
|
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
|
|
@@ -44,20 +44,20 @@ sqlalchemy/dialects/mysql/mysqldb.py,sha256=zPHKMQbHu8bFuD7YvOJewn2axQbfwA93NZoe
|
|
|
44
44
|
sqlalchemy/dialects/mysql/provision.py,sha256=4oGkClQ8jC3YLPF54sB4kCjFc8HRTwf5zl5zftAAXGo,3474
|
|
45
45
|
sqlalchemy/dialects/mysql/pymysql.py,sha256=GUnSHd2M2uKjmN46Hheymtm26g7phEgwYOXrX0zLY8M,4083
|
|
46
46
|
sqlalchemy/dialects/mysql/pyodbc.py,sha256=072crI4qVyPhajYvHnsfFeSrNjLFVPIjBQKo5uyz5yk,4297
|
|
47
|
-
sqlalchemy/dialects/mysql/reflection.py,sha256=
|
|
47
|
+
sqlalchemy/dialects/mysql/reflection.py,sha256=3u34YwT1JJh3uThGZJZ3FKdnUcT7v08QB-tAl1r7VRk,22834
|
|
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
|
|
58
58
|
sqlalchemy/dialects/postgresql/_psycopg_common.py,sha256=7TudtgsPiSB8O5kX8W8KxcNYR8t5h_UHb86b_ChL0P8,5696
|
|
59
59
|
sqlalchemy/dialects/postgresql/array.py,sha256=bWcame7ntmI_Kx6gmBX0-chwADFdLHeCvaDQ4iX8id8,13734
|
|
60
|
-
sqlalchemy/dialects/postgresql/asyncpg.py,sha256=
|
|
60
|
+
sqlalchemy/dialects/postgresql/asyncpg.py,sha256=nfujNbmAjkVPPt9jhh5ZJp8QziZQJ0fMG4JNnLTdsag,40206
|
|
61
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
|
|
@@ -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=
|
|
71
|
-
sqlalchemy/dialects/postgresql/psycopg.py,sha256=
|
|
72
|
-
sqlalchemy/dialects/postgresql/psycopg2.py,sha256=
|
|
70
|
+
sqlalchemy/dialects/postgresql/provision.py,sha256=t6TZj0XaWG9zrpCjNr0oJRjAC_WQzaNdp3kaKJIbS8I,5770
|
|
71
|
+
sqlalchemy/dialects/postgresql/psycopg.py,sha256=ACkfuT87vUJEW4kJyUqDYTwlnl5u0FZFlDcvLzxNzFQ,23226
|
|
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
|
-
sqlalchemy/dialects/sqlite/aiosqlite.py,sha256=
|
|
78
|
-
sqlalchemy/dialects/sqlite/base.py,sha256=
|
|
77
|
+
sqlalchemy/dialects/sqlite/aiosqlite.py,sha256=g3qGV6jmiXabWyb3282g_Nmxtj1jThxGSe9C9yalb-U,12345
|
|
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
|
|
@@ -117,14 +117,14 @@ sqlalchemy/ext/indexable.py,sha256=UkTelbydKCdKelzbv3HWFFavoET9WocKaGRPGEOVfN8,1
|
|
|
117
117
|
sqlalchemy/ext/instrumentation.py,sha256=sg8ghDjdHSODFXh_jAmpgemnNX1rxCeeXEG3-PMdrNk,15707
|
|
118
118
|
sqlalchemy/ext/mutable.py,sha256=L5ZkHBGYhMaqO75Xtyrk2DBR44RDk0g6Rz2HzHH0F8Q,37355
|
|
119
119
|
sqlalchemy/ext/orderinglist.py,sha256=TGYbsGH72wEZcFNQDYDsZg9OSPuzf__P8YX8_2HtYUo,14384
|
|
120
|
-
sqlalchemy/ext/serializer.py,sha256=
|
|
120
|
+
sqlalchemy/ext/serializer.py,sha256=D0g4jMZkRk0Gjr0L-FZe81SR63h0Zs-9JzuWtT_SD7k,6140
|
|
121
121
|
sqlalchemy/ext/asyncio/__init__.py,sha256=1OqSxEyIUn7RWLGyO12F-jAUIvk1I6DXlVy80-Gvkds,1317
|
|
122
122
|
sqlalchemy/ext/asyncio/base.py,sha256=fl7wxZD9KjgFiCtG3WXrYjHEvanamcsodCqq9pH9lOk,8905
|
|
123
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
|
-
sqlalchemy/ext/asyncio/scoping.py,sha256=
|
|
127
|
-
sqlalchemy/ext/asyncio/session.py,sha256=
|
|
126
|
+
sqlalchemy/ext/asyncio/scoping.py,sha256=UxHAFxtWKqA7TEozyN2h7MJyzSspTCrS-1SlgQLTExo,52608
|
|
127
|
+
sqlalchemy/ext/asyncio/session.py,sha256=mkFFC1C2mPuopz3BwkfSVTlp3vuIDc8hxiQx5ky5rvc,63103
|
|
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
|
|
@@ -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
|
-
sqlalchemy/orm/decl_base.py,sha256=
|
|
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
|
-
sqlalchemy/orm/scoping.py,sha256=
|
|
168
|
-
sqlalchemy/orm/session.py,sha256=
|
|
169
|
-
sqlalchemy/orm/state.py,sha256=
|
|
167
|
+
sqlalchemy/orm/scoping.py,sha256=rJVc7_Lic4V00HZ-UvYFWkVpXqdrMayRmIs4fIwH1UA,78688
|
|
168
|
+
sqlalchemy/orm/session.py,sha256=CZJTQ-wPwIy0c3AMFxgJnBgaft6eEf4JzcCLcaaCSjg,195979
|
|
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=
|
|
172
|
-
sqlalchemy/orm/strategy_options.py,sha256
|
|
171
|
+
sqlalchemy/orm/strategies.py,sha256=Sd6IKV_ya_CBKzebwazRrWWabvZ0PqariUB7KKUIUrc,115275
|
|
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,29 +240,29 @@ 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
|
|
251
|
-
sqlalchemy/util/_collections.py,sha256=
|
|
252
|
-
sqlalchemy/util/_concurrency_py3k.py,sha256=
|
|
251
|
+
sqlalchemy/util/_collections.py,sha256=aZoSAVOXnHBoYEsxDOi0O9odg9wqLbGb7PGjaWQKiyY,20078
|
|
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:
|
|
@@ -27,6 +27,8 @@ This dialect should normally be used only with the
|
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
""" # noqa
|
|
30
|
+
from collections import deque
|
|
31
|
+
|
|
30
32
|
from .pymysql import MySQLDialect_pymysql
|
|
31
33
|
from ... import pool
|
|
32
34
|
from ... import util
|
|
@@ -57,7 +59,7 @@ class AsyncAdapt_aiomysql_cursor:
|
|
|
57
59
|
|
|
58
60
|
# see https://github.com/aio-libs/aiomysql/issues/543
|
|
59
61
|
self._cursor = self.await_(cursor.__aenter__())
|
|
60
|
-
self._rows =
|
|
62
|
+
self._rows = deque()
|
|
61
63
|
|
|
62
64
|
@property
|
|
63
65
|
def description(self):
|
|
@@ -87,7 +89,7 @@ class AsyncAdapt_aiomysql_cursor:
|
|
|
87
89
|
# exhausting rows, which we already have done for sync cursor.
|
|
88
90
|
# another option would be to emulate aiosqlite dialect and assign
|
|
89
91
|
# cursor only if we are doing server side cursor operation.
|
|
90
|
-
self._rows
|
|
92
|
+
self._rows.clear()
|
|
91
93
|
|
|
92
94
|
def execute(self, operation, parameters=None):
|
|
93
95
|
return self.await_(self._execute_async(operation, parameters))
|
|
@@ -106,7 +108,7 @@ class AsyncAdapt_aiomysql_cursor:
|
|
|
106
108
|
# of that here since our default result is not async.
|
|
107
109
|
# we could just as easily grab "_rows" here and be done with it
|
|
108
110
|
# but this is safer.
|
|
109
|
-
self._rows =
|
|
111
|
+
self._rows = deque(await self._cursor.fetchall())
|
|
110
112
|
return result
|
|
111
113
|
|
|
112
114
|
async def _executemany_async(self, operation, seq_of_parameters):
|
|
@@ -118,11 +120,11 @@ class AsyncAdapt_aiomysql_cursor:
|
|
|
118
120
|
|
|
119
121
|
def __iter__(self):
|
|
120
122
|
while self._rows:
|
|
121
|
-
yield self._rows.
|
|
123
|
+
yield self._rows.popleft()
|
|
122
124
|
|
|
123
125
|
def fetchone(self):
|
|
124
126
|
if self._rows:
|
|
125
|
-
return self._rows.
|
|
127
|
+
return self._rows.popleft()
|
|
126
128
|
else:
|
|
127
129
|
return None
|
|
128
130
|
|
|
@@ -130,13 +132,12 @@ class AsyncAdapt_aiomysql_cursor:
|
|
|
130
132
|
if size is None:
|
|
131
133
|
size = self.arraysize
|
|
132
134
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
return retval
|
|
135
|
+
rr = self._rows
|
|
136
|
+
return [rr.popleft() for _ in range(min(size, len(rr)))]
|
|
136
137
|
|
|
137
138
|
def fetchall(self):
|
|
138
|
-
retval = self._rows
|
|
139
|
-
self._rows
|
|
139
|
+
retval = list(self._rows)
|
|
140
|
+
self._rows.clear()
|
|
140
141
|
return retval
|
|
141
142
|
|
|
142
143
|
|
|
@@ -25,6 +25,7 @@ This dialect should normally be used only with the
|
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
""" # noqa
|
|
28
|
+
from collections import deque
|
|
28
29
|
from contextlib import asynccontextmanager
|
|
29
30
|
|
|
30
31
|
from .pymysql import MySQLDialect_pymysql
|
|
@@ -56,7 +57,7 @@ class AsyncAdapt_asyncmy_cursor:
|
|
|
56
57
|
cursor = self._connection.cursor()
|
|
57
58
|
|
|
58
59
|
self._cursor = self.await_(cursor.__aenter__())
|
|
59
|
-
self._rows =
|
|
60
|
+
self._rows = deque()
|
|
60
61
|
|
|
61
62
|
@property
|
|
62
63
|
def description(self):
|
|
@@ -86,7 +87,7 @@ class AsyncAdapt_asyncmy_cursor:
|
|
|
86
87
|
# exhausting rows, which we already have done for sync cursor.
|
|
87
88
|
# another option would be to emulate aiosqlite dialect and assign
|
|
88
89
|
# cursor only if we are doing server side cursor operation.
|
|
89
|
-
self._rows
|
|
90
|
+
self._rows.clear()
|
|
90
91
|
|
|
91
92
|
def execute(self, operation, parameters=None):
|
|
92
93
|
return self.await_(self._execute_async(operation, parameters))
|
|
@@ -108,7 +109,7 @@ class AsyncAdapt_asyncmy_cursor:
|
|
|
108
109
|
# of that here since our default result is not async.
|
|
109
110
|
# we could just as easily grab "_rows" here and be done with it
|
|
110
111
|
# but this is safer.
|
|
111
|
-
self._rows =
|
|
112
|
+
self._rows = deque(await self._cursor.fetchall())
|
|
112
113
|
return result
|
|
113
114
|
|
|
114
115
|
async def _executemany_async(self, operation, seq_of_parameters):
|
|
@@ -120,11 +121,11 @@ class AsyncAdapt_asyncmy_cursor:
|
|
|
120
121
|
|
|
121
122
|
def __iter__(self):
|
|
122
123
|
while self._rows:
|
|
123
|
-
yield self._rows.
|
|
124
|
+
yield self._rows.popleft()
|
|
124
125
|
|
|
125
126
|
def fetchone(self):
|
|
126
127
|
if self._rows:
|
|
127
|
-
return self._rows.
|
|
128
|
+
return self._rows.popleft()
|
|
128
129
|
else:
|
|
129
130
|
return None
|
|
130
131
|
|
|
@@ -132,13 +133,12 @@ class AsyncAdapt_asyncmy_cursor:
|
|
|
132
133
|
if size is None:
|
|
133
134
|
size = self.arraysize
|
|
134
135
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
return retval
|
|
136
|
+
rr = self._rows
|
|
137
|
+
return [rr.popleft() for _ in range(min(size, len(rr)))]
|
|
138
138
|
|
|
139
139
|
def fetchall(self):
|
|
140
|
-
retval = self._rows
|
|
141
|
-
self._rows
|
|
140
|
+
retval = list(self._rows)
|
|
141
|
+
self._rows.clear()
|
|
142
142
|
return retval
|
|
143
143
|
|
|
144
144
|
|
|
@@ -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))
|
|
@@ -505,7 +505,7 @@ class MySQLTableDefinitionParser:
|
|
|
505
505
|
#
|
|
506
506
|
# unique constraints come back as KEYs
|
|
507
507
|
kw = quotes.copy()
|
|
508
|
-
kw["on"] = "RESTRICT|CASCADE|SET NULL|NO ACTION"
|
|
508
|
+
kw["on"] = "RESTRICT|CASCADE|SET NULL|NO ACTION|SET DEFAULT"
|
|
509
509
|
self._re_fk_constraint = _re_compile(
|
|
510
510
|
r" "
|
|
511
511
|
r"CONSTRAINT +"
|