Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions deepnote_core/config/loader.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

import yaml

from ..pydantic_compat_helpers import _model_validate_compat
from ..pydantic_compat_helpers import model_validate_compat
from .installation_detector import InstallMethod, get_installation_method
from .models import DeepnoteConfig
from .xdg_paths import XDGPaths
Expand Down Expand Up @@ -108,7 +108,7 @@ def load_with_args(self, args: argparse.Namespace) -> DeepnoteConfig:

# 5) Expand paths and installation paths prior to model validation
self._expand_path_fields(merged)
cfg = _model_validate_compat(DeepnoteConfig, merged)
cfg = model_validate_compat(DeepnoteConfig, merged)

# 6) Normalize/expand any defaulted path values in the final model
self._expand_config_paths(cfg)
Expand All @@ -131,7 +131,7 @@ def load_config(self) -> DeepnoteConfig:
_deep_merge(merged, file_dict)
_deep_merge(merged, env_overlay)
self._expand_path_fields(merged)
cfg = _model_validate_compat(DeepnoteConfig, merged)
cfg = model_validate_compat(DeepnoteConfig, merged)
self._expand_config_paths(cfg)
self._apply_installation_defaults(cfg)
return cfg
Expand Down
2 changes: 1 addition & 1 deletion deepnote_core/pydantic_compat_helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ def _get_description_compat(field: Any) -> str:
return getattr(field_info, "description", "") if field_info else ""


def _model_validate_compat(model_cls, data: Mapping[str, Any]) -> Any:
def model_validate_compat(model_cls, data: Mapping[str, Any]) -> Any:
"""Validate using Pydantic v2 if available, else fall back to v1.

Pydantic v2 exposes `model_validate`, while v1 uses `parse_obj` on the class.
Expand Down
11 changes: 6 additions & 5 deletions deepnote_toolkit/sql/sql_execution.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,11 @@
from google.api_core.client_info import ClientInfo
from google.cloud import bigquery
from packaging.version import parse as parse_version
from pydantic import BaseModel, ValidationError
from pydantic import BaseModel
from sqlalchemy.engine import URL, create_engine, make_url
from sqlalchemy.exc import ResourceClosedError

from deepnote_core.pydantic_compat_helpers import model_validate_compat
from deepnote_toolkit import env as dnenv
from deepnote_toolkit.create_ssh_tunnel import create_ssh_tunnel
from deepnote_toolkit.get_webapp_url import (
Expand Down Expand Up @@ -281,7 +282,7 @@ def _get_federated_auth_credentials(

response.raise_for_status()

data = FederatedAuthResponseData.model_validate(response.json())
data = model_validate_compat(FederatedAuthResponseData, response.json())

return data

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

try:
federated_auth_params = IntegrationFederatedAuthParams.model_validate(
sql_alchemy_dict["federatedAuthParams"]
federated_auth_params = model_validate_compat(
IntegrationFederatedAuthParams, sql_alchemy_dict["federatedAuthParams"]
)
except ValidationError:
except Exception:
logger.exception("Invalid federated auth params, try updating toolkit version")
return

Expand Down
Loading