Merge pull request #3600 from msabramo/msabramo/fix-pydantic-warnings

Update pydantic code to fix warnings
This commit is contained in:
Krish Dholakia 2024-05-13 22:00:39 -07:00 committed by GitHub
commit 2c867ea9a5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 129 additions and 82 deletions

View file

@ -1,6 +1,6 @@
from typing import List, Optional, Union, Dict, Tuple, Literal, TypedDict
import httpx
from pydantic import BaseModel, validator, Field
from pydantic import ConfigDict, BaseModel, validator, Field, __version__ as pydantic_version
from .completion import CompletionRequest
from .embedding import EmbeddingRequest
import uuid, enum
@ -12,8 +12,9 @@ class ModelConfig(BaseModel):
tpm: int
rpm: int
class Config:
protected_namespaces = ()
model_config = ConfigDict(
protected_namespaces = (),
)
class RouterConfig(BaseModel):
@ -44,8 +45,9 @@ class RouterConfig(BaseModel):
"latency-based-routing",
] = "simple-shuffle"
class Config:
protected_namespaces = ()
model_config = ConfigDict(
protected_namespaces = (),
)
class UpdateRouterConfig(BaseModel):
@ -65,8 +67,9 @@ class UpdateRouterConfig(BaseModel):
fallbacks: Optional[List[dict]] = None
context_window_fallbacks: Optional[List[dict]] = None
class Config:
protected_namespaces = ()
model_config = ConfigDict(
protected_namespaces = (),
)
class ModelInfo(BaseModel):
@ -84,8 +87,9 @@ class ModelInfo(BaseModel):
id = str(id)
super().__init__(id=id, **params)
class Config:
extra = "allow"
model_config = ConfigDict(
extra = "allow",
)
def __contains__(self, key):
# Define custom behavior for the 'in' operator
@ -180,9 +184,18 @@ class GenericLiteLLMParams(BaseModel):
max_retries = int(max_retries) # cast to int
super().__init__(max_retries=max_retries, **args, **params)
class Config:
extra = "allow"
arbitrary_types_allowed = True
model_config = ConfigDict(
extra = "allow",
arbitrary_types_allowed = True,
)
if pydantic_version.startswith("1"):
# pydantic v2 warns about using a Config class.
# But without this, pydantic v1 will raise an error:
# RuntimeError: no validator found for <class 'openai.Timeout'>,
# see `arbitrary_types_allowed` in Config
# Putting arbitrary_types_allowed = True in the ConfigDict doesn't work in pydantic v1.
class Config:
arbitrary_types_allowed = True
def __contains__(self, key):
# Define custom behavior for the 'in' operator
@ -241,9 +254,18 @@ class LiteLLM_Params(GenericLiteLLMParams):
max_retries = int(max_retries) # cast to int
super().__init__(max_retries=max_retries, **args, **params)
class Config:
extra = "allow"
arbitrary_types_allowed = True
model_config = ConfigDict(
extra = "allow",
arbitrary_types_allowed = True,
)
if pydantic_version.startswith("1"):
# pydantic v2 warns about using a Config class.
# But without this, pydantic v1 will raise an error:
# RuntimeError: no validator found for <class 'openai.Timeout'>,
# see `arbitrary_types_allowed` in Config
# Putting arbitrary_types_allowed = True in the ConfigDict doesn't work in pydantic v1.
class Config:
arbitrary_types_allowed = True
def __contains__(self, key):
# Define custom behavior for the 'in' operator
@ -273,8 +295,9 @@ class updateDeployment(BaseModel):
litellm_params: Optional[updateLiteLLMParams] = None
model_info: Optional[ModelInfo] = None
class Config:
protected_namespaces = ()
model_config = ConfigDict(
protected_namespaces = (),
)
class LiteLLMParamsTypedDict(TypedDict, total=False):
@ -348,9 +371,10 @@ class Deployment(BaseModel):
# if using pydantic v1
return self.dict(**kwargs)
class Config:
extra = "allow"
protected_namespaces = ()
model_config = ConfigDict(
extra = "allow",
protected_namespaces = (),
)
def __contains__(self, key):
# Define custom behavior for the 'in' operator