Skip to content

Commit 61f3fb7

Browse files
Bump python sdk version (#827)
1 parent 5954eac commit 61f3fb7

File tree

13 files changed

+254
-316
lines changed

13 files changed

+254
-316
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,14 @@
22

33
### Features
44

5+
- Support databricks OAuth M2M auth type. Updated OAuth readme doc with instructions.([827](https://github.com/databricks/dbt-databricks/pull/827))
6+
57
- Introduced use_materialization_v2 flag for gating materialization revamps. ([844](https://github.com/databricks/dbt-databricks/pull/844))
68

79
### Under the Hood
810

11+
- Update pinned python SDK version from 0.17.0 to 0.41.0. ([827](https://github.com/databricks/dbt-databricks/pull/827))
12+
913
- Implement new constraint logic for use_materialization_v2 flag ([846](https://github.com/databricks/dbt-databricks/pull/846/files)), ([876](https://github.com/databricks/dbt-databricks/pull/876))
1014

1115
## dbt-databricks 1.9.5 (TBD)

dbt/adapters/databricks/api_client.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,7 @@
1313

1414
from dbt.adapters.databricks import utils
1515
from dbt.adapters.databricks.__version__ import version
16-
from dbt.adapters.databricks.auth import BearerAuth
17-
from dbt.adapters.databricks.credentials import DatabricksCredentials
16+
from dbt.adapters.databricks.credentials import BearerAuth, DatabricksCredentials
1817
from dbt.adapters.databricks.logging import logger
1918

2019
DEFAULT_POLLING_INTERVAL = 10
@@ -557,8 +556,7 @@ def create(
557556
http_headers = credentials.get_all_http_headers(
558557
connection_parameters.pop("http_headers", {})
559558
)
560-
credentials_provider = credentials.authenticate(None)
561-
header_factory = credentials_provider(None) # type: ignore
559+
header_factory = credentials.authenticate().credentials_provider()
562560
session.auth = BearerAuth(header_factory)
563561

564562
session.headers.update({"User-Agent": user_agent, **http_headers})

dbt/adapters/databricks/auth.py

Lines changed: 0 additions & 100 deletions
This file was deleted.

dbt/adapters/databricks/connections.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,10 @@
3232
)
3333
from dbt.adapters.databricks.__version__ import version as __version__
3434
from dbt.adapters.databricks.api_client import DatabricksApiClient
35-
from dbt.adapters.databricks.credentials import DatabricksCredentials, TCredentialProvider
35+
from dbt.adapters.databricks.credentials import (
36+
DatabricksCredentialManager,
37+
DatabricksCredentials,
38+
)
3639
from dbt.adapters.databricks.events.connection_events import (
3740
ConnectionAcquire,
3841
ConnectionCancel,
@@ -373,7 +376,7 @@ def _reset_handle(self, open: Callable[[Connection], Connection]) -> None:
373376

374377
class DatabricksConnectionManager(SparkConnectionManager):
375378
TYPE: str = "databricks"
376-
credentials_provider: Optional[TCredentialProvider] = None
379+
credentials_manager: Optional[DatabricksCredentialManager] = None
377380
_user_agent = f"dbt-databricks/{__version__}"
378381

379382
def __init__(self, profile: AdapterRequiredConfig, mp_context: SpawnContext):
@@ -634,7 +637,7 @@ def open(cls, connection: Connection) -> Connection:
634637
timeout = creds.connect_timeout
635638

636639
# gotta keep this so we don't prompt users many times
637-
cls.credentials_provider = creds.authenticate(cls.credentials_provider)
640+
cls.credentials_manager = creds.authenticate()
638641

639642
invocation_env = creds.get_invocation_env()
640643
user_agent_entry = cls._user_agent
@@ -652,12 +655,13 @@ def open(cls, connection: Connection) -> Connection:
652655
http_path = databricks_connection.http_path
653656

654657
def connect() -> DatabricksSQLConnectionWrapper:
658+
assert cls.credentials_manager is not None
655659
try:
656660
# TODO: what is the error when a user specifies a catalog they don't have access to
657661
conn = dbsql.connect(
658662
server_hostname=creds.host,
659663
http_path=http_path,
660-
credentials_provider=cls.credentials_provider,
664+
credentials_provider=cls.credentials_manager.credentials_provider,
661665
http_headers=http_headers if http_headers else None,
662666
session_configuration=creds.session_properties,
663667
catalog=creds.database,
@@ -708,7 +712,7 @@ def _open(cls, connection: Connection, query_header_context: Any = None) -> Conn
708712
timeout = creds.connect_timeout
709713

710714
# gotta keep this so we don't prompt users many times
711-
cls.credentials_provider = creds.authenticate(cls.credentials_provider)
715+
cls.credentials_manager = creds.authenticate()
712716

713717
invocation_env = creds.get_invocation_env()
714718
user_agent_entry = cls._user_agent

dbt/adapters/databricks/constraints.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from abc import ABC, abstractmethod
2-
from typing import Any, ClassVar, Optional, Type, TypeVar
2+
from typing import Any, ClassVar, Optional, TypeVar
33

44
from dbt_common.contracts.constraints import (
55
ColumnLevelConstraint,
@@ -32,7 +32,7 @@ class TypedConstraint(ModelLevelConstraint, ABC):
3232
str_type: ClassVar[str]
3333

3434
@classmethod
35-
def __post_deserialize__(cls: Type[T], obj: T) -> T:
35+
def __post_deserialize__(cls: type[T], obj: T) -> T:
3636
assert obj.type == cls.str_type, "Mismatched constraint type"
3737
obj._validate()
3838
return obj

0 commit comments

Comments
 (0)