Skip to content

Commit 39e59cd

Browse files
authored
Refactoring/403 drop support for turbodbc (#648)
* Drop support for turbodbc
1 parent 5c836a1 commit 39e59cd

File tree

18 files changed

+16
-392
lines changed

18 files changed

+16
-392
lines changed

.github/dependabot.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,3 @@ updates:
2424
- "*"
2525
exclude-patterns:
2626
- "sqlalchemy"
27-
- "turbodbc"
28-

README.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ ODBC-based dialects demand a thorough understanding of (Unix)ODBC, and the setup
5555

5656
.. warning::
5757

58-
The maintenance of Turbodbc & pyodbc support is currently paused, and it is planned to be phased out in future versions.
58+
The maintenance of pyodbc support is currently paused, and it is planned to be phased out in future versions.
5959

6060

6161
System Requirements

doc/changes/unreleased.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# Unreleased
22

3+
In this release, the ODBC-dialect Turbodbc was dropped.
4+
35
## Refactoring
46

57
- #621: Added `future=true` to `create_engine` to use the 2.0 API
@@ -14,3 +16,4 @@
1416
- #631: Updated `EXADialect.has_table` to search for both tables and views, fixed passing of schema=None to dialect methods, and reinstated `sqlalchemy` tests:
1517
- `ReturningGuardsTest` are used to indicate that the Exasol dialect, which does not natively support the [RETURNING clause](https://docs.sqlalchemy.org/en/20/glossary.html#term-RETURNING), is set up per the API specifications
1618
- `ComponentReflectionTest.test_not_existing_table` is used to indicate that specific `EXADialect` methods (i.e. `get_columns`) check to see if the requested table/view exists and if not, they will now toss a `NoSuchTableError` exception
19+
- #403: Dropped support for Turbodbc

doc/developer_guide/developer_guide.rst

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -141,11 +141,6 @@ Tests
141141
142142
nox -s "verify(connector='pyodbc')"
143143
144-
#. Run all tests with `turbodbc` connector
145-
146-
.. code-block::
147-
148-
nox -s "verify(connector='turbodbc')"
149144
150145
.. attention::
151146

doc/user_guide.rst

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,6 @@ Getting Started
6161
.. code-block:: shell
6262
6363
pip install "sqlalchemy-exasol[pydobc]"
64-
pip install "sqlalchemy-exasol[turbodbc]"
65-
6664
6765
Further Examples
6866
~~~~~~~~~~~~~~~~
@@ -120,7 +118,7 @@ Websocket-based Dialect
120118
121119
.. note::
122120
Validation with fingerprint is only supported in the Websocket-based dialect, and not
123-
the ODBC-based dialects (Pyodbc, Turbodbc).
121+
the ODBC-based dialect (Pyodbc).
124122

125123

126124
Pyodbc-based Dialect
@@ -142,26 +140,6 @@ Pyodbc-based Dialect
142140
with engine.connect() as con:
143141
result = con.execute(sql.text(query)).fetchall()
144142
145-
146-
Turbo-based Dialect
147-
---------------------
148-
149-
.. code-block:: python
150-
151-
from sqlalchemy import create_engine, sql
152-
153-
user = "sys"
154-
password = "exasol"
155-
host = "127.0.0.1"
156-
port = "8563
157-
schema = "my_schema
158-
159-
url = f"exa+turbodbc://{user}:{password}@{host}:{port}/{schema}?CONNECTIONLCALL=en_US.UTF-8&driver=EXAODBC"
160-
engine = create_engine(url)
161-
query = "select 42 from dual"
162-
with engine.connect() as con:
163-
result = con.execute(sql.text(query)).fetchall()
164-
165143
General Notes
166144
~~~~~~~~~~~~~
167145

noxconfig.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ class Config(BaseConfig):
5151
environment_name: str = "test"
5252
db_port: int = 8563
5353
bucketfs_port: int = 2580
54-
connectors: list[str] = ["pyodbc", "turbodbc", "websocket"]
54+
connectors: list[str] = ["pyodbc", "websocket"]
5555
plugins: list = [StartDB, StopDB]
5656

5757

poetry.lock

Lines changed: 1 addition & 18 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,10 @@ packaging = ">=21.3"
6464
pyexasol = ">=0.26.0,<2"
6565
sqlalchemy = "^2.0.0"
6666

67-
turbodbc = { version = "==4.5.4", optional = true }
6867
pyodbc = { version = ">=4.0.34,<6", optional = true }
6968

7069
[tool.poetry.extras]
7170
pyodbc = ["pyodbc"]
72-
turbodbc = ["turbodbc"]
7371

7472
[tool.poetry.group.dev.dependencies]
7573
nox = ">=2022.1.7"
@@ -85,7 +83,6 @@ exasol-toolbox = "^1.12.0"
8583

8684
[tool.poetry.plugins."sqlalchemy.dialects"]
8785
"exa.pyodbc" = "sqlalchemy_exasol.pyodbc:EXADialect_pyodbc"
88-
"exa.turbodbc" = "sqlalchemy_exasol.turbodbc:EXADialect_turbodbc"
8986
"exa.websocket" = "sqlalchemy_exasol.websocket:EXADialect_websocket"
9087

9188

@@ -94,9 +91,9 @@ addopts = "--tb native -v -r fxX"
9491
filterwarnings = [
9592
"error",
9693
"ignore::pytest.PytestUnraisableExceptionWarning",
97-
# this is used for turbodbc and pyodbc as historically we'd like to remove them.
94+
# this is used for pyodbc as historically we'd like to remove this.
9895
# thus far, it seems like this is not a strict requirement for the migration,
99-
# so we will ignore them.
96+
# so we will ignore this.
10097
"ignore::sqlalchemy_exasol.warnings.SqlaExasolDeprecationWarning"
10198
]
10299
markers = [

scripts/report.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ def skipped_test_from(obj: dict[str, Any]) -> Test:
4949

5050
def _create_parser() -> ArgumentParser:
5151
parser = ArgumentParser(formatter_class=ArgumentDefaultsHelpFormatter)
52-
parser.add_argument("connector", choices=["pyodbc", "turbodbc"])
52+
parser.add_argument("connector", choices=["pyodbc"])
5353
parser.add_argument("test_results")
5454
parser.add_argument("-o", "--output", type=FileType("w"), default="-")
5555
parser.add_argument("-f", "--format", choices=["human", "csv"], default="csv")

setup.cfg

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
[db]
22
exasol-pyodbc=exa+pyodbc://sys:exasol@localhost:8563/TEST?CONNECTIONCALL=en_US.UTF-8&DRIVER=EXAODBC&SSLCertificate=SSL_VERIFY_NONE
3-
exasol-turbodbc=exa+turbodbc://sys:exasol@localhost:8563/TEST?CONNECTIONCALL=en_US.UTF-8&DRIVER=EXAODBC&SSLCertificate=SSL_VERIFY_NONE
43
exasol-websocket=exa+websocket://sys:exasol@localhost:8563/TEST?CONNECTIONCALL=en_US.UTF-8&DRIVER=EXAODBC&SSLCertificate=SSL_VERIFY_NONE
54

65
[sqla_testing]
76
requirement_cls=sqlalchemy_exasol.requirements:Requirements
87
profile_file=.profiles.txt
9-

0 commit comments

Comments
 (0)