From: Federico Caselli Date: Fri, 28 Feb 2020 18:26:03 +0000 (+0100) Subject: Deprecate the databases packages X-Git-Tag: rel_1_4_0b1~495^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c155ae910bac2e31f5499b321c19d6b7c061deec;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git Deprecate the databases packages The databases package is an old alias to the dialect package, and its usage is now deprecated Change-Id: I5343a2d270ed5a8c654b9fe13dff40cdf54649ed --- diff --git a/lib/sqlalchemy/databases/__init__.py b/lib/sqlalchemy/databases/__init__.py index 77191819bb..3e636871b6 100644 --- a/lib/sqlalchemy/databases/__init__.py +++ b/lib/sqlalchemy/databases/__init__.py @@ -16,7 +16,7 @@ from ..dialects.oracle import base as oracle from ..dialects.postgresql import base as postgresql from ..dialects.sqlite import base as sqlite from ..dialects.sybase import base as sybase - +from ..util import warn_deprecated_20 postgres = postgresql @@ -30,3 +30,9 @@ __all__ = ( "oracle", "sybase", ) + + +warn_deprecated_20( + "The `database` package is deprecated and will be removed in v2.0 " + "of sqlalchemy. Use the `dialects` package instead." +) diff --git a/lib/sqlalchemy/testing/engines.py b/lib/sqlalchemy/testing/engines.py index 4f413915a5..76112b3a27 100644 --- a/lib/sqlalchemy/testing/engines.py +++ b/lib/sqlalchemy/testing/engines.py @@ -158,7 +158,7 @@ def close_open_connections(fn, *args, **kw): def all_dialects(exclude=None): - import sqlalchemy.databases as d + import sqlalchemy.dialects as d for name in d.__all__: # TEMPORARY @@ -167,7 +167,7 @@ def all_dialects(exclude=None): mod = getattr(d, name, None) if not mod: mod = getattr( - __import__("sqlalchemy.databases.%s" % name).databases, name + __import__("sqlalchemy.dialects.%s" % name).databases, name ) yield mod.dialect() diff --git a/test/dialect/mssql/test_query.py b/test/dialect/mssql/test_query.py index aa08502223..fc3352d4ef 100644 --- a/test/dialect/mssql/test_query.py +++ b/test/dialect/mssql/test_query.py @@ -16,7 +16,7 @@ from sqlalchemy import String from sqlalchemy import Table from sqlalchemy import testing from sqlalchemy import util -from sqlalchemy.databases import mssql +from sqlalchemy.dialects.mssql import base as mssql from sqlalchemy.sql import column from sqlalchemy.sql import table from sqlalchemy.testing import AssertsCompiledSQL diff --git a/test/dialect/mssql/test_reflection.py b/test/dialect/mssql/test_reflection.py index 120092e668..352bc637ee 100644 --- a/test/dialect/mssql/test_reflection.py +++ b/test/dialect/mssql/test_reflection.py @@ -13,7 +13,7 @@ from sqlalchemy import Table from sqlalchemy import testing from sqlalchemy import types from sqlalchemy import util -from sqlalchemy.databases import mssql +from sqlalchemy.dialects import mssql from sqlalchemy.dialects.mssql import base from sqlalchemy.dialects.mssql.information_schema import CoerceUnicode from sqlalchemy.dialects.mssql.information_schema import tables diff --git a/test/dialect/mssql/test_types.py b/test/dialect/mssql/test_types.py index c95ac6e6d9..ba7ed4667f 100644 --- a/test/dialect/mssql/test_types.py +++ b/test/dialect/mssql/test_types.py @@ -32,7 +32,7 @@ from sqlalchemy import types from sqlalchemy import Unicode from sqlalchemy import UnicodeText from sqlalchemy import util -from sqlalchemy.databases import mssql +from sqlalchemy.dialects.mssql import base as mssql from sqlalchemy.dialects.mssql import ROWVERSION from sqlalchemy.dialects.mssql import TIMESTAMP from sqlalchemy.dialects.mssql.base import _MSDate diff --git a/test/dialect/postgresql/test_reflection.py b/test/dialect/postgresql/test_reflection.py index 830a54eef0..6c0ba5fcee 100644 --- a/test/dialect/postgresql/test_reflection.py +++ b/test/dialect/postgresql/test_reflection.py @@ -397,10 +397,10 @@ class DomainReflectionTest(fixtures.TestBase, AssertsExecutionResults): ), "Expected reflected column to be nullable." def test_unknown_types(self): - from sqlalchemy.databases import postgresql + from sqlalchemy.dialects.postgresql import base - ischema_names = postgresql.PGDialect.ischema_names - postgresql.PGDialect.ischema_names = {} + ischema_names = base.PGDialect.ischema_names + base.PGDialect.ischema_names = {} try: m2 = MetaData(testing.db) assert_raises(exc.SAWarning, Table, "testtable", m2, autoload=True) @@ -412,7 +412,7 @@ class DomainReflectionTest(fixtures.TestBase, AssertsExecutionResults): assert t3.c.answer.type.__class__ == sa.types.NullType finally: - postgresql.PGDialect.ischema_names = ischema_names + base.PGDialect.ischema_names = ischema_names class ReflectionTest(fixtures.TestBase): diff --git a/test/dialect/test_firebird.py b/test/dialect/test_firebird.py index ad146bc77e..1b72da1bc6 100644 --- a/test/dialect/test_firebird.py +++ b/test/dialect/test_firebird.py @@ -17,7 +17,7 @@ from sqlalchemy import types as sqltypes from sqlalchemy import Unicode from sqlalchemy import update from sqlalchemy import VARCHAR -from sqlalchemy.databases import firebird +from sqlalchemy.dialects.firebird import base as firebird from sqlalchemy.exc import ProgrammingError from sqlalchemy.sql import column from sqlalchemy.sql import table diff --git a/test/dialect/test_sybase.py b/test/dialect/test_sybase.py index 38786ab4be..b49c8cfb36 100644 --- a/test/dialect/test_sybase.py +++ b/test/dialect/test_sybase.py @@ -1,7 +1,7 @@ from sqlalchemy import extract from sqlalchemy import select from sqlalchemy import sql -from sqlalchemy.databases import sybase +from sqlalchemy.dialects import sybase from sqlalchemy.testing import assert_raises_message from sqlalchemy.testing import AssertsCompiledSQL from sqlalchemy.testing import fixtures diff --git a/test/test_deprecations.py b/test/test_deprecations.py new file mode 100644 index 0000000000..a70eea1370 --- /dev/null +++ b/test/test_deprecations.py @@ -0,0 +1,12 @@ +from sqlalchemy.testing import expect_deprecated_20, fixtures +from sqlalchemy.util.compat import import_ + + +class DeprecationWarningsTest(fixtures.TestBase): + __backend__ = False + + def test_deprecate_databases(self): + with expect_deprecated_20( + "The `database` package is deprecated and will be removed in v2.0 " + ): + import_('sqlalchemy.databases')