Skip to content

Commit 10ab3d7

Browse files
authored
fix: Use pydantic compat validate where v2 was expected (#51)
* fix: Use pydantic compat validate where v2 was expected - Updated the function name from `_model_validate_compat` to `model_validate_compat` for consistency and clarity. - Adjusted imports in `loader.py` and `sql_execution.py` to reflect the new function name. - Ensured all references to the function are updated accordingly in the codebase. * Use Exception instead of BaseException
1 parent dfeedd6 commit 10ab3d7

3 files changed

Lines changed: 10 additions & 9 deletions

File tree

deepnote_core/config/loader.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
import yaml
1616

17-
from ..pydantic_compat_helpers import _model_validate_compat
17+
from ..pydantic_compat_helpers import model_validate_compat
1818
from .installation_detector import InstallMethod, get_installation_method
1919
from .models import DeepnoteConfig
2020
from .xdg_paths import XDGPaths
@@ -108,7 +108,7 @@ def load_with_args(self, args: argparse.Namespace) -> DeepnoteConfig:
108108

109109
# 5) Expand paths and installation paths prior to model validation
110110
self._expand_path_fields(merged)
111-
cfg = _model_validate_compat(DeepnoteConfig, merged)
111+
cfg = model_validate_compat(DeepnoteConfig, merged)
112112

113113
# 6) Normalize/expand any defaulted path values in the final model
114114
self._expand_config_paths(cfg)
@@ -131,7 +131,7 @@ def load_config(self) -> DeepnoteConfig:
131131
_deep_merge(merged, file_dict)
132132
_deep_merge(merged, env_overlay)
133133
self._expand_path_fields(merged)
134-
cfg = _model_validate_compat(DeepnoteConfig, merged)
134+
cfg = model_validate_compat(DeepnoteConfig, merged)
135135
self._expand_config_paths(cfg)
136136
self._apply_installation_defaults(cfg)
137137
return cfg

deepnote_core/pydantic_compat_helpers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ def _get_description_compat(field: Any) -> str:
4545
return getattr(field_info, "description", "") if field_info else ""
4646

4747

48-
def _model_validate_compat(model_cls, data: Mapping[str, Any]) -> Any:
48+
def model_validate_compat(model_cls, data: Mapping[str, Any]) -> Any:
4949
"""Validate using Pydantic v2 if available, else fall back to v1.
5050
5151
Pydantic v2 exposes `model_validate`, while v1 uses `parse_obj` on the class.

deepnote_toolkit/sql/sql_execution.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,11 @@
1616
from google.api_core.client_info import ClientInfo
1717
from google.cloud import bigquery
1818
from packaging.version import parse as parse_version
19-
from pydantic import BaseModel, ValidationError
19+
from pydantic import BaseModel
2020
from sqlalchemy.engine import URL, create_engine, make_url
2121
from sqlalchemy.exc import ResourceClosedError
2222

23+
from deepnote_core.pydantic_compat_helpers import model_validate_compat
2324
from deepnote_toolkit import env as dnenv
2425
from deepnote_toolkit.create_ssh_tunnel import create_ssh_tunnel
2526
from deepnote_toolkit.get_webapp_url import (
@@ -281,7 +282,7 @@ def _get_federated_auth_credentials(
281282

282283
response.raise_for_status()
283284

284-
data = FederatedAuthResponseData.model_validate(response.json())
285+
data = model_validate_compat(FederatedAuthResponseData, response.json())
285286

286287
return data
287288

@@ -310,10 +311,10 @@ def _handle_federated_auth_params(sql_alchemy_dict: dict[str, Any]) -> None:
310311
return
311312

312313
try:
313-
federated_auth_params = IntegrationFederatedAuthParams.model_validate(
314-
sql_alchemy_dict["federatedAuthParams"]
314+
federated_auth_params = model_validate_compat(
315+
IntegrationFederatedAuthParams, sql_alchemy_dict["federatedAuthParams"]
315316
)
316-
except ValidationError:
317+
except Exception:
317318
logger.exception("Invalid federated auth params, try updating toolkit version")
318319
return
319320

0 commit comments

Comments
 (0)