Skip to content

Commit a0a77e6

Browse files
committed
SA20: Restore backward-compatibility with SQLAlchemy 1.3
Resolve import of `declarative_base`. For SA13, it is in `sqlalchemy.ext.declarative`, while it is in `sqlalchemy.orm` on more recent versions of SA.
1 parent 3f889af commit a0a77e6

14 files changed

+68
-14
lines changed

docs/by-example/sqlalchemy/advanced-querying.rst

+5-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,11 @@ Introduction
2121
Import the relevant symbols:
2222

2323
>>> import sqlalchemy as sa
24-
>>> from sqlalchemy.orm import declarative_base, sessionmaker
24+
>>> from sqlalchemy.orm import sessionmaker
25+
>>> try:
26+
... from sqlalchemy.orm import declarative_base
27+
... except ImportError:
28+
... from sqlalchemy.ext.declarative import declarative_base
2529
>>> from uuid import uuid4
2630

2731
Establish a connection to the database, see also :ref:`sa:engines_toplevel`

docs/by-example/sqlalchemy/crud.rst

+5-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,11 @@ Import the relevant symbols:
2727
>>> import sqlalchemy as sa
2828
>>> from datetime import datetime
2929
>>> from sqlalchemy import delete, func, text
30-
>>> from sqlalchemy.orm import declarative_base, sessionmaker
30+
>>> from sqlalchemy.orm import sessionmaker
31+
>>> try:
32+
... from sqlalchemy.orm import declarative_base
33+
... except ImportError:
34+
... from sqlalchemy.ext.declarative import declarative_base
3135
>>> from crate.client.sqlalchemy.types import ObjectArray
3236

3337
Establish a connection to the database:

docs/by-example/sqlalchemy/getting-started.rst

+5-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,11 @@ Introduction
2828
Import the relevant symbols:
2929

3030
>>> import sqlalchemy as sa
31-
>>> from sqlalchemy.orm import declarative_base, sessionmaker
31+
>>> from sqlalchemy.orm import sessionmaker
32+
>>> try:
33+
... from sqlalchemy.orm import declarative_base
34+
... except ImportError:
35+
... from sqlalchemy.ext.declarative import declarative_base
3236

3337
Establish a connection to the database, see also :ref:`sa:engines_toplevel`
3438
and :ref:`connect`:

docs/by-example/sqlalchemy/working-with-types.rst

+5-1
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,12 @@ Import the relevant symbols:
2626
>>> from datetime import datetime
2727
>>> from geojson import Point, Polygon
2828
>>> from sqlalchemy import delete, func, text
29-
>>> from sqlalchemy.orm import declarative_base, sessionmaker
29+
>>> from sqlalchemy.orm import sessionmaker
3030
>>> from sqlalchemy.sql import operators
31+
>>> try:
32+
... from sqlalchemy.orm import declarative_base
33+
... except ImportError:
34+
... from sqlalchemy.ext.declarative import declarative_base
3135
>>> from uuid import uuid4
3236
>>> from crate.client.sqlalchemy.types import Object, ObjectArray
3337
>>> from crate.client.sqlalchemy.types import Geopoint, Geoshape

src/crate/client/sqlalchemy/tests/array_test.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,11 @@
2525

2626
import sqlalchemy as sa
2727
from sqlalchemy.sql import operators
28-
from sqlalchemy.orm import declarative_base, Session
28+
from sqlalchemy.orm import Session
29+
try:
30+
from sqlalchemy.orm import declarative_base
31+
except ImportError:
32+
from sqlalchemy.ext.declarative import declarative_base
2933

3034
from crate.client.cursor import Cursor
3135

src/crate/client/sqlalchemy/tests/bulk_test.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,11 @@
2323
from unittest.mock import patch, MagicMock
2424

2525
import sqlalchemy as sa
26-
from sqlalchemy.orm import declarative_base, Session
26+
from sqlalchemy.orm import Session
27+
try:
28+
from sqlalchemy.orm import declarative_base
29+
except ImportError:
30+
from sqlalchemy.ext.declarative import declarative_base
2731

2832
from crate.client.cursor import Cursor
2933

src/crate/client/sqlalchemy/tests/create_table_test.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,10 @@
2020
# software solely pursuant to the terms of the relevant commercial agreement.
2121

