mirror of
https://github.com/csunny/DB-GPT.git
synced 2025-09-15 05:59:59 +00:00
feat(core): Upgrade pydantic to 2.x (#1428)
This commit is contained in:
@@ -3,6 +3,7 @@ from typing import Any, Dict, Generic, Iterator, List, Optional, TypeVar, Union
|
||||
|
||||
from sqlalchemy.orm.session import Session
|
||||
|
||||
from dbgpt._private.pydantic import model_to_dict
|
||||
from dbgpt.util.pagination_utils import PaginationResult
|
||||
|
||||
from .db_manager import BaseQuery, DatabaseManager, db
|
||||
@@ -165,7 +166,7 @@ class BaseDao(Generic[T, REQ, RES]):
|
||||
entry = query.first()
|
||||
if entry is None:
|
||||
raise Exception("Invalid request")
|
||||
for key, value in update_request.dict().items(): # type: ignore
|
||||
for key, value in model_to_dict(update_request).items(): # type: ignore
|
||||
if value is not None:
|
||||
setattr(entry, key, value)
|
||||
session.merge(entry)
|
||||
@@ -272,7 +273,9 @@ class BaseDao(Generic[T, REQ, RES]):
|
||||
model_cls = type(self.from_request(query_request))
|
||||
query = session.query(model_cls)
|
||||
query_dict = (
|
||||
query_request if isinstance(query_request, dict) else query_request.dict()
|
||||
query_request
|
||||
if isinstance(query_request, dict)
|
||||
else model_to_dict(query_request)
|
||||
)
|
||||
for key, value in query_dict.items():
|
||||
if value is not None:
|
||||
|
@@ -4,7 +4,7 @@ import pytest
|
||||
from sqlalchemy import Column, Integer, String
|
||||
|
||||
from dbgpt._private.pydantic import BaseModel as PydanticBaseModel
|
||||
from dbgpt._private.pydantic import Field
|
||||
from dbgpt._private.pydantic import Field, model_to_dict
|
||||
from dbgpt.storage.metadata.db_manager import (
|
||||
BaseModel,
|
||||
DatabaseManager,
|
||||
@@ -61,7 +61,7 @@ def user_dao(db, User):
|
||||
class UserDao(BaseDao[User, UserRequest, UserResponse]):
|
||||
def from_request(self, request: Union[UserRequest, Dict[str, Any]]) -> User:
|
||||
if isinstance(request, UserRequest):
|
||||
return User(**request.dict())
|
||||
return User(**model_to_dict(request))
|
||||
else:
|
||||
return User(**request)
|
||||
|
||||
@@ -71,7 +71,7 @@ def user_dao(db, User):
|
||||
)
|
||||
|
||||
def from_response(self, response: UserResponse) -> User:
|
||||
return User(**response.dict())
|
||||
return User(**model_to_dict(response))
|
||||
|
||||
def to_response(self, entity: User):
|
||||
return UserResponse(id=entity.id, name=entity.name, age=entity.age)
|
||||
|
Reference in New Issue
Block a user