mirror of
https://github.com/sqlalchemy/sqlalchemy.git
synced 2026-05-14 12:47:22 -04:00
06c234d037
Changed how the positional compilation is performed. It's rendered by the compiler the same as the pyformat compilation. The string is then processed to replace the placeholders with the correct ones, and to obtain the correct order of the parameters. This vastly simplifies the computation of the order of the parameters, that in case of nested CTE is very hard to compute correctly. Reworked how numeric paramstyle behavers: - added support for repeated parameter, without duplicating them like in normal positional dialects - implement insertmany support. This requires that the dialect supports out of order placehoders, since all parameters that are not part of the VALUES clauses are placed at the beginning of the parameter tuple - support for different identifiers for a numeric parameter. It's for example possible to use postgresql style placeholder $1, $2, etc Added two new dialect based on sqlite to test "numeric" fully using both :1 style and $1 style. Includes a workaround for SQLite's not-really-correct numeric implementation. Changed parmstyle of asyncpg dialect to use numeric, rendering with its native $ identifiers Fixes: #8926 Fixes: #8849 Change-Id: I7c640467d49adfe6d795cc84296fc7403dcad4d6
177 lines
6.0 KiB
INI
177 lines
6.0 KiB
INI
[metadata]
|
|
name = SQLAlchemy
|
|
version = attr: sqlalchemy.__version__
|
|
description = Database Abstraction Library
|
|
long_description = file: README.rst
|
|
long_description_content_type = text/x-rst
|
|
url = https://www.sqlalchemy.org
|
|
author = Mike Bayer
|
|
author_email = mike_mp@zzzcomputing.com
|
|
license = MIT
|
|
license_files = LICENSE
|
|
classifiers =
|
|
Development Status :: 5 - Production/Stable
|
|
Intended Audience :: Developers
|
|
License :: OSI Approved :: MIT License
|
|
Operating System :: OS Independent
|
|
Programming Language :: Python
|
|
Programming Language :: Python :: 3
|
|
Programming Language :: Python :: 3.7
|
|
Programming Language :: Python :: 3.8
|
|
Programming Language :: Python :: 3.9
|
|
Programming Language :: Python :: 3.10
|
|
Programming Language :: Python :: 3.11
|
|
Programming Language :: Python :: Implementation :: CPython
|
|
Programming Language :: Python :: Implementation :: PyPy
|
|
Topic :: Database :: Front-Ends
|
|
project_urls =
|
|
Documentation=https://docs.sqlalchemy.org
|
|
Issue Tracker=https://github.com/sqlalchemy/sqlalchemy/
|
|
|
|
[options]
|
|
packages = find:
|
|
include_package_data = True
|
|
python_requires = >=3.7
|
|
package_dir =
|
|
=lib
|
|
|
|
install_requires =
|
|
importlib-metadata;python_version<"3.8"
|
|
greenlet != 0.4.17;(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'))))))
|
|
typing-extensions >= 4.2.0
|
|
|
|
[options.extras_require]
|
|
asyncio =
|
|
greenlet!=0.4.17
|
|
mypy =
|
|
mypy >= 0.910
|
|
mssql = pyodbc
|
|
mssql_pymssql = pymssql
|
|
mssql_pyodbc = pyodbc
|
|
mysql =
|
|
mysqlclient>=1.4.0
|
|
mysql_connector =
|
|
mysql-connector-python
|
|
mariadb_connector =
|
|
mariadb>=1.0.1,!=1.1.2,!=1.1.5
|
|
oracle =
|
|
cx_oracle>=7
|
|
oracle_oracledb =
|
|
oracledb>=1.0.1
|
|
postgresql = psycopg2>=2.7
|
|
postgresql_pg8000 = pg8000>=1.29.1
|
|
postgresql_asyncpg =
|
|
%(asyncio)s
|
|
asyncpg
|
|
postgresql_psycopg2binary = psycopg2-binary
|
|
postgresql_psycopg2cffi = psycopg2cffi
|
|
postgresql_psycopg = psycopg>=3.0.7
|
|
pymysql =
|
|
pymysql
|
|
aiomysql =
|
|
%(asyncio)s
|
|
aiomysql
|
|
asyncmy =
|
|
%(asyncio)s
|
|
asyncmy>=0.2.3,!=0.2.4
|
|
aiosqlite =
|
|
%(asyncio)s
|
|
aiosqlite
|
|
typing_extensions!=3.10.0.1
|
|
sqlcipher =
|
|
sqlcipher3_binary
|
|
|
|
[egg_info]
|
|
tag_build = dev
|
|
|
|
[options.packages.find]
|
|
where = lib
|
|
|
|
# [tool:pytest]
|
|
# pytest settings moved to pyproject.toml
|
|
|
|
[upload]
|
|
sign = 1
|
|
identity = C4DAFEE1
|
|
|
|
[flake8]
|
|
show-source = false
|
|
enable-extensions = G
|
|
|
|
# E203 is due to https://github.com/PyCQA/pycodestyle/issues/373
|
|
ignore =
|
|
A003,
|
|
D,
|
|
E203,E305,E711,E712,E721,E722,E741,
|
|
N801,N802,N806,
|
|
RST304,RST303,RST299,RST399,
|
|
W503,W504
|
|
exclude = .venv,.git,.tox,dist,doc,*egg,build
|
|
import-order-style = google
|
|
application-import-names = sqlalchemy,test
|
|
per-file-ignores =
|
|
**/__init__.py:F401
|
|
test/*:FA100
|
|
test/ext/mypy/plain_files/*:F821,E501,FA100
|
|
test/ext/mypy/plugin_files/*:F821,E501,FA100
|
|
lib/sqlalchemy/events.py:F401
|
|
lib/sqlalchemy/schema.py:F401
|
|
lib/sqlalchemy/types.py:F401
|
|
lib/sqlalchemy/sql/expression.py:F401
|
|
lib/sqlalchemy/util/typing.py:F401
|
|
|
|
[sqla_testing]
|
|
requirement_cls = test.requirements:DefaultRequirements
|
|
profile_file = test/profiles.txt
|
|
|
|
# name of a "loopback" link set up on the oracle database.
|
|
# to create this, suppose your DB is scott/tiger@xe. You'd create it
|
|
# like:
|
|
# create public database link test_link connect to scott identified by tiger
|
|
# using 'xe';
|
|
oracle_db_link = test_link
|
|
# create public database link test_link2 connect to test_schema identified by tiger
|
|
# using 'xe';
|
|
oracle_db_link2 = test_link2
|
|
|
|
# host name of a postgres database that has the postgres_fdw extension.
|
|
# to create this run:
|
|
# CREATE EXTENSION postgres_fdw;
|
|
# GRANT USAGE ON FOREIGN DATA WRAPPER postgres_fdw TO public;
|
|
# this can be localhost to create a loopback foreign table
|
|
# postgres_test_db_link = localhost
|
|
|
|
[db]
|
|
default = sqlite:///:memory:
|
|
sqlite = sqlite:///:memory:
|
|
sqlite_numeric = sqlite+pysqlite_numeric:///:memory:
|
|
sqlite_dollar = sqlite+pysqlite_dollar:///:memory:
|
|
aiosqlite = sqlite+aiosqlite:///:memory:
|
|
sqlite_file = sqlite:///querytest.db
|
|
aiosqlite_file = sqlite+aiosqlite:///async_querytest.db
|
|
pysqlcipher_file = sqlite+pysqlcipher://:test@/querytest.db.enc
|
|
postgresql = postgresql+psycopg2://scott:tiger@127.0.0.1:5432/test
|
|
psycopg2 = postgresql+psycopg2://scott:tiger@127.0.0.1:5432/test
|
|
psycopg = postgresql+psycopg://scott:tiger@127.0.0.1:5432/test
|
|
psycopg_async = postgresql+psycopg_async://scott:tiger@127.0.0.1:5432/test
|
|
psycopg_async_fallback = postgresql+psycopg_async://scott:tiger@127.0.0.1:5432/test?async_fallback=true
|
|
asyncpg = postgresql+asyncpg://scott:tiger@127.0.0.1:5432/test
|
|
asyncpg_fallback = postgresql+asyncpg://scott:tiger@127.0.0.1:5432/test?async_fallback=true
|
|
pg8000 = postgresql+pg8000://scott:tiger@127.0.0.1:5432/test
|
|
postgresql_psycopg2cffi = postgresql+psycopg2cffi://scott:tiger@127.0.0.1:5432/test
|
|
mysql = mysql+mysqldb://scott:tiger@127.0.0.1:3306/test?charset=utf8mb4
|
|
pymysql = mysql+pymysql://scott:tiger@127.0.0.1:3306/test?charset=utf8mb4
|
|
aiomysql = mysql+aiomysql://scott:tiger@127.0.0.1:3306/test?charset=utf8mb4
|
|
aiomysql_fallback = mysql+aiomysql://scott:tiger@127.0.0.1:3306/test?charset=utf8mb4&async_fallback=true
|
|
asyncmy = mysql+asyncmy://scott:tiger@127.0.0.1:3306/test?charset=utf8mb4
|
|
asyncmy_fallback = mysql+asyncmy://scott:tiger@127.0.0.1:3306/test?charset=utf8mb4&async_fallback=true
|
|
mariadb = mariadb+mysqldb://scott:tiger@127.0.0.1:3306/test
|
|
mariadb_connector = mariadb+mariadbconnector://scott:tiger@127.0.0.1:3306/test
|
|
mssql = mssql+pyodbc://scott:tiger^5HHH@mssql2017:1433/test?driver=ODBC+Driver+13+for+SQL+Server
|
|
mssql_pymssql = mssql+pymssql://scott:tiger@ms_2008
|
|
docker_mssql = mssql+pyodbc://scott:tiger^5HHH@127.0.0.1:1433/test?driver=ODBC+Driver+17+for+SQL+Server
|
|
oracle = oracle+cx_oracle://scott:tiger@oracle18c/xe
|
|
cxoracle = oracle+cx_oracle://scott:tiger@oracle18c/xe
|
|
oracledb = oracle+oracledb://scott:tiger@oracle18c/xe
|
|
docker_oracle = oracle+cx_oracle://scott:tiger@127.0.0.1:1521/?service_name=XEPDB1
|