2222
import sqlalchemy as sa
23-
from sqlalchemy.orm import declarative_base
23+
try:
24+
from sqlalchemy.orm import declarative_base
25+
except ImportError:
26+
from sqlalchemy.ext.declarative import declarative_base
2427

2528
from crate.client.sqlalchemy.types import Object, ObjectArray, Geopoint
2629
from crate.client.cursor import Cursor

src/crate/client/sqlalchemy/tests/datetime_test.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,11 @@
2626

2727
import sqlalchemy as sa
2828
from sqlalchemy.exc import DBAPIError
29-
from sqlalchemy.orm import declarative_base, Session
29+
from sqlalchemy.orm import Session
30+
try:
31+
from sqlalchemy.orm import declarative_base
32+
except ImportError:
33+
from sqlalchemy.ext.declarative import declarative_base
3034

3135
from crate.client.cursor import Cursor
3236

src/crate/client/sqlalchemy/tests/dialect_test.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,11 @@
2828
from crate.client.cursor import Cursor
2929
from crate.client.sqlalchemy.types import Object
3030
from sqlalchemy import inspect
31-
from sqlalchemy.orm import declarative_base, Session
31+
from sqlalchemy.orm import Session
32+
try:
33+
from sqlalchemy.orm import declarative_base
34+
except ImportError:
35+
from sqlalchemy.ext.declarative import declarative_base
3236
from sqlalchemy.testing import eq_, in_
3337

3438
FakeCursor = MagicMock(name='FakeCursor', spec=Cursor)

src/crate/client/sqlalchemy/tests/dict_test.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,11 @@
2525

2626
import sqlalchemy as sa
2727
from sqlalchemy.sql import select
28-
from sqlalchemy.orm import declarative_base, Session
28+
from sqlalchemy.orm import Session
29+
try:
30+
from sqlalchemy.orm import declarative_base
31+
except ImportError:
32+
from sqlalchemy.ext.declarative import declarative_base
2933

3034
from crate.client.sqlalchemy.types import Craty, ObjectArray
3135
from crate.client.cursor import Cursor

src/crate/client/sqlalchemy/tests/function_test.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,11 @@
2222
from unittest import TestCase
2323

2424
import sqlalchemy as sa
25-
from sqlalchemy.orm import declarative_base
2625
from sqlalchemy.sql.sqltypes import TIMESTAMP
26+
try:
27+
from sqlalchemy.orm import declarative_base
28+
except ImportError:
29+
from sqlalchemy.ext.declarative import declarative_base
2730

2831

2932
class SqlAlchemyFunctionTest(TestCase):

src/crate/client/sqlalchemy/tests/insert_from_select_test.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,12 @@
2424
from unittest.mock import patch, MagicMock
2525

2626
import sqlalchemy as sa
27-
from sqlalchemy.orm import declarative_base, Session
2827
from sqlalchemy import select, insert
28+
from sqlalchemy.orm import Session
29+
try:
30+
from sqlalchemy.orm import declarative_base
31+
except ImportError:
32+
from sqlalchemy.ext.declarative import declarative_base
2933

3034
from crate.client.cursor import Cursor
3135

src/crate/client/sqlalchemy/tests/match_test.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,11 @@
2424
from unittest.mock import MagicMock
2525

2626
import sqlalchemy as sa
27-
from sqlalchemy.orm import declarative_base, Session
27+
from sqlalchemy.orm import Session
28+
try:
29+
from sqlalchemy.orm import declarative_base
30+
except ImportError:
31+
from sqlalchemy.ext.declarative import declarative_base
2832

2933
from crate.client.sqlalchemy.types import Craty
3034
from crate.client.sqlalchemy.predicates import match

src/crate/client/sqlalchemy/tests/update_test.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,11 @@
2626
from crate.client.sqlalchemy.types import Object
2727

2828
import sqlalchemy as sa
29-
from sqlalchemy.orm import declarative_base, Session
29+
from sqlalchemy.orm import Session
30+
try:
31+
from sqlalchemy.orm import declarative_base
32+
except ImportError:
33+
from sqlalchemy.ext.declarative import declarative_base
3034

3135
from crate.client.cursor import Cursor
3236

0 commit comments

Comments
 (0)