[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_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 :: 3
    Programming Language :: Python :: 3.7
    Programming Language :: Python :: 3.8
    Programming Language :: Python :: 3.9
    Programming Language :: Python :: 3.10
    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

[options.extras_require]
asyncio =
    greenlet!=0.4.17
mypy =
    mypy >= 0.910
    sqlalchemy2-stubs
mssql = pyodbc
mssql_pymssql = pymssql
mssql_pyodbc = pyodbc
mysql =
    mysqlclient>=1.4.0
mysql_connector =
    mysql-connector-python
mariadb_connector =
    mariadb>=1.0.1
oracle =
    cx_oracle>=7
postgresql = psycopg2>=2.7
postgresql_pg8000 = pg8000>=1.16.6
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
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
    lib/sqlalchemy/events.py:F401
    lib/sqlalchemy/schema.py:F401
    lib/sqlalchemy/types.py:F401
    lib/sqlalchemy/sql/expression.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

# 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+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
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+cx_oracle://scott:tiger@127.0.0.1:1521
oracle8 = oracle+cx_oracle://scott:tiger@127.0.0.1:1521/?use_ansi=0
