Skip to content

Commit 919d59a

Browse files
authored
Source odbc provider to use airflow.sdk.configuration.conf (#59995)
* Migrate odbc provider to use airflow.sdk.configuration.conf * Add common.compat optional dependency to odbc provider * Move apache-airflow-providers-common-compat from optional to required dependencies with version constraint >=1.10.1. This ensures the compatibility layer is always available when using the ODBC provider.
1 parent c339157 commit 919d59a

File tree

3 files changed

+19
-15
lines changed

3 files changed

+19
-15
lines changed

providers/odbc/docs/index.rst

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -97,14 +97,15 @@ Requirements
9797

9898
The minimum Apache Airflow version supported by this provider distribution is ``2.11.0``.
9999

100-
======================================= =====================================
101-
PIP package Version required
102-
======================================= =====================================
103-
``apache-airflow`` ``>=2.11.0``
104-
``apache-airflow-providers-common-sql`` ``>=1.20.0``
105-
``pyodbc`` ``>=5.0.0; python_version < "3.13"``
106-
``pyodbc`` ``>=5.2.0; python_version >= "3.13"``
107-
======================================= =====================================
100+
========================================== =====================================
101+
PIP package Version required
102+
========================================== =====================================
103+
``apache-airflow`` ``>=2.11.0``
104+
``apache-airflow-providers-common-compat`` ``>=1.10.1``
105+
``apache-airflow-providers-common-sql`` ``>=1.20.0``
106+
``pyodbc`` ``>=5.0.0; python_version < "3.13"``
107+
``pyodbc`` ``>=5.2.0; python_version >= "3.13"``
108+
========================================== =====================================
108109

109110
Cross provider package dependencies
110111
-----------------------------------
@@ -116,14 +117,15 @@ You can install such cross-provider dependencies when installing from PyPI. For
116117

117118
.. code-block:: bash
118119
119-
pip install apache-airflow-providers-odbc[common.sql]
120+
pip install apache-airflow-providers-odbc[common.compat]
120121
121122
122-
============================================================================================================ ==============
123-
Dependent package Extra
124-
============================================================================================================ ==============
125-
`apache-airflow-providers-common-sql <https://airflow.apache.org/docs/apache-airflow-providers-common-sql>`_ ``common.sql``
126-
============================================================================================================ ==============
123+
================================================================================================================== =================
124+
Dependent package Extra
125+
================================================================================================================== =================
126+
`apache-airflow-providers-common-compat <https://airflow.apache.org/docs/apache-airflow-providers-common-compat>`_ ``common.compat``
127+
`apache-airflow-providers-common-sql <https://airflow.apache.org/docs/apache-airflow-providers-common-sql>`_ ``common.sql``
128+
================================================================================================================== =================
127129

128130
Downloading official packages
129131
-----------------------------

providers/odbc/pyproject.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ requires-python = ">=3.10"
5959
# After you modify the dependencies, and rebuild your Breeze CI image with ``breeze ci-image build``
6060
dependencies = [
6161
"apache-airflow>=2.11.0",
62+
"apache-airflow-providers-common-compat>=1.10.1", # use next version
6263
"apache-airflow-providers-common-sql>=1.20.0",
6364
"pyodbc>=5.0.0; python_version < '3.13'",
6465
"pyodbc>=5.2.0; python_version >= '3.13'",
@@ -69,6 +70,7 @@ dev = [
6970
"apache-airflow",
7071
"apache-airflow-task-sdk",
7172
"apache-airflow-devel-common",
73+
"apache-airflow-providers-common-compat",
7274
"apache-airflow-providers-common-sql",
7375
# Additional devel dependencies (do not remove this line and add extra development dependencies)
7476
]

providers/odbc/src/airflow/providers/odbc/hooks/odbc.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ def sqlalchemy_scheme(self) -> str:
9797
def driver(self) -> str | None:
9898
"""Driver from init param if given; else try to find one in connection extra."""
9999
extra_driver = self.connection_extra_lower.get("driver")
100-
from airflow.configuration import conf
100+
from airflow.providers.common.compat.sdk import conf
101101

102102
if extra_driver and conf.getboolean("providers.odbc", "allow_driver_in_extra", fallback=False):
103103
self._driver = extra_driver

0 commit comments

Comments
 (0)