mirror of
https://github.com/sqlalchemy/sqlalchemy.git
synced 2026-05-14 12:47:22 -04:00
db08a69948
Rearchitected the schema reflection API to allow some dialects to make use of high performing batch queries to reflect the schemas of many tables at once using much fewer queries. The new performance features are targeted first at the PostgreSQL and Oracle backends, and may be applied to any dialect that makes use of SELECT queries against system catalog tables to reflect tables (currently this omits the MySQL and SQLite dialects which instead make use of parsing the "CREATE TABLE" statement, however these dialects do not have a pre-existing performance issue with reflection. MS SQL Server is still a TODO). The new API is backwards compatible with the previous system, and should require no changes to third party dialects to retain compatibility; third party dialects can also opt into the new system by implementing batched queries for schema reflection. Along with this change is an updated reflection API that is fully :pep:`484` typed, features many new methods and some changes. Fixes: #4379 Change-Id: I897ec09843543aa7012bcdce758792ed3d415d08
64 lines
1.6 KiB
TOML
64 lines
1.6 KiB
TOML
[build-system]
|
|
build-backend = "setuptools.build_meta"
|
|
requires = [
|
|
"setuptools>=47",
|
|
"wheel>=0.34",
|
|
"cython>=0.29.24; python_implementation == 'CPython'", # Skip cython when using pypy
|
|
]
|
|
|
|
[tool.black]
|
|
line-length = 79
|
|
target-version = ['py37']
|
|
|
|
[tool.zimports]
|
|
black-line-length = 79
|
|
|
|
[tool.slotscheck]
|
|
exclude-modules = '^sqlalchemy\.testing'
|
|
|
|
|
|
[tool.pytest.ini_options]
|
|
addopts = "--tb native -v -r sfxX --maxfail=250 -p warnings -p logging --strict-markers"
|
|
norecursedirs = "examples build doc lib"
|
|
python_files = "test_*.py"
|
|
minversion = "6.2"
|
|
filterwarnings = [
|
|
# NOTE: additional SQLAlchemy specific filters in
|
|
# sqlalchemy/testing/warnings.py. SQLAlchemy modules cannot be named
|
|
# here as pytest loads them immediately, which breaks coverage as well
|
|
# as sys.path adjustments in conftest.py
|
|
"error::DeprecationWarning:test",
|
|
"error::DeprecationWarning:sqlalchemy"
|
|
]
|
|
markers = [
|
|
"memory_intensive: memory / CPU intensive suite tests",
|
|
"mypy: mypy integration / plugin tests",
|
|
"timing_intensive: time-oriented tests that are sensitive to race conditions",
|
|
"backend: tests that should run on all backends; typically dialect-sensitive",
|
|
"sparse_backend: tests that should run on multiple backends, not necessarily all",
|
|
]
|
|
|
|
[tool.pyright]
|
|
|
|
reportPrivateUsage = "none"
|
|
reportUnusedClass = "none"
|
|
reportUnusedFunction = "none"
|
|
reportTypedDictNotRequiredAccess = "warning"
|
|
|
|
[tool.mypy]
|
|
mypy_path = "./lib/"
|
|
show_error_codes = true
|
|
incremental = true
|
|
|
|
|
|
[[tool.mypy.overrides]]
|
|
|
|
module = [
|
|
"sqlalchemy.*"
|
|
]
|
|
|
|
warn_unused_ignores = false
|
|
strict = true
|
|
|
|
|