SQLAlchemy 2.0.14__py3-none-any.whl → 2.0.16__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.14.dist-info → SQLAlchemy-2.0.16.dist-info}/METADATA +3 -1
- SQLAlchemy-2.0.16.dist-info/RECORD +260 -0
- sqlalchemy/__init__.py +1 -1
- sqlalchemy/dialects/mssql/base.py +3 -5
- sqlalchemy/dialects/mssql/provision.py +0 -2
- sqlalchemy/dialects/mssql/pyodbc.py +0 -1
- sqlalchemy/dialects/mysql/aiomysql.py +3 -4
- sqlalchemy/dialects/mysql/asyncmy.py +3 -4
- sqlalchemy/dialects/mysql/base.py +0 -9
- sqlalchemy/dialects/oracle/base.py +0 -3
- sqlalchemy/dialects/oracle/cx_oracle.py +1 -8
- sqlalchemy/dialects/oracle/oracledb.py +0 -1
- sqlalchemy/dialects/oracle/provision.py +0 -3
- sqlalchemy/dialects/postgresql/array.py +3 -9
- sqlalchemy/dialects/postgresql/asyncpg.py +3 -6
- sqlalchemy/dialects/postgresql/base.py +122 -29
- sqlalchemy/dialects/postgresql/dml.py +0 -1
- sqlalchemy/dialects/postgresql/ext.py +0 -1
- sqlalchemy/dialects/postgresql/hstore.py +6 -45
- sqlalchemy/dialects/postgresql/json.py +10 -75
- sqlalchemy/dialects/postgresql/named_types.py +1 -1
- sqlalchemy/dialects/postgresql/operators.py +129 -0
- sqlalchemy/dialects/postgresql/pg_catalog.py +1 -0
- sqlalchemy/dialects/postgresql/psycopg.py +5 -11
- sqlalchemy/dialects/postgresql/psycopg2.py +0 -1
- sqlalchemy/dialects/postgresql/ranges.py +22 -26
- sqlalchemy/dialects/sqlite/aiosqlite.py +7 -5
- sqlalchemy/dialects/sqlite/base.py +0 -5
- sqlalchemy/dialects/sqlite/dml.py +0 -1
- sqlalchemy/dialects/sqlite/pysqlite.py +0 -1
- sqlalchemy/engine/base.py +7 -7
- sqlalchemy/engine/create.py +0 -1
- sqlalchemy/engine/cursor.py +0 -6
- sqlalchemy/engine/default.py +5 -9
- sqlalchemy/engine/events.py +0 -1
- sqlalchemy/engine/interfaces.py +1 -1
- sqlalchemy/engine/reflection.py +5 -3
- sqlalchemy/engine/result.py +0 -3
- sqlalchemy/event/base.py +0 -1
- sqlalchemy/event/legacy.py +0 -1
- sqlalchemy/event/registry.py +0 -1
- sqlalchemy/ext/associationproxy.py +0 -1
- sqlalchemy/ext/asyncio/base.py +1 -1
- sqlalchemy/ext/asyncio/engine.py +33 -3
- sqlalchemy/ext/asyncio/session.py +4 -3
- sqlalchemy/ext/automap.py +0 -2
- sqlalchemy/ext/declarative/extensions.py +38 -8
- sqlalchemy/ext/horizontal_shard.py +0 -1
- sqlalchemy/ext/hybrid.py +0 -2
- sqlalchemy/ext/mypy/apply.py +0 -2
- sqlalchemy/ext/mypy/decl_class.py +0 -3
- sqlalchemy/ext/mypy/infer.py +0 -1
- sqlalchemy/ext/mypy/plugin.py +0 -1
- sqlalchemy/log.py +0 -1
- sqlalchemy/orm/__init__.py +0 -1
- sqlalchemy/orm/_typing.py +1 -8
- sqlalchemy/orm/attributes.py +0 -7
- sqlalchemy/orm/bulk_persistence.py +31 -26
- sqlalchemy/orm/clsregistry.py +0 -1
- sqlalchemy/orm/collections.py +0 -2
- sqlalchemy/orm/context.py +55 -17
- sqlalchemy/orm/decl_api.py +15 -13
- sqlalchemy/orm/decl_base.py +6 -22
- sqlalchemy/orm/dependency.py +0 -9
- sqlalchemy/orm/descriptor_props.py +0 -2
- sqlalchemy/orm/events.py +0 -3
- sqlalchemy/orm/instrumentation.py +0 -1
- sqlalchemy/orm/interfaces.py +10 -1
- sqlalchemy/orm/loading.py +0 -9
- sqlalchemy/orm/mapped_collection.py +1 -2
- sqlalchemy/orm/mapper.py +50 -36
- sqlalchemy/orm/persistence.py +12 -12
- sqlalchemy/orm/properties.py +0 -1
- sqlalchemy/orm/relationships.py +0 -10
- sqlalchemy/orm/scoping.py +0 -1
- sqlalchemy/orm/session.py +1 -14
- sqlalchemy/orm/state.py +11 -6
- sqlalchemy/orm/state_changes.py +0 -1
- sqlalchemy/orm/strategies.py +0 -22
- sqlalchemy/orm/strategy_options.py +0 -2
- sqlalchemy/orm/sync.py +0 -1
- sqlalchemy/orm/unitofwork.py +0 -2
- sqlalchemy/orm/util.py +1 -10
- sqlalchemy/orm/writeonly.py +0 -2
- sqlalchemy/pool/base.py +0 -2
- sqlalchemy/pool/impl.py +2 -1
- sqlalchemy/sql/_py_util.py +0 -1
- sqlalchemy/sql/_typing.py +0 -1
- sqlalchemy/sql/annotation.py +0 -1
- sqlalchemy/sql/base.py +0 -3
- sqlalchemy/sql/cache_key.py +0 -1
- sqlalchemy/sql/coercions.py +4 -8
- sqlalchemy/sql/compiler.py +8 -29
- sqlalchemy/sql/crud.py +1 -8
- sqlalchemy/sql/ddl.py +0 -4
- sqlalchemy/sql/default_comparator.py +0 -1
- sqlalchemy/sql/dml.py +1 -4
- sqlalchemy/sql/elements.py +1 -0
- sqlalchemy/sql/functions.py +0 -2
- sqlalchemy/sql/lambdas.py +0 -3
- sqlalchemy/sql/naming.py +0 -1
- sqlalchemy/sql/schema.py +0 -4
- sqlalchemy/sql/selectable.py +15 -21
- sqlalchemy/sql/sqltypes.py +12 -8
- sqlalchemy/sql/traversals.py +1 -3
- sqlalchemy/sql/type_api.py +0 -5
- sqlalchemy/sql/util.py +0 -1
- sqlalchemy/sql/visitors.py +0 -1
- sqlalchemy/testing/assertsql.py +0 -2
- sqlalchemy/testing/asyncio.py +0 -1
- sqlalchemy/testing/config.py +1 -5
- sqlalchemy/testing/engines.py +0 -1
- sqlalchemy/testing/fixtures.py +0 -4
- sqlalchemy/testing/plugin/plugin_base.py +0 -4
- sqlalchemy/testing/plugin/pytestplugin.py +0 -4
- sqlalchemy/testing/profiling.py +0 -3
- sqlalchemy/testing/provision.py +0 -3
- sqlalchemy/testing/requirements.py +2 -3
- sqlalchemy/testing/schema.py +0 -1
- sqlalchemy/testing/suite/test_cte.py +0 -1
- sqlalchemy/testing/suite/test_dialect.py +0 -4
- sqlalchemy/testing/suite/test_insert.py +92 -7
- sqlalchemy/testing/suite/test_reflection.py +0 -8
- sqlalchemy/testing/suite/test_results.py +0 -1
- sqlalchemy/testing/suite/test_select.py +0 -1
- sqlalchemy/testing/suite/test_sequence.py +0 -1
- sqlalchemy/testing/suite/test_types.py +0 -71
- sqlalchemy/testing/util.py +0 -4
- sqlalchemy/util/__init__.py +1 -0
- sqlalchemy/util/_concurrency_py3k.py +0 -3
- sqlalchemy/util/compat.py +23 -1
- sqlalchemy/util/deprecations.py +0 -3
- sqlalchemy/util/langhelpers.py +0 -2
- sqlalchemy/util/topological.py +0 -1
- sqlalchemy/util/typing.py +0 -1
- SQLAlchemy-2.0.14.dist-info/RECORD +0 -259
- {SQLAlchemy-2.0.14.dist-info → SQLAlchemy-2.0.16.dist-info}/LICENSE +0 -0
- {SQLAlchemy-2.0.14.dist-info → SQLAlchemy-2.0.16.dist-info}/WHEEL +0 -0
- {SQLAlchemy-2.0.14.dist-info → SQLAlchemy-2.0.16.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.16
|
|
4
4
|
Summary: Database Abstraction Library
|
|
5
5
|
Home-page: https://www.sqlalchemy.org
|
|
6
6
|
Author: Mike Bayer
|
|
@@ -71,6 +71,8 @@ Provides-Extra: postgresql_psycopg2binary
|
|
|
71
71
|
Requires-Dist: psycopg2-binary ; extra == 'postgresql_psycopg2binary'
|
|
72
72
|
Provides-Extra: postgresql_psycopg2cffi
|
|
73
73
|
Requires-Dist: psycopg2cffi ; extra == 'postgresql_psycopg2cffi'
|
|
74
|
+
Provides-Extra: postgresql_psycopgbinary
|
|
75
|
+
Requires-Dist: psycopg[binary] (>=3.0.7) ; extra == 'postgresql_psycopgbinary'
|
|
74
76
|
Provides-Extra: pymysql
|
|
75
77
|
Requires-Dist: pymysql ; extra == 'pymysql'
|
|
76
78
|
Provides-Extra: sqlcipher
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
sqlalchemy/__init__.py,sha256=SVtgSH7sUTwGsMSzuBKmMSqF2OX7aaTD-Lybl-EJTL0,12626
|
|
2
|
+
sqlalchemy/events.py,sha256=pRcPKKsPQHGPH_pvTtKRmzuEIy-QHCtkUiZl4MUbxKs,536
|
|
3
|
+
sqlalchemy/exc.py,sha256=4SMKOJtz7_SWt5vskCSeXSi4ZlFyL4jh53Q8sk4-ODQ,24011
|
|
4
|
+
sqlalchemy/inspection.py,sha256=2-h6SqEs2OyjyHq20j3eo_1eomCKxExY5AVzdo0CiRk,4429
|
|
5
|
+
sqlalchemy/log.py,sha256=w4mCPtdsvdSSxVXoLEO5qaAiTXxZ9QZqZ4uWwn1Xpdw,8628
|
|
6
|
+
sqlalchemy/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
|
+
sqlalchemy/schema.py,sha256=mt74CGCBtfv_qI1_6zzNFMexYGyWDj2Jkh-XdH4kEWI,3194
|
|
8
|
+
sqlalchemy/types.py,sha256=DgBpPaT-vtsn6_glx5wocrIhR2A1vy56SQNRY3NiPUw,3168
|
|
9
|
+
sqlalchemy/connectors/__init__.py,sha256=uKUYWQoXyleIyjWBuh7gzgnazJokx3DaasKJbFOfQGA,476
|
|
10
|
+
sqlalchemy/connectors/pyodbc.py,sha256=FiOJGpgYZ3mNQOP5th-7IZdY0ro1eUGpYX2gBiGPKTE,8483
|
|
11
|
+
sqlalchemy/cyextension/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
12
|
+
sqlalchemy/cyextension/collections.pyx,sha256=KDI5QTOyYz9gDl-3d7MbGMA0Kc-wxpJqnLmCaUmQy2U,12323
|
|
13
|
+
sqlalchemy/cyextension/immutabledict.pxd,sha256=oc8BbnQwDg7pWAdThB-fzu8s9_ViOe1Ds-8T0r0POjI,41
|
|
14
|
+
sqlalchemy/cyextension/immutabledict.pyx,sha256=aQJPZKjcqbO8jHDqpC9F-v-ew2qAjUscc5CntaheZUk,3285
|
|
15
|
+
sqlalchemy/cyextension/processors.pyx,sha256=0swFIBdR19x1kPRe-dijBaLW898AhH6QJizbv4ho9pk,1545
|
|
16
|
+
sqlalchemy/cyextension/resultproxy.pyx,sha256=cDtMjLTdC47g7cME369NSOCck3JwG2jwZ6j25no3_gw,2477
|
|
17
|
+
sqlalchemy/cyextension/util.pyx,sha256=lv03p63oVn23jLhMI4_RYGewUnJfh-4FkrNMEFL7A3Y,2289
|
|
18
|
+
sqlalchemy/dialects/__init__.py,sha256=-Tvtzn65H8RsXHCcXP2_WKy7pBR1blaWVw0fvsNlryA,1786
|
|
19
|
+
sqlalchemy/dialects/type_migration_guidelines.txt,sha256=-uHNdmYFGB7bzUNT6i8M5nb4j6j9YUKAtW4lcBZqsMg,8239
|
|
20
|
+
sqlalchemy/dialects/mssql/__init__.py,sha256=cHfYkDNsBKHrhaRVNdz7HFnYKAV4mQogP3sZdB5tUdA,1841
|
|
21
|
+
sqlalchemy/dialects/mssql/base.py,sha256=LAvyNPctEmBWUH5a_XKcPZNByOxcOgTzxfjFV8QGNwg,131595
|
|
22
|
+
sqlalchemy/dialects/mssql/information_schema.py,sha256=vVsIan_fwm2HmU13SMoBP4QgrSJ52itHgr8dOXu5INk,8067
|
|
23
|
+
sqlalchemy/dialects/mssql/json.py,sha256=B0m6H08CKuk-yomDHcCwfQbVuVN2WLufuVueA_qb1NQ,4573
|
|
24
|
+
sqlalchemy/dialects/mssql/provision.py,sha256=qNslme0Z62slaOiU1o1eOckJ6UaYUgbcRRfnR1N2lzw,4996
|
|
25
|
+
sqlalchemy/dialects/mssql/pymssql.py,sha256=BfJp9t-IQabqWXySJBmP9pwNTWnJqbjA2jJM9M4XeWc,4029
|
|
26
|
+
sqlalchemy/dialects/mssql/pyodbc.py,sha256=Z-JnUrk42pq7cyyz6HUVu_9NRcAE9uIcACw3Bhic40Q,26707
|
|
27
|
+
sqlalchemy/dialects/mysql/__init__.py,sha256=btLABiNnmbWt9ziW-XgVWEB1qHWQcSFz7zxZNw4m_LY,2144
|
|
28
|
+
sqlalchemy/dialects/mysql/aiomysql.py,sha256=9aMkAAqn-cs1mvxaybTWnmuxEzdvcSfBv0Aei7gWez4,9595
|
|
29
|
+
sqlalchemy/dialects/mysql/asyncmy.py,sha256=U-0-BHMkVnYe19TkhIzdHe7s6ZkYJVJ6AUPQzWjOUXo,9866
|
|
30
|
+
sqlalchemy/dialects/mysql/base.py,sha256=qm1tVsWTk3MymDjiLVwlHfjgnyLKjr47t45sftW7f2k,119097
|
|
31
|
+
sqlalchemy/dialects/mysql/cymysql.py,sha256=5CQVJAlqQ3pT4IDGSQJH2hCzj-EWjUitA21MLqJwEEs,2291
|
|
32
|
+
sqlalchemy/dialects/mysql/dml.py,sha256=WJCt0bd7i5SbkEeG2nxP7xYBXZDzA4X7wOE3B4dcQXA,6998
|
|
33
|
+
sqlalchemy/dialects/mysql/enumerated.py,sha256=1L2J2wT6nQEmRS4z-jzZpoi44IqIaHgBRZZB9m55czo,8439
|
|
34
|
+
sqlalchemy/dialects/mysql/expression.py,sha256=WW5G2XPwqJfXjuzHBt4BRP0pCLcPJkPD1mvZX1g0JL0,4066
|
|
35
|
+
sqlalchemy/dialects/mysql/json.py,sha256=JlSFBAHhJ9JmV-3azH80xkLgeh7g6A6DVyNVCNZiKPU,2260
|
|
36
|
+
sqlalchemy/dialects/mysql/mariadb.py,sha256=eV33eyd5PX_xFqiM8MQjvqkQExxiC1IYRefHGQ4P06U,608
|
|
37
|
+
sqlalchemy/dialects/mysql/mariadbconnector.py,sha256=p5c4Mfpzz3eQwJu4z4ddRHJZftdmUOL6wSIBHFXqAcU,7466
|
|
38
|
+
sqlalchemy/dialects/mysql/mysqlconnector.py,sha256=5glmkPhD_KP-Mci8ZXBr4yzqH1MDfzCJ9F_kZNyXcGo,5666
|
|
39
|
+
sqlalchemy/dialects/mysql/mysqldb.py,sha256=dPXGcjZtvMx0CoH6530kDNginDE5YfGgxWUz0L28_0A,9654
|
|
40
|
+
sqlalchemy/dialects/mysql/provision.py,sha256=uPT6-BIoP_12XLmWAza1TDFNhOVVJ3rmQoMH7nvh-Vg,3226
|
|
41
|
+
sqlalchemy/dialects/mysql/pymysql.py,sha256=gLaQkaTU-RISblBiOlxvx5Kdumq04NI_p4fpVKXTRuQ,2944
|
|
42
|
+
sqlalchemy/dialects/mysql/pyodbc.py,sha256=mkOvumrxpmAi6noZlkaTVKz2F7G5vLh2vx0cZSn9VTA,4288
|
|
43
|
+
sqlalchemy/dialects/mysql/reflection.py,sha256=IWf3wte2XMrBwRVCUyXnIFNrP8iDdreygnlNK3PdRrk,22526
|
|
44
|
+
sqlalchemy/dialects/mysql/reserved_words.py,sha256=DsPHsW3vwOrvU7bv3Nbfact2Z_jyZ9xUTT-mdeQvqxo,9145
|
|
45
|
+
sqlalchemy/dialects/mysql/types.py,sha256=i8DpRkOL1QhPErZ25AmCQOuFLciWhdjNL3I0CeHEhdY,24258
|
|
46
|
+
sqlalchemy/dialects/oracle/__init__.py,sha256=HcAB9tvX7uAVHDMd2pWXKVFdcCwwjLWCXHMXgYU1EWY,1306
|
|
47
|
+
sqlalchemy/dialects/oracle/base.py,sha256=X7AoqfOBEGXqmZkep2tZJ9wlNzgtvYFqQ3P5H0ura5I,117911
|
|
48
|
+
sqlalchemy/dialects/oracle/cx_oracle.py,sha256=Tno0OgmlxoSMRw9iTO5Gv47oSkOddXu1ZIphPlYSrbs,55101
|
|
49
|
+
sqlalchemy/dialects/oracle/dictionary.py,sha256=iUoyFEFM8z0sfVWR2n_nnre14kaQkV_syKO0R5Dos4M,19487
|
|
50
|
+
sqlalchemy/dialects/oracle/oracledb.py,sha256=_-fUQ94xai80B7v9WLVGoGDIv8u54nVspBdyGEyI76g,3457
|
|
51
|
+
sqlalchemy/dialects/oracle/provision.py,sha256=5cvIc3yTWxz4AIRYxcesbRJ1Ft-zT9GauQ911yPnN2o,8055
|
|
52
|
+
sqlalchemy/dialects/oracle/types.py,sha256=IhDjnE7m98jYBOp28BOull4QOaSTacNUNAOVryNFfpU,7481
|
|
53
|
+
sqlalchemy/dialects/postgresql/__init__.py,sha256=bZEPsLbRtB7s6TMQAHCIzKBgkxUa3eDXvCkeARua37E,3734
|
|
54
|
+
sqlalchemy/dialects/postgresql/_psycopg_common.py,sha256=wGJmPl_0mR8MMlYdlNVo-rwKOxnsfkSprKtPfOpHSo0,6136
|
|
55
|
+
sqlalchemy/dialects/postgresql/array.py,sha256=tLyU9GDAeIypNhjTuFQUYbaTeijVM1VVJS6UdzzXXn4,13682
|
|
56
|
+
sqlalchemy/dialects/postgresql/asyncpg.py,sha256=ag0Mc5-ZDNOKe0TfRTX3e5HGOKva5R62iSxAo1Hs3Rg,37094
|
|
57
|
+
sqlalchemy/dialects/postgresql/base.py,sha256=g_Pb36cMayA2ajp8Poi5yVx83M9H1WjiHFyNxkY6d7U,171994
|
|
58
|
+
sqlalchemy/dialects/postgresql/dml.py,sha256=7t1xtfjdH1rOllRrNpMIU-6doqFiZ6WTKKc9rSE7pC4,10094
|
|
59
|
+
sqlalchemy/dialects/postgresql/ext.py,sha256=DMWLFNBUxNg67M6V5HLIfahvGRxDFMoWpYUfAoKCPvY,16070
|
|
60
|
+
sqlalchemy/dialects/postgresql/hstore.py,sha256=q5x0npbAMI8cdRFGTMwLoWFj9P1G9DUkw5OEUCfTXpI,11532
|
|
61
|
+
sqlalchemy/dialects/postgresql/json.py,sha256=panGtnEbcirQDy4yR2huWydFqa_Kmv8xhpLyf-SSRWE,11203
|
|
62
|
+
sqlalchemy/dialects/postgresql/named_types.py,sha256=zNoHsP3nVq5xxA7SOQ6LLDwYZEHFciZ-nDjw_I9f_G0,17092
|
|
63
|
+
sqlalchemy/dialects/postgresql/operators.py,sha256=MB40xq1124OnhUzkvtbnTmxEiey0VxMOYyznF96wwhI,2799
|
|
64
|
+
sqlalchemy/dialects/postgresql/pg8000.py,sha256=tc5aa6bYfYV9dIcy-EfN25f7o_HmQ4P83wvkeFidfSE,15620
|
|
65
|
+
sqlalchemy/dialects/postgresql/pg_catalog.py,sha256=0lLnIgxfCrqkx_LNijMxo0trNLsodcd8KwretZIj4uM,8875
|
|
66
|
+
sqlalchemy/dialects/postgresql/provision.py,sha256=oxyAzs8_PhuK0ChivXC3l2Nldih3_HKffvGsZqD8XWI,5509
|
|
67
|
+
sqlalchemy/dialects/postgresql/psycopg.py,sha256=S4HEUxj7ferTg_3IYqxaIRGqHe1YA2Ugu2Vq9Js9KzI,21841
|
|
68
|
+
sqlalchemy/dialects/postgresql/psycopg2.py,sha256=rOU3QhE0bZerL5hhR3JtF26kj6tmG4VVHa0-qwRxBxc,30673
|
|
69
|
+
sqlalchemy/dialects/postgresql/psycopg2cffi.py,sha256=2EOuDwBetfvelcPoTzSwOHe6X8lTwaYH7znNzXJt9eM,1739
|
|
70
|
+
sqlalchemy/dialects/postgresql/ranges.py,sha256=EebUBCU6aHVXG5_P_93ECA14Au557zkTtodCq3wC-WA,30260
|
|
71
|
+
sqlalchemy/dialects/postgresql/types.py,sha256=vf_1VBkaf6bn-D1c6ns_e4C-qFjwsixNBvZRFlqSqD4,6699
|
|
72
|
+
sqlalchemy/dialects/sqlite/__init__.py,sha256=wnZ9vtfm0QXmth1jiGiubFgRiKxIoQoNthb1bp4FhCs,1173
|
|
73
|
+
sqlalchemy/dialects/sqlite/aiosqlite.py,sha256=T8Vq-H-7tgIW24JOl9_KAHfqwhA6edemuByt9SJfNxQ,10897
|
|
74
|
+
sqlalchemy/dialects/sqlite/base.py,sha256=8htJLMebsP_yTJKub4qUJD0SgWu_4sKiRHbGhoR-Qow,96211
|
|
75
|
+
sqlalchemy/dialects/sqlite/dml.py,sha256=a3vyNx22vqo85vVrsAp5q5WKAR3Ti1qO9donlwqUYuw,7480
|
|
76
|
+
sqlalchemy/dialects/sqlite/json.py,sha256=XFPwSdNx0DxDfxDZn7rmGGqsAgL4vpJbjjGaA73WruQ,2533
|
|
77
|
+
sqlalchemy/dialects/sqlite/provision.py,sha256=O4JDoybdb2RBblXErEVPE2P_5xHab927BQItJa203zU,5383
|
|
78
|
+
sqlalchemy/dialects/sqlite/pysqlcipher.py,sha256=_JuOCoic--ehAGkCgnwUUKKTs6xYoBGag4Y_WkQUDwU,5347
|
|
79
|
+
sqlalchemy/dialects/sqlite/pysqlite.py,sha256=xBg6DKqvml5cCGxVSAQxR1dcMvso8q4uyXs2m4WLzz0,27891
|
|
80
|
+
sqlalchemy/engine/__init__.py,sha256=fJCAl5P7JH9iwjuWo72_3LOIzWWhTnvXqzpAmm_T0fY,2818
|
|
81
|
+
sqlalchemy/engine/_py_processors.py,sha256=RSVKm9YppSBDSCEi8xvbZdRCP9EsCYfbyEg9iDCMCiI,3744
|
|
82
|
+
sqlalchemy/engine/_py_row.py,sha256=Zdta0JGa7V2aV04L7nzXUEp-H1gpresKyBlneQu60pk,3549
|
|
83
|
+
sqlalchemy/engine/_py_util.py,sha256=5m3MZbEqnUwP5kK_ghisFpzcXgBwSxTSkBEFB6afiD8,2245
|
|
84
|
+
sqlalchemy/engine/base.py,sha256=5-NFJjjNrr2SpX9FGd0DC5pDiUiZWup0HyXvP1SOFgU,122148
|
|
85
|
+
sqlalchemy/engine/characteristics.py,sha256=YvMgrUVAt3wsSiQ0K8l44yBjFlMK3MGajxhg50t5yFM,2344
|
|
86
|
+
sqlalchemy/engine/create.py,sha256=8372TLpy4FOAIZ9WmuNkx1v9DPgwpoCAH9P7LNXZCwY,32629
|
|
87
|
+
sqlalchemy/engine/cursor.py,sha256=YChnviiirHFSqwRhgcPfFAyqhu8HzLxwuQg-7J7v9Ao,74396
|
|
88
|
+
sqlalchemy/engine/default.py,sha256=-xqATrVZuhcolumeVLv4OgPnlERrTvfr9t16kkfKuaw,83620
|
|
89
|
+
sqlalchemy/engine/events.py,sha256=9BfbZ7uyaC3rOthu1l0fGhLLE0skTtahhy2NedS-DgA,37424
|
|
90
|
+
sqlalchemy/engine/interfaces.py,sha256=M__Rrn3lAfFRjrmBDFiJE_Alw0zoMHRV_Ad9iDPdH_0,112825
|
|
91
|
+
sqlalchemy/engine/mock.py,sha256=MMdaDvuKuAH_ugnaumq9xK1LOc0c81cocxUnar0hcNM,4177
|
|
92
|
+
sqlalchemy/engine/processors.py,sha256=ENN6XwndxJPW-aXPu_3NzAZsy5SvNznHoa1Qn29ERAw,2383
|
|
93
|
+
sqlalchemy/engine/reflection.py,sha256=0LTHyTbQAQ2V236_ljAbKnnzb7XpxVW244NbGgnfK0Q,75274
|
|
94
|
+
sqlalchemy/engine/result.py,sha256=d_tR2B4LD-uKn-gBOwufHk3XAePszAcfthUH9UNliOU,77720
|
|
95
|
+
sqlalchemy/engine/row.py,sha256=70087e_L0REbTxAQZ905qRfg42EdiVNnmjofcG6Ybls,10452
|
|
96
|
+
sqlalchemy/engine/strategies.py,sha256=HjCj_FHQOgkkhhtnVmcOEuHI_cftNo3P0hN5zkhZvDc,442
|
|
97
|
+
sqlalchemy/engine/url.py,sha256=vGqmfdJ0XwQ9HfA0G9wJ0pGJ4mIuCoSsm9kByNet9Mg,30454
|
|
98
|
+
sqlalchemy/engine/util.py,sha256=Y5euVW6-DGJaxIgUachA2n1aiqm2M3cB-tCG2joRVt4,5683
|
|
99
|
+
sqlalchemy/event/__init__.py,sha256=CSBMp0yu5joTC6tWvx40B4p87N7oGKxC-ZLx2ULKUnQ,997
|
|
100
|
+
sqlalchemy/event/api.py,sha256=nQAvPK1jrLpmu8aKCUtc-vYWcIuG-1FgAtp3GRkfIiI,8227
|
|
101
|
+
sqlalchemy/event/attr.py,sha256=NMe_sPQTju2PE-f68C8TcKJGW-Gxyi1CLXumAmE368Y,20438
|
|
102
|
+
sqlalchemy/event/base.py,sha256=ECHisETYKRpHGzdhwxbGNnfFjCfD3OKKN9_A8xQsDSM,14996
|
|
103
|
+
sqlalchemy/event/legacy.py,sha256=OpPqE64xk1OYjLW1scvc6iijhoa5GZJt5f7-beWhgOc,8211
|
|
104
|
+
sqlalchemy/event/registry.py,sha256=XFjAAmV8vjHfdU7DOqIxu6BXBW2vFIIKJ6eYXiu_-ko,10861
|
|
105
|
+
sqlalchemy/ext/__init__.py,sha256=w4h7EpXjKPr0LD4yHa0pDCfrvleU3rrX7mgyb8RuDYQ,322
|
|
106
|
+
sqlalchemy/ext/associationproxy.py,sha256=vYG-c1KYB3hRKF22FthJZm0oibimuqexvSInlGtdjzg,64977
|
|
107
|
+
sqlalchemy/ext/automap.py,sha256=7p13-VpN0MOM525r7pmEnftedya9l5G-Ei_cFXZfpTc,61431
|
|
108
|
+
sqlalchemy/ext/baked.py,sha256=R8ZAxiVN6eH50AJu0O3TtFXNE1tnRkMlSj3AvkcWFhY,17818
|
|
109
|
+
sqlalchemy/ext/compiler.py,sha256=h7eR0NcPJ4F_k8YGRP3R9YX75Y9pgiVxoCjRyvceF7g,20391
|
|
110
|
+
sqlalchemy/ext/horizontal_shard.py,sha256=eh14W8QWHYH22PL1l5qF_ad9Fyh1WAFjKi_vNfsme94,16766
|
|
111
|
+
sqlalchemy/ext/hybrid.py,sha256=VYZcz6-Mx0T2XWv_ZK4GUBOw5Ru8IcDuEQaOojSBPEE,52525
|
|
112
|
+
sqlalchemy/ext/indexable.py,sha256=RkG9BKwil-TqDjVBM14ML9c-geUrHxtRKpYkSJEwGHA,11028
|
|
113
|
+
sqlalchemy/ext/instrumentation.py,sha256=rjjSbTGilYeGLdyEWV932TfTaGxiVP44_RajinANk54,15723
|
|
114
|
+
sqlalchemy/ext/mutable.py,sha256=d3Pp8PcAVN4pHN9rhc1ReXBWe0Q70Q5S1klFoYGyDPA,37393
|
|
115
|
+
sqlalchemy/ext/orderinglist.py,sha256=8Vcg7UUkLg-QbYAbLVDSqu-5REkR6L-FLLhCYsHYxCQ,14384
|
|
116
|
+
sqlalchemy/ext/serializer.py,sha256=ox6dbMOBmFR0H2RQFt17mcYBOGKgn1cNVFfqY8-jpgQ,6178
|
|
117
|
+
sqlalchemy/ext/asyncio/__init__.py,sha256=oaV5vnuL6DOd_n1TApySI157_380Pd9bskjjriS7iik,1255
|
|
118
|
+
sqlalchemy/ext/asyncio/base.py,sha256=LQzW7Qo9xvYutjDlwrh3Ln1AqIeyEGZR6vXCxh7ue5E,9015
|
|
119
|
+
sqlalchemy/ext/asyncio/engine.py,sha256=14gs0OO_v5AZ-CqU0ixgvj8pCZfhuhmfI-Evl5389tE,47372
|
|
120
|
+
sqlalchemy/ext/asyncio/exc.py,sha256=1hCdOKzvSryc_YE4jgj0l9JASOmZXutdzShEYPiLbGI,639
|
|
121
|
+
sqlalchemy/ext/asyncio/result.py,sha256=YHLhgGklf77hEbhNwZ3JhK4Nj52FB-4YTkC-3PbRGE4,30570
|
|
122
|
+
sqlalchemy/ext/asyncio/scoping.py,sha256=s5XZ2oY4D3okMHSKxX989wtsRjixP7-1e7emhHh6VP0,49561
|
|
123
|
+
sqlalchemy/ext/asyncio/session.py,sha256=iSNkFu0cv8EN-964It-O1BOUyf-LXQCD3QBdHGte8VQ,59909
|
|
124
|
+
sqlalchemy/ext/declarative/__init__.py,sha256=VJu8S1efxil20W48fJlpDn6gHorOudn5p3-lF72WcJ8,1818
|
|
125
|
+
sqlalchemy/ext/declarative/extensions.py,sha256=vwZjudPFA_mao1U04-RZCaU_tvPMBgQa5OTmSI7K7SU,19547
|
|
126
|
+
sqlalchemy/ext/mypy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
127
|
+
sqlalchemy/ext/mypy/apply.py,sha256=uUES4grydYtKykLKlxzJeBXeGe8kfWou9_rzEyEkfp0,10503
|
|
128
|
+
sqlalchemy/ext/mypy/decl_class.py,sha256=Ls2Efh4kEhle6Z4VMz0GRBgGQTYs2fHr5b4DfuDj44c,17377
|
|
129
|
+
sqlalchemy/ext/mypy/infer.py,sha256=Kr79d5i_iLf559s2_y7cN_TtDxZMr-t5c7AsV_dhlNE,19366
|
|
130
|
+
sqlalchemy/ext/mypy/names.py,sha256=CWPZVswhNNBCpb49Vf2w-Y8dxxaYPj9JbiOSLtczfEY,10967
|
|
131
|
+
sqlalchemy/ext/mypy/plugin.py,sha256=fLXDukvZqbJ0JJCOoyZAuOniYZ_F1YT-l9gKppu8SEs,9750
|
|
132
|
+
sqlalchemy/ext/mypy/util.py,sha256=wci1awA8t5aKKUmfl6JDhXv8KnSjsGTDhwWjwzjRPes,8984
|
|
133
|
+
sqlalchemy/future/__init__.py,sha256=79DZx3v7TQZpkS_qThlmuCOm1a9UK2ObNZhyMmjfNB0,516
|
|
134
|
+
sqlalchemy/future/engine.py,sha256=6uOpOedIqiT1-3qJSJIlv9_raMJU8NTkhQwN_Ngg8kI,499
|
|
135
|
+
sqlalchemy/orm/__init__.py,sha256=cBn0aPWyDFY4ya-cHRshQBcuThk1smTUCTrlp6LHdlE,8463
|
|
136
|
+
sqlalchemy/orm/_orm_constructors.py,sha256=6wCs-32yXRYF7slWJaYWwZDqNTTXMFld7rOjuHG8eM8,99269
|
|
137
|
+
sqlalchemy/orm/_typing.py,sha256=TH2_JcWdtDVG-wHhqOWEktkAI6RS2PbYjv-ttYbhZZU,5008
|
|
138
|
+
sqlalchemy/orm/attributes.py,sha256=IEr-T11tsyvOJHODaYcXkgfTFYcZ2kd3Bm1-KrfQySU,91734
|
|
139
|
+
sqlalchemy/orm/base.py,sha256=Eel0VNPF1IVDijTOnYzrDyBVYxVL331K09z65FrQEV4,26799
|
|
140
|
+
sqlalchemy/orm/bulk_persistence.py,sha256=RsHzKxZ2GkOcGwE1sU70f7Cj99rtGzHzeyfm8o4YoNo,69342
|
|
141
|
+
sqlalchemy/orm/clsregistry.py,sha256=4J-kKshmLOEyx3VBqREm2k_XY0cer4zwUoHJT3n5Xmw,17949
|
|
142
|
+
sqlalchemy/orm/collections.py,sha256=3ZnUE4q0ZmbEjxUo_IkGncAw7ql1i23EZrWEsvbOt54,50938
|
|
143
|
+
sqlalchemy/orm/context.py,sha256=52Lv_rhKCQn-xBalUtddGG1yXtVWmKmZ1qU96-d1UZA,110488
|
|
144
|
+
sqlalchemy/orm/decl_api.py,sha256=QY4nVsWEE_BQjd73hKlCylbWUuLjhLoQL7AO152A3nI,62916
|
|
145
|
+
sqlalchemy/orm/decl_base.py,sha256=JW1llPLGjyKu8AamLx4lBxsnDuQ0gpgMnOFadzJeqos,81278
|
|
146
|
+
sqlalchemy/orm/dependency.py,sha256=oHg3-dXVwVzZSpSRSZNWGUDEuhmDdtEPCUxEdD4euUA,47029
|
|
147
|
+
sqlalchemy/orm/descriptor_props.py,sha256=4ioza3TnVE_2RC2wSJLDCa1WNJnim_i0yUiuPq8BQDs,37428
|
|
148
|
+
sqlalchemy/orm/dynamic.py,sha256=-4kTkjq6Z88L1STsjybi27cMXc1OVlmmvtPxE_DmJKI,8622
|
|
149
|
+
sqlalchemy/orm/evaluator.py,sha256=jPjVrP7XbVOG6aXTCBREq0rF3oNHLqB4XAT-gt_cpaA,11925
|
|
150
|
+
sqlalchemy/orm/events.py,sha256=fGnUHwDTV9FTiifB2mmIJispwPbIT4mZongRJD7uiw4,127258
|
|
151
|
+
sqlalchemy/orm/exc.py,sha256=A3wvZVs5sC5XCef4LoTUBG-UfhmliFpU9rYMdS2t_To,7356
|
|
152
|
+
sqlalchemy/orm/identity.py,sha256=gRiuQSrurHGEAJXH9QGYioXL49Im5EGcYQ-IKUEpHmQ,9249
|
|
153
|
+
sqlalchemy/orm/instrumentation.py,sha256=UiICt6MaDo3kf2x71F-NJZ6Q7zv2sN2-9zLwm4zOARU,24451
|
|
154
|
+
sqlalchemy/orm/interfaces.py,sha256=W7bz4nA0Cx4f1BHHREBPhTQvFNOqFcHvx4h8u6Csz70,47346
|
|
155
|
+
sqlalchemy/orm/loading.py,sha256=o3R9yKDigR21aoNeyX6-KpSyvXesC9pQ91IMbaA_J8A,56405
|
|
156
|
+
sqlalchemy/orm/mapped_collection.py,sha256=bNs7GOMZW-LSs2LQ_63lYqhdZ3IHp5Bz2bm_tzqr7i8,19275
|
|
157
|
+
sqlalchemy/orm/mapper.py,sha256=Ib6ZpEHR1YgzmTv5_1a44Emet9mvf6jKg-JguCca3Xs,170648
|
|
158
|
+
sqlalchemy/orm/path_registry.py,sha256=3pZzbKvGppL4rc5IXQV20kvntkmrUw6vhO0Ck-FjK9s,24506
|
|
159
|
+
sqlalchemy/orm/persistence.py,sha256=oKqEic1r4jCI069PP7Dw_VxTHyvjD9iEHSHLK45imik,60516
|
|
160
|
+
sqlalchemy/orm/properties.py,sha256=XCSoGCHQNGY7AM6qUJtdUt9TMF-slt4FI1rWpBSV20Q,26755
|
|
161
|
+
sqlalchemy/orm/query.py,sha256=cs85Bh3OqfRqE3qhcsNlftvgJejgODJhkkixdVBjLC4,117883
|
|
162
|
+
sqlalchemy/orm/relationships.py,sha256=BT2YBwVc2HrAigZaLNz7gkYlyU5mE0S4ngfomN2G9nk,127740
|
|
163
|
+
sqlalchemy/orm/scoping.py,sha256=fdoHbwZgiqRpCtkKqivwBB5_ulKbPKc_nkErRjrDDMc,74844
|
|
164
|
+
sqlalchemy/orm/session.py,sha256=QQD0WXpOr2rF1FZXNKMMhGekHjBAkJi2Dl4B7ZZe77o,186465
|
|
165
|
+
sqlalchemy/orm/state.py,sha256=voUgA4Ef_wB90Tttt4scDnBijnTFAYohiPVngmnXg00,37449
|
|
166
|
+
sqlalchemy/orm/state_changes.py,sha256=xLCwVrz930fhjyA5cxKaPqgZm9qj0FZCuv1-yKYONB8,6586
|
|
167
|
+
sqlalchemy/orm/strategies.py,sha256=5VahSJVSdkGZ3SpTXirfmJ2KFW3PutxFZcFDhE9_xbY,113754
|
|
168
|
+
sqlalchemy/orm/strategy_options.py,sha256=Vb9qpDk1PkNO6noeHGEVpezBRPHdo-naWP7mRqNkmJI,81687
|
|
169
|
+
sqlalchemy/orm/sync.py,sha256=5Nt_OqP4IfhAtHwFRar4dw-YjLENRLvp4d3jDC4wpnw,5749
|
|
170
|
+
sqlalchemy/orm/unitofwork.py,sha256=Wk5YZocBbxe4m1wU2aFQ7gY1Cp5CROi13kDEM1iOSz4,27033
|
|
171
|
+
sqlalchemy/orm/util.py,sha256=U07ckrJHumeV_0IIq9tvg1kutga31vnrg1fCf3nkmZs,79727
|
|
172
|
+
sqlalchemy/orm/writeonly.py,sha256=Lmn3y7hx0dLqGhhiO-p6wTOeKQ7U5ePK_qTR0JIfRoo,19537
|
|
173
|
+
sqlalchemy/pool/__init__.py,sha256=CIv4b6ctueY7w3sML_LxyLKAdl59esYOhz3O7W5w7WE,1815
|
|
174
|
+
sqlalchemy/pool/base.py,sha256=FrVZ6_0sNr9P1tudH55UugMB578FgADDsfH_zsMjPG0,52350
|
|
175
|
+
sqlalchemy/pool/events.py,sha256=eb5t6zLqZ0yErsaCt3-3m_-KjnK2VkGO5ILvnHY1Fmg,13201
|
|
176
|
+
sqlalchemy/pool/impl.py,sha256=bwd4GQ5FHzlblAfaXoD_23bwxFiLqQF5xEUY18qImRo,17740
|
|
177
|
+
sqlalchemy/sql/__init__.py,sha256=TMjmKl6YaAK6jXtmPLqPDn4yrbShVC3Wc9njjU1MrUw,5730
|
|
178
|
+
sqlalchemy/sql/_dml_constructors.py,sha256=hoNyINY3FNi1ZQajR6lbcRN7oYsNghM1wuzzVWxIv3c,3867
|
|
179
|
+
sqlalchemy/sql/_elements_constructors.py,sha256=-qksx59Gqhmzxo1xByPtZZboNvL8uYcCN14pjHYHxL8,62914
|
|
180
|
+
sqlalchemy/sql/_orm_types.py,sha256=_vR3_HQYgZR_of6_ZpTQByie2gaVScxQjVAVWAP3Ztg,620
|
|
181
|
+
sqlalchemy/sql/_py_util.py,sha256=iiwgX3dQhOjdB5-10jtgHPIdibUqGk49bC1qdZMBpYI,2173
|
|
182
|
+
sqlalchemy/sql/_selectable_constructors.py,sha256=RDqgejqiUuU12Be1jBpMIx_YdJho8fhKfnMoJLPFTFE,18812
|
|
183
|
+
sqlalchemy/sql/_typing.py,sha256=t_g3EqzSK9PGCVGCCGwNso2gcmupcFKJalMD1-_l8ng,10457
|
|
184
|
+
sqlalchemy/sql/annotation.py,sha256=8iye1kbFDeKYcgAW7vaBg7HdcZLvUtjRXUzVS6ZRNLk,17904
|
|
185
|
+
sqlalchemy/sql/base.py,sha256=xMnomm_y8T4215FhhEFQVM2R21cgphqIjwq_FMsxbc8,73762
|
|
186
|
+
sqlalchemy/sql/cache_key.py,sha256=nDM36JOkcQm2u6GCgCV84c72MW2ntGDMoZrVIy5_HDQ,32661
|
|
187
|
+
sqlalchemy/sql/coercions.py,sha256=ju8xEi7b9G_GzxaQ6Nwu0cFIWFZ--ottIVfdiuhHY7Y,40553
|
|
188
|
+
sqlalchemy/sql/compiler.py,sha256=iynrWB7lFXJF8MDL3pO3ktP3l9IgmkQD64LisGNTnnI,267009
|
|
189
|
+
sqlalchemy/sql/crud.py,sha256=FSJRsmd3jDA1SRhuCIfJdaRD7jQ1lmqU4G4vcFMDfNs,55647
|
|
190
|
+
sqlalchemy/sql/ddl.py,sha256=ubFUBB8ajD4_TBY5LEmpEFn6PNPy4ctesNU6f36DPec,45689
|
|
191
|
+
sqlalchemy/sql/default_comparator.py,sha256=Gqz0_b4_AViJGQVhZQMhB5m5e5OhQ9ykjl8jZuLYDOw,16744
|
|
192
|
+
sqlalchemy/sql/dml.py,sha256=uxfHb0sG4IvtFx1G9MGrrxL9Bm_kqlX52sRV-IKtMN8,65550
|
|
193
|
+
sqlalchemy/sql/elements.py,sha256=cJgQAUBGBpSF7FqOYgcWISW2T7FjCgl22K5_v7ed-74,169214
|
|
194
|
+
sqlalchemy/sql/events.py,sha256=xe3vJ6pQJau3dJWBAY0zU7Lz52UKuMrpLycriLm3AWA,18301
|
|
195
|
+
sqlalchemy/sql/expression.py,sha256=baMnCH04jeE8E3tA2TovXlsREocA2j3fdHKnzOB8H4U,7586
|
|
196
|
+
sqlalchemy/sql/functions.py,sha256=A5SRLM6EqY4RQ4e0LI5yCjGwzRIjn7Sz8mLFLSfmCHc,54492
|
|
197
|
+
sqlalchemy/sql/lambdas.py,sha256=kUbj1HTqzGdTeKFVZDR0t82JnotYVBfjHE8jV_-2l3w,49309
|
|
198
|
+
sqlalchemy/sql/naming.py,sha256=l8udFP2wvXLgehIB0uF2KXwpkXSVSREDk6fLCH9F-XY,6865
|
|
199
|
+
sqlalchemy/sql/operators.py,sha256=ovOlwgWQy-nhesRt29Hd4TIP7x0EsA33GsSkhSEB6yE,73998
|
|
200
|
+
sqlalchemy/sql/roles.py,sha256=fRi_bOduJED_Dk2PjudvAzEdpf0JXgfv1b5onjKHmsU,7628
|
|
201
|
+
sqlalchemy/sql/schema.py,sha256=03emDaRo4vlkugY2VgIVNWfc4_EkwzjiSDawyZRZMwM,227000
|
|
202
|
+
sqlalchemy/sql/selectable.py,sha256=XSL6o79lor6AWvg_Rfv4BskkcTlNjui0Rmh4s_KfYxw,232342
|
|
203
|
+
sqlalchemy/sql/sqltypes.py,sha256=h7sTx-7ld1ajMwwr5exDqcmWYmMh65sUXzLkDpD8UDw,125872
|
|
204
|
+
sqlalchemy/sql/traversals.py,sha256=UT2g9KbITMGf4EELAzR8OGlqRVNANlMgPgalU_MkDyU,33601
|
|
205
|
+
sqlalchemy/sql/type_api.py,sha256=EJ1RFnAAExqs7BviHLo3VmSDda7gBxIY8nRx3zc7bU0,85191
|
|
206
|
+
sqlalchemy/sql/util.py,sha256=5CGmTf3LueJ34nDUCrpfB_WqmMSLBDYC6UgK-H7LJik,48269
|
|
207
|
+
sqlalchemy/sql/visitors.py,sha256=IXzmK9IZr40ZSwP8ucRb6A1sgDC3_wpm0nM-qayg3bI,36354
|
|
208
|
+
sqlalchemy/testing/__init__.py,sha256=9M2SMxBBLJ8xLUWXNCWDzkcvOqFznWcJzrSd712vATU,3126
|
|
209
|
+
sqlalchemy/testing/assertions.py,sha256=lNNZ-gfF4TDRXmB7hZDdch7JYZRb_qWGeqWDFKtopx0,31439
|
|
210
|
+
sqlalchemy/testing/assertsql.py,sha256=fIlHNWaGUR439L6yF98kGz4E_VBIJw5BvpnnQoCutCA,16775
|
|
211
|
+
sqlalchemy/testing/asyncio.py,sha256=cAw68tzu3h5wjdIKfOqhFATcbMb38XeK0ThjIalUHuQ,3728
|
|
212
|
+
sqlalchemy/testing/config.py,sha256=E_FLPXO78dXNFsMx3JV-QEr_ocR2k39tyl7n8PxGF_0,10937
|
|
213
|
+
sqlalchemy/testing/engines.py,sha256=w5-0FbanItRsOt6x4n7wM_OnToCzJnrvZZ2hk5Yzng8,13355
|
|
214
|
+
sqlalchemy/testing/entities.py,sha256=rysywsnjXHlIIC-uv0L7-fLmTAuNpHJvcSd1HeAdY5M,3354
|
|
215
|
+
sqlalchemy/testing/exclusions.py,sha256=uoYLEwyNOK1eR8rpfOZ2Q3dxgY0akM-RtsIFML-FPrY,12444
|
|
216
|
+
sqlalchemy/testing/fixtures.py,sha256=Dl4NWhZHol5iGg1pPe5vONe9nlEUyhsDhXj-weEtgQk,33101
|
|
217
|
+
sqlalchemy/testing/pickleable.py,sha256=0AqRQGexDo-lgsEx_GDMRqMIyG1QAQONbGsqWxLyoog,2889
|
|
218
|
+
sqlalchemy/testing/profiling.py,sha256=HPjYvRLT1nD90FCZ7AA8j9ygkMtf1SGA47Xze2QPueo,10148
|
|
219
|
+
sqlalchemy/testing/provision.py,sha256=w4F_ceGHPpWHUeh6cVcE5ktCC-ISrGc2yOSnXauOd5U,14200
|
|
220
|
+
sqlalchemy/testing/requirements.py,sha256=lsIcOEZfn-pgrMqnsJ55NrVnpq-CQETwXg-0Mk3HfVs,50709
|
|
221
|
+
sqlalchemy/testing/schema.py,sha256=OSfMoIJ7ORbevGkeJdrKcTrQ0s7wXebuCU08mC1Y9jA,6513
|
|
222
|
+
sqlalchemy/testing/util.py,sha256=FV2048zXXHFBjYbwHHuahnOpLOzCzXzTzjSz976sZKQ,14160
|
|
223
|
+
sqlalchemy/testing/warnings.py,sha256=pmfT33PF1q1PI7DdHOsup3LxHq1AC4-aYl1oL8HmrYo,1546
|
|
224
|
+
sqlalchemy/testing/plugin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
225
|
+
sqlalchemy/testing/plugin/bootstrap.py,sha256=GrBB27KbswjE3Tt-zJlj6uSqGh9N-_CXkonnJSSBz84,1437
|
|
226
|
+
sqlalchemy/testing/plugin/plugin_base.py,sha256=FB73wxHVFjpiCuwIg1KFCQlx1yPiHb2thpNbEoLRX48,21277
|
|
227
|
+
sqlalchemy/testing/plugin/pytestplugin.py,sha256=yIZf7y4Vl-J583kSpB7t2IXCBP9keF254LjxGAEcSxo,27232
|
|
228
|
+
sqlalchemy/testing/suite/__init__.py,sha256=_firVc2uS3TMZ3vH2baQzNb17ubM78RHtb9kniSybmk,476
|
|
229
|
+
sqlalchemy/testing/suite/test_cte.py,sha256=O5idVeBnHm9zdiG3tuCBUn4hYU_TA63-6LNnRygr8g0,6205
|
|
230
|
+
sqlalchemy/testing/suite/test_ddl.py,sha256=xWimTjggpTe3S1Xfmt_IPofTXkUUcKuVSVCIfIyGMbA,11785
|
|
231
|
+
sqlalchemy/testing/suite/test_deprecations.py,sha256=XI8ZU1NxC-6uvPDImaaq9O7Ov6MF5gmy-yk3TfesLAo,5082
|
|
232
|
+
sqlalchemy/testing/suite/test_dialect.py,sha256=_5gZVBqq6jYhzKj7pgGo6FHrSPeEgZYmiPn2Q28gYqA,21015
|
|
233
|
+
sqlalchemy/testing/suite/test_insert.py,sha256=xbMkoNgDY7wSRBXOLny1JltZwUN8HiH_OIwpOh-HD6M,17368
|
|
234
|
+
sqlalchemy/testing/suite/test_reflection.py,sha256=YUgTW76IFVNjiYJoZfFZa0W1WVYBZNo5rjynZLxlljA,104478
|
|
235
|
+
sqlalchemy/testing/suite/test_results.py,sha256=BSNHQ1SxhU964RS5AIkKMqE_JrVjCabtODLHr5EYfHo,15665
|
|
236
|
+
sqlalchemy/testing/suite/test_rowcount.py,sha256=zA0Q3Guf-TQioyLmNZ6HWCUOEuEhf7q-uI2J72j2kjk,6147
|
|
237
|
+
sqlalchemy/testing/suite/test_select.py,sha256=QHsBX16EZpxlEZZLM0pMNcwayPU0dig39McKwiiith0,58325
|
|
238
|
+
sqlalchemy/testing/suite/test_sequence.py,sha256=c80CBWrU930GPnPfr9TCRbTTuITR7BpIactncLIj2XU,9672
|
|
239
|
+
sqlalchemy/testing/suite/test_types.py,sha256=GTully5oymZ9I_GCrw1q0_kVRcnPSOnfT89shObI8x0,61834
|
|
240
|
+
sqlalchemy/testing/suite/test_unicode_ddl.py,sha256=7obItCpFt4qlWaDqe25HWgQT6FoUhgz1W7_Xycfz9Xk,5887
|
|
241
|
+
sqlalchemy/testing/suite/test_update_delete.py,sha256=VxhsI37iivEYejQ38duuT4dida9iXH_4EK3QMvaXMZM,1648
|
|
242
|
+
sqlalchemy/util/__init__.py,sha256=Bh0SkfkeCsz6-rbDmC41lAWOuCvKCiXVZthN2cWJEXk,8245
|
|
243
|
+
sqlalchemy/util/_collections.py,sha256=SzJIKREJgfGTjOZRgvcwPGQR2_x_7k8LzFbuzqzJ2Mg,20401
|
|
244
|
+
sqlalchemy/util/_concurrency_py3k.py,sha256=SNvy2lOf2cb15CwcfdIHfFJFKXXV-VoBfb-pK-iScDA,8284
|
|
245
|
+
sqlalchemy/util/_has_cy.py,sha256=XMkeqCDGmhkd0uuzpCdyELz7gOjHxyFQ1AIlc5NneoY,1229
|
|
246
|
+
sqlalchemy/util/_py_collections.py,sha256=8ZL6A4hrvSv2w4K4PaZImHhm0sLNAzaEvqyrWyOzFic,16678
|
|
247
|
+
sqlalchemy/util/compat.py,sha256=cdYRtH6ZMSVY8WgzRNDZ8yagOSYG1xjuSyQEBs6Q6Pg,9109
|
|
248
|
+
sqlalchemy/util/concurrency.py,sha256=ZxcQYOKy-GBsQkPmCrBO5MzMpqW3JZme2Hiyqpbt9uc,2284
|
|
249
|
+
sqlalchemy/util/deprecations.py,sha256=R-1ALq_6-JqktzVMxOBS5jh_DNi5gcM5uP0IBd22jcQ,12113
|
|
250
|
+
sqlalchemy/util/langhelpers.py,sha256=y_7NUQYLOFki1llVD73HHYqL-80OPXYl5xghZpyIQgE,64931
|
|
251
|
+
sqlalchemy/util/preloaded.py,sha256=KKNLJEqChDW1TNUsM_TzKu7JYEA3kkuh2N-quM_2_Y4,5905
|
|
252
|
+
sqlalchemy/util/queue.py,sha256=ITejs6KS4Hz_ojrss2oFeUO9MoIeR3qWmZQ8J7yyrNU,10205
|
|
253
|
+
sqlalchemy/util/tool_support.py,sha256=epm8MzDZpVmhE6LIjrjJrP8BUf12Wab2m28A9lGq95s,5969
|
|
254
|
+
sqlalchemy/util/topological.py,sha256=hjJWL3C_B7Rpv9s7jj7wcTckcZUSkxc6xRDhiN1xyec,3458
|
|
255
|
+
sqlalchemy/util/typing.py,sha256=I426vml9ezDOVSMFE3FL2XaqF1eT73zke0bXJEdPXUs,15640
|
|
256
|
+
SQLAlchemy-2.0.16.dist-info/LICENSE,sha256=2lSTeluT1aC-5eJXO8vhkzf93qCSeV_mFXLrv3tNdIU,1100
|
|
257
|
+
SQLAlchemy-2.0.16.dist-info/METADATA,sha256=zoONBukXaGRPJe_95d4sxKj4xgkHU2O6RRxnP9pONqI,9450
|
|
258
|
+
SQLAlchemy-2.0.16.dist-info/WHEEL,sha256=pkctZYzUS4AYVn6dJ-7367OJZivF2e8RA9b_ZBjif18,92
|
|
259
|
+
SQLAlchemy-2.0.16.dist-info/top_level.txt,sha256=rp-ZgB7D8G11ivXON5VGPjupT1voYmWqkciDt5Uaw_Q,11
|
|
260
|
+
SQLAlchemy-2.0.16.dist-info/RECORD,,
|
sqlalchemy/__init__.py
CHANGED
|
@@ -1309,7 +1309,6 @@ class DATETIMEOFFSET(_DateTimeBase, sqltypes.DateTime):
|
|
|
1309
1309
|
class _UnicodeLiteral:
|
|
1310
1310
|
def literal_processor(self, dialect):
|
|
1311
1311
|
def process(value):
|
|
1312
|
-
|
|
1313
1312
|
value = value.replace("'", "''")
|
|
1314
1313
|
|
|
1315
1314
|
if dialect.identifier_preparer._double_percents:
|
|
@@ -1838,9 +1837,7 @@ class MSExecutionContext(default.DefaultExecutionContext):
|
|
|
1838
1837
|
dialect: MSDialect
|
|
1839
1838
|
|
|
1840
1839
|
def _opt_encode(self, statement):
|
|
1841
|
-
|
|
1842
1840
|
if self.compiled and self.compiled.schema_translate_map:
|
|
1843
|
-
|
|
1844
1841
|
rst = self.compiled.preparer._render_schema_translates
|
|
1845
1842
|
statement = rst(statement, self.compiled.schema_translate_map)
|
|
1846
1843
|
|
|
@@ -2691,8 +2688,9 @@ class MSDDLCompiler(compiler.DDLCompiler):
|
|
|
2691
2688
|
formatted_name = self.preparer.format_constraint(constraint)
|
|
2692
2689
|
if formatted_name is not None:
|
|
2693
2690
|
text += "CONSTRAINT %s " % formatted_name
|
|
2694
|
-
text += "UNIQUE "
|
|
2695
|
-
|
|
2691
|
+
text += "UNIQUE %s" % self.define_unique_constraint_distinct(
|
|
2692
|
+
constraint, **kw
|
|
2693
|
+
)
|
|
2696
2694
|
clustered = constraint.dialect_options["mssql"]["clustered"]
|
|
2697
2695
|
if clustered is not None:
|
|
2698
2696
|
if clustered:
|
|
@@ -22,7 +22,6 @@ from ...testing.provision import temp_table_keyword_args
|
|
|
22
22
|
|
|
23
23
|
@generate_driver_url.for_db("mssql")
|
|
24
24
|
def generate_driver_url(url, driver, query_str):
|
|
25
|
-
|
|
26
25
|
backend = url.get_backend_name()
|
|
27
26
|
|
|
28
27
|
new_url = url.set(drivername="%s+%s" % (backend, driver))
|
|
@@ -84,7 +83,6 @@ def _reap_mssql_dbs(url, idents):
|
|
|
84
83
|
log.info("db reaper connecting to %r", url)
|
|
85
84
|
eng = create_engine(url)
|
|
86
85
|
with eng.connect().execution_options(isolation_level="AUTOCOMMIT") as conn:
|
|
87
|
-
|
|
88
86
|
log.info("identifiers in file: %s", ", ".join(idents))
|
|
89
87
|
|
|
90
88
|
to_reap = conn.exec_driver_sql(
|
|
@@ -34,7 +34,6 @@ This dialect should normally be used only with the
|
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
""" # noqa
|
|
37
|
-
|
|
38
37
|
from .pymysql import MySQLDialect_pymysql
|
|
39
38
|
from ... import pool
|
|
40
39
|
from ... import util
|
|
@@ -255,16 +254,17 @@ class AsyncAdapt_aiomysql_dbapi:
|
|
|
255
254
|
|
|
256
255
|
def connect(self, *arg, **kw):
|
|
257
256
|
async_fallback = kw.pop("async_fallback", False)
|
|
257
|
+
creator_fn = kw.pop("async_creator_fn", self.aiomysql.connect)
|
|
258
258
|
|
|
259
259
|
if util.asbool(async_fallback):
|
|
260
260
|
return AsyncAdaptFallback_aiomysql_connection(
|
|
261
261
|
self,
|
|
262
|
-
await_fallback(
|
|
262
|
+
await_fallback(creator_fn(*arg, **kw)),
|
|
263
263
|
)
|
|
264
264
|
else:
|
|
265
265
|
return AsyncAdapt_aiomysql_connection(
|
|
266
266
|
self,
|
|
267
|
-
await_only(
|
|
267
|
+
await_only(creator_fn(*arg, **kw)),
|
|
268
268
|
)
|
|
269
269
|
|
|
270
270
|
|
|
@@ -285,7 +285,6 @@ class MySQLDialect_aiomysql(MySQLDialect_pymysql):
|
|
|
285
285
|
|
|
286
286
|
@classmethod
|
|
287
287
|
def get_pool_class(cls, url):
|
|
288
|
-
|
|
289
288
|
async_fallback = url.query.get("async_fallback", False)
|
|
290
289
|
|
|
291
290
|
if util.asbool(async_fallback):
|
|
@@ -29,7 +29,6 @@ This dialect should normally be used only with the
|
|
|
29
29
|
|
|
30
30
|
|
|
31
31
|
""" # noqa
|
|
32
|
-
|
|
33
32
|
from contextlib import asynccontextmanager
|
|
34
33
|
|
|
35
34
|
from .pymysql import MySQLDialect_pymysql
|
|
@@ -267,16 +266,17 @@ class AsyncAdapt_asyncmy_dbapi:
|
|
|
267
266
|
|
|
268
267
|
def connect(self, *arg, **kw):
|
|
269
268
|
async_fallback = kw.pop("async_fallback", False)
|
|
269
|
+
creator_fn = kw.pop("async_creator_fn", self.asyncmy.connect)
|
|
270
270
|
|
|
271
271
|
if util.asbool(async_fallback):
|
|
272
272
|
return AsyncAdaptFallback_asyncmy_connection(
|
|
273
273
|
self,
|
|
274
|
-
await_fallback(
|
|
274
|
+
await_fallback(creator_fn(*arg, **kw)),
|
|
275
275
|
)
|
|
276
276
|
else:
|
|
277
277
|
return AsyncAdapt_asyncmy_connection(
|
|
278
278
|
self,
|
|
279
|
-
await_only(
|
|
279
|
+
await_only(creator_fn(*arg, **kw)),
|
|
280
280
|
)
|
|
281
281
|
|
|
282
282
|
|
|
@@ -295,7 +295,6 @@ class MySQLDialect_asyncmy(MySQLDialect_pymysql):
|
|
|
295
295
|
|
|
296
296
|
@classmethod
|
|
297
297
|
def get_pool_class(cls, url):
|
|
298
|
-
|
|
299
298
|
async_fallback = url.query.get("async_fallback", False)
|
|
300
299
|
|
|
301
300
|
if util.asbool(async_fallback):
|
|
@@ -1179,7 +1179,6 @@ class MySQLExecutionContext(default.DefaultExecutionContext):
|
|
|
1179
1179
|
|
|
1180
1180
|
|
|
1181
1181
|
class MySQLCompiler(compiler.SQLCompiler):
|
|
1182
|
-
|
|
1183
1182
|
render_table_with_column_in_update_from = True
|
|
1184
1183
|
"""Overridden from base SQLCompiler value"""
|
|
1185
1184
|
|
|
@@ -1581,7 +1580,6 @@ class MySQLCompiler(compiler.SQLCompiler):
|
|
|
1581
1580
|
tmp = " FOR UPDATE"
|
|
1582
1581
|
|
|
1583
1582
|
if select._for_update_arg.of and self.dialect.supports_for_update_of:
|
|
1584
|
-
|
|
1585
1583
|
tables = util.OrderedSet()
|
|
1586
1584
|
for c in select._for_update_arg.of:
|
|
1587
1585
|
tables.update(sql_util.surface_selectables_only(c))
|
|
@@ -1848,7 +1846,6 @@ class MySQLDDLCompiler(compiler.DDLCompiler):
|
|
|
1848
1846
|
):
|
|
1849
1847
|
arg = opts[opt]
|
|
1850
1848
|
if opt in _reflection._options_of_type_string:
|
|
1851
|
-
|
|
1852
1849
|
arg = self.sql_compiler.render_literal_value(
|
|
1853
1850
|
arg, sqltypes.String()
|
|
1854
1851
|
)
|
|
@@ -1940,7 +1937,6 @@ class MySQLDDLCompiler(compiler.DDLCompiler):
|
|
|
1940
1937
|
|
|
1941
1938
|
length = index.dialect_options[self.dialect.name]["length"]
|
|
1942
1939
|
if length is not None:
|
|
1943
|
-
|
|
1944
1940
|
if isinstance(length, dict):
|
|
1945
1941
|
# length value can be a (column_name --> integer value)
|
|
1946
1942
|
# mapping specifying the prefix length for each column of the
|
|
@@ -2909,7 +2905,6 @@ class MySQLDialect(default.DefaultDialect):
|
|
|
2909
2905
|
|
|
2910
2906
|
@reflection.cache
|
|
2911
2907
|
def get_table_options(self, connection, table_name, schema=None, **kw):
|
|
2912
|
-
|
|
2913
2908
|
parsed_state = self._parsed_state_or_create(
|
|
2914
2909
|
connection, table_name, schema, **kw
|
|
2915
2910
|
)
|
|
@@ -2942,7 +2937,6 @@ class MySQLDialect(default.DefaultDialect):
|
|
|
2942
2937
|
|
|
2943
2938
|
@reflection.cache
|
|
2944
2939
|
def get_foreign_keys(self, connection, table_name, schema=None, **kw):
|
|
2945
|
-
|
|
2946
2940
|
parsed_state = self._parsed_state_or_create(
|
|
2947
2941
|
connection, table_name, schema, **kw
|
|
2948
2942
|
)
|
|
@@ -3021,7 +3015,6 @@ class MySQLDialect(default.DefaultDialect):
|
|
|
3021
3015
|
]
|
|
3022
3016
|
|
|
3023
3017
|
if col_tuples:
|
|
3024
|
-
|
|
3025
3018
|
correct_for_wrong_fk_case = connection.execute(
|
|
3026
3019
|
sql.text(
|
|
3027
3020
|
"""
|
|
@@ -3092,7 +3085,6 @@ class MySQLDialect(default.DefaultDialect):
|
|
|
3092
3085
|
|
|
3093
3086
|
@reflection.cache
|
|
3094
3087
|
def get_indexes(self, connection, table_name, schema=None, **kw):
|
|
3095
|
-
|
|
3096
3088
|
parsed_state = self._parsed_state_or_create(
|
|
3097
3089
|
connection, table_name, schema, **kw
|
|
3098
3090
|
)
|
|
@@ -3168,7 +3160,6 @@ class MySQLDialect(default.DefaultDialect):
|
|
|
3168
3160
|
|
|
3169
3161
|
@reflection.cache
|
|
3170
3162
|
def get_view_definition(self, connection, view_name, schema=None, **kw):
|
|
3171
|
-
|
|
3172
3163
|
charset = self._connection_charset
|
|
3173
3164
|
full_name = ".".join(
|
|
3174
3165
|
self.identifier_preparer._quote_free_identifiers(schema, view_name)
|
|
@@ -699,7 +699,6 @@ class OracleTypeCompiler(compiler.GenericTypeCompiler):
|
|
|
699
699
|
**kw,
|
|
700
700
|
):
|
|
701
701
|
if precision is None:
|
|
702
|
-
|
|
703
702
|
precision = getattr(type_, "precision", None)
|
|
704
703
|
|
|
705
704
|
if _requires_binary_precision:
|
|
@@ -1098,7 +1097,6 @@ class OracleCompiler(compiler.SQLCompiler):
|
|
|
1098
1097
|
|
|
1099
1098
|
# add expressions to accommodate FOR UPDATE OF
|
|
1100
1099
|
if for_update is not None and for_update.of:
|
|
1101
|
-
|
|
1102
1100
|
adapter = sql_util.ClauseAdapter(inner_subquery)
|
|
1103
1101
|
for_update.of = [
|
|
1104
1102
|
adapter.traverse(elem) for elem in for_update.of
|
|
@@ -1352,7 +1350,6 @@ class OracleDDLCompiler(compiler.DDLCompiler):
|
|
|
1352
1350
|
|
|
1353
1351
|
|
|
1354
1352
|
class OracleIdentifierPreparer(compiler.IdentifierPreparer):
|
|
1355
|
-
|
|
1356
1353
|
reserved_words = {x.lower() for x in RESERVED_WORDS}
|
|
1357
1354
|
illegal_initial_characters = {str(dig) for dig in range(0, 10)}.union(
|
|
1358
1355
|
["_", "$"]
|
|
@@ -736,7 +736,6 @@ class OracleCompiler_cx_oracle(OracleCompiler):
|
|
|
736
736
|
# Oracle parameters and use the custom escaping here
|
|
737
737
|
escaped_from = kw.get("escaped_from", None)
|
|
738
738
|
if not escaped_from:
|
|
739
|
-
|
|
740
739
|
if self._bind_translate_re.search(name):
|
|
741
740
|
# not quite the translate use case as we want to
|
|
742
741
|
# also get a quick boolean if we even found
|
|
@@ -764,7 +763,6 @@ class OracleExecutionContext_cx_oracle(OracleExecutionContext):
|
|
|
764
763
|
# check for has_out_parameters or RETURNING, create cx_Oracle.var
|
|
765
764
|
# objects if so
|
|
766
765
|
if self.compiled.has_out_parameters or self.compiled._oracle_returning:
|
|
767
|
-
|
|
768
766
|
out_parameters = self.out_parameters
|
|
769
767
|
assert out_parameters is not None
|
|
770
768
|
|
|
@@ -841,7 +839,7 @@ class OracleExecutionContext_cx_oracle(OracleExecutionContext):
|
|
|
841
839
|
def _generate_cursor_outputtype_handler(self):
|
|
842
840
|
output_handlers = {}
|
|
843
841
|
|
|
844
|
-
for
|
|
842
|
+
for keyname, name, objects, type_ in self.compiled._result_columns:
|
|
845
843
|
handler = type_._cached_custom_processor(
|
|
846
844
|
self.dialect,
|
|
847
845
|
"cx_oracle_outputtypehandler",
|
|
@@ -892,7 +890,6 @@ class OracleExecutionContext_cx_oracle(OracleExecutionContext):
|
|
|
892
890
|
and is_sql_compiler(self.compiled)
|
|
893
891
|
and self.compiled._oracle_returning
|
|
894
892
|
):
|
|
895
|
-
|
|
896
893
|
initial_buffer = self.fetchall_for_returning(
|
|
897
894
|
self.cursor, _internal=True
|
|
898
895
|
)
|
|
@@ -1038,7 +1035,6 @@ class OracleDialect_cx_oracle(OracleDialect):
|
|
|
1038
1035
|
threaded=None,
|
|
1039
1036
|
**kwargs,
|
|
1040
1037
|
):
|
|
1041
|
-
|
|
1042
1038
|
OracleDialect.__init__(self, **kwargs)
|
|
1043
1039
|
self.arraysize = arraysize
|
|
1044
1040
|
self.encoding_errors = encoding_errors
|
|
@@ -1240,7 +1236,6 @@ class OracleDialect_cx_oracle(OracleDialect):
|
|
|
1240
1236
|
def output_type_handler(
|
|
1241
1237
|
cursor, name, default_type, size, precision, scale
|
|
1242
1238
|
):
|
|
1243
|
-
|
|
1244
1239
|
if (
|
|
1245
1240
|
default_type == cx_Oracle.NUMBER
|
|
1246
1241
|
and default_type is not cx_Oracle.NATIVE_FLOAT
|
|
@@ -1307,7 +1302,6 @@ class OracleDialect_cx_oracle(OracleDialect):
|
|
|
1307
1302
|
return output_type_handler
|
|
1308
1303
|
|
|
1309
1304
|
def on_connect(self):
|
|
1310
|
-
|
|
1311
1305
|
output_type_handler = self._generate_connection_outputtype_handler()
|
|
1312
1306
|
|
|
1313
1307
|
def on_connect(conn):
|
|
@@ -1453,7 +1447,6 @@ class OracleDialect_cx_oracle(OracleDialect):
|
|
|
1453
1447
|
def do_commit_twophase(
|
|
1454
1448
|
self, connection, xid, is_prepared=True, recover=False
|
|
1455
1449
|
):
|
|
1456
|
-
|
|
1457
1450
|
if not is_prepared:
|
|
1458
1451
|
self.do_commit(connection.connection)
|
|
1459
1452
|
else:
|
|
@@ -62,7 +62,6 @@ def _ora_drop_all_schema_objects_pre_tables(cfg, eng):
|
|
|
62
62
|
|
|
63
63
|
@drop_all_schema_objects_post_tables.for_db("oracle")
|
|
64
64
|
def _ora_drop_all_schema_objects_post_tables(cfg, eng):
|
|
65
|
-
|
|
66
65
|
with eng.begin() as conn:
|
|
67
66
|
for syn in conn.dialect._get_synonyms(conn, None, None, None):
|
|
68
67
|
conn.exec_driver_sql(f"drop synonym {syn['synonym_name']}")
|
|
@@ -93,7 +92,6 @@ def _oracle_drop_db(cfg, eng, ident):
|
|
|
93
92
|
|
|
94
93
|
@stop_test_class_outside_fixtures.for_db("oracle")
|
|
95
94
|
def _ora_stop_test_class_outside_fixtures(config, db, cls):
|
|
96
|
-
|
|
97
95
|
try:
|
|
98
96
|
_purge_recyclebin(db)
|
|
99
97
|
except exc.DatabaseError as err:
|
|
@@ -155,7 +153,6 @@ def _reap_oracle_dbs(url, idents):
|
|
|
155
153
|
log.info("db reaper connecting to %r", url)
|
|
156
154
|
eng = create_engine(url)
|
|
157
155
|
with eng.begin() as conn:
|
|
158
|
-
|
|
159
156
|
log.info("identifiers in file: %s", ", ".join(idents))
|
|
160
157
|
|
|
161
158
|
to_reap = conn.exec_driver_sql(
|
|
@@ -14,6 +14,9 @@ from typing import Any
|
|
|
14
14
|
from typing import Optional
|
|
15
15
|
from typing import TypeVar
|
|
16
16
|
|
|
17
|
+
from .operators import CONTAINED_BY
|
|
18
|
+
from .operators import CONTAINS
|
|
19
|
+
from .operators import OVERLAP
|
|
17
20
|
from ... import types as sqltypes
|
|
18
21
|
from ... import util
|
|
19
22
|
from ...sql import expression
|
|
@@ -99,7 +102,6 @@ class array(expression.ExpressionClauseList[_T]):
|
|
|
99
102
|
inherit_cache = True
|
|
100
103
|
|
|
101
104
|
def __init__(self, clauses, **kw):
|
|
102
|
-
|
|
103
105
|
type_arg = kw.pop("type_", None)
|
|
104
106
|
super().__init__(operators.comma_op, *clauses, **kw)
|
|
105
107
|
|
|
@@ -155,13 +157,6 @@ class array(expression.ExpressionClauseList[_T]):
|
|
|
155
157
|
return self
|
|
156
158
|
|
|
157
159
|
|
|
158
|
-
CONTAINS = operators.custom_op("@>", precedence=5, is_comparison=True)
|
|
159
|
-
|
|
160
|
-
CONTAINED_BY = operators.custom_op("<@", precedence=5, is_comparison=True)
|
|
161
|
-
|
|
162
|
-
OVERLAP = operators.custom_op("&&", precedence=5, is_comparison=True)
|
|
163
|
-
|
|
164
|
-
|
|
165
160
|
class ARRAY(sqltypes.ARRAY):
|
|
166
161
|
"""PostgreSQL ARRAY type.
|
|
167
162
|
|
|
@@ -408,7 +403,6 @@ class ARRAY(sqltypes.ARRAY):
|
|
|
408
403
|
|
|
409
404
|
|
|
410
405
|
def _split_enum_values(array_string):
|
|
411
|
-
|
|
412
406
|
if '"' not in array_string:
|
|
413
407
|
# no escape char is present so it can just split on the comma
|
|
414
408
|
return array_string.split(",") if array_string else []
|