Files
sqlalchemy/setup.cfg
T
Mike Bayer 4476dca007 Repair pysqlcipher and use sqlcipher3
The ``pysqlcipher`` dialect now imports the ``sqlcipher3`` module
for Python 3 by default.    Regressions have been repaired such that
the connection routine was not working.

To better support the post-connection steps of the pysqlcipher
dialect, a new hook Dialect.on_connect_url() is added, which
supersedes Dialect.on_connect() and is passed the URL object.
The dialect now pulls the passphrase and other cipher args
from the URL directly without including them in the
"connect" args.  This will allow any user-defined extensibility
to connecting to work as it would for other dialects.

The commit also builds upon the extended routines in
sqlite/provisioning.py to better support running tests against
multiple simultaneous SQLite database files.  Additionally enables
backend for test_sqlite which was skipping everything
for aiosqlite too, fortunately everything there is passing.

Fixes: #5848
Change-Id: I43f53ebc62298a84a4abe149e1eb699a027b7915
2021-03-24 19:04:30 -04:00

164 lines
5.2 KiB
INI

[metadata]
name = SQLAlchemy
# version comes from setup.py; setuptools
# can't read the "attr:" here without importing
# until version 47.0.0 which is too recent
description = Database Abstraction Library
long_description = file: README.rst
long_description_content_type = text/x-rst
url = http://www.sqlalchemy.org
author = Mike Bayer
author_email = mike_mp@zzzcomputing.com
license = MIT
license_file = 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 :: 2
Programming Language :: Python :: 2.7
Programming Language :: Python :: 3
Programming Language :: Python :: 3.6
Programming Language :: Python :: 3.7
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
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:
python_requires = >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*
package_dir =
=lib
install_requires =
importlib-metadata;python_version<"3.8"
greenlet != 0.4.17;python_version>="3"
[options.extras_require]
asyncio =
greenlet!=0.4.17;python_version>="3"
mypy =
mypy >= 0.800;python_version>="3"
sqlalchemy2-stubs
mssql = pyodbc
mssql_pymssql = pymssql
mssql_pyodbc = pyodbc
mysql =
mysqlclient>=1.4.0,<2;python_version<"3"
mysqlclient>=1.4.0;python_version>="3"
mysql_connector =
mysqlconnector
mariadb_connector =
mariadb>=1.0.1;python_version>="3"
oracle =
cx_oracle>=7,<8;python_version<"3"
cx_oracle>=7;python_version>="3"
postgresql = psycopg2>=2.7
postgresql_pg8000 = pg8000>=1.16.6
postgresql_asyncpg =
%(asyncio)s
asyncpg;python_version>="3"
postgresql_psycopg2binary = psycopg2-binary
postgresql_psycopg2cffi = psycopg2cffi
pymysql =
pymysql;python_version>="3"
pymysql<1;python_version<"3"
aiomysql =
%(asyncio)s
aiomysql;python_version>="3"
aiosqlite =
%(asyncio)s
aiosqlite;python_version>="3"
sqlcipher =
sqlcipher3_binary;python_version>="3"
[egg_info]
tag_build = dev
[options.packages.find]
where = lib
[tool:pytest]
addopts = --tb native -v -r sfxX --maxfail=25 -p no:warnings -p no:logging
python_files = test/*test_*.py
[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
lib/sqlalchemy/events.py:F401
lib/sqlalchemy/schema.py:F401
lib/sqlalchemy/types.py:F401
lib/sqlalchemy/sql/expression.py:F401
[mypy]
# min mypy version 0.800
plugins = sqlalchemy.ext.mypy.plugin
[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
# 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:
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://scott:tiger@127.0.0.1:5432/test
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://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
mariadb = mariadb://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+pymssql://scott:tiger^5HHH@127.0.0.1:1433/test
oracle = oracle://scott:tiger@127.0.0.1:1521
oracle8 = oracle://scott:tiger@127.0.0.1:1521/?use_ansi=0
firebird = firebird://sysdba:masterkey@localhost//Users/classic/foo.fdb