mirror of
https://github.com/sqlalchemy/sqlalchemy.git
synced 2026-05-16 05:37:16 -04:00
ff1ab665cb
Starting to set up practices and conventions to get the library typed. Key goals for typing are: 1. whole library can pass mypy without any strict turned on. 2. we can incrementally turn on some strict flags on a per-package/ module basis, as here we turn on more strictness for sqlalchemy.util, exc, and log 3. mypy ORM plugin tests work fully without sqlalchemy2-stubs installed 4. public facing methods all have return types, major parameter signatures filled in also 5. Foundational elements like util etc. are typed enough so that we can use them in fully typed internals higher up the stack. Conventions set up here: 1. we can use lots of config in setup.cfg to limit where mypy is throwing errors and how detailed it should be in different packages / modules. We can use this to push up gerrits that will pass tests fully without everything being typed. 2. a new tox target pep484 is added. this links to a new jenkins pep484 job that works across all projects (alembic, dogpile, etc.) We've worked around some mypy bugs that will likely be around for awhile, and also set up some core practices for how to deal with certain things such as public_factory modules (mypy won't accept a module from a callable at all, so need to use simple type checking conditionals). References: #6810 Change-Id: I80be58029896a29fd9f491aa3215422a8b705e12
163 lines
5.3 KiB
INI
163 lines
5.3 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_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
|