1616
1717import hashlib
1818import json
19+ from typing import Any
1920from typing import Optional
2021
2122from pydantic import BaseModel
@@ -36,7 +37,8 @@ def _stable_model_digest(model: BaseModel) -> str:
3637 """
3738 if getattr (model , "model_extra" , None ):
3839 model = model .model_copy (deep = True )
39- model .model_extra .clear ()
40+ if model .model_extra is not None :
41+ model .model_extra .clear ()
4042
4143 dumped = model .model_dump (by_alias = True , exclude_none = True , mode = "json" )
4244 canonical_json = json .dumps (
@@ -79,12 +81,12 @@ class AuthConfig(BaseModelWithConfig):
7981 service.
8082 """
8183
82- def __init__ (self , ** data ) :
84+ def __init__ (self , ** data : Any ) -> None :
8385 super ().__init__ (** data )
8486 if self .credential_key :
8587 return
8688 for obj in (self .raw_auth_credential , self .auth_scheme ):
87- if not obj or not getattr ( obj , " model_extra" , None ) :
89+ if not obj or not obj . model_extra :
8890 continue
8991 for key in ("credential_key" , "credentialKey" ):
9092 value = obj .model_extra .get (key )
@@ -94,7 +96,7 @@ def __init__(self, **data):
9496 self .credential_key = self .get_credential_key ()
9597
9698 @deprecated ("This method is deprecated. Use credential_key instead." )
97- def get_credential_key (self ):
99+ def get_credential_key (self ) -> str :
98100 """Builds a stable key based on auth_scheme and raw_auth_credential.
99101
100102 This is used to save/load credentials to/from a credential service when
@@ -105,7 +107,8 @@ def get_credential_key(self):
105107
106108 if auth_scheme .model_extra :
107109 auth_scheme = auth_scheme .model_copy (deep = True )
108- auth_scheme .model_extra .clear ()
110+ if auth_scheme .model_extra is not None :
111+ auth_scheme .model_extra .clear ()
109112
110113 type_ = auth_scheme .type_
111114 type_name = type_ .name if type_ and hasattr (type_ , "name" ) else str (type_ )
@@ -118,7 +121,8 @@ def get_credential_key(self):
118121 auth_credential = self .raw_auth_credential
119122 if auth_credential and auth_credential .model_extra :
120123 auth_credential = auth_credential .model_copy (deep = True )
121- auth_credential .model_extra .clear ()
124+ if auth_credential .model_extra is not None :
125+ auth_credential .model_extra .clear ()
122126 if auth_credential and auth_credential .oauth2 :
123127 auth_credential = auth_credential .model_copy (deep = True )
124128 if auth_credential .oauth2 :
0 commit comments