From b7db2324c3e59ee8e798e02eeec9e735823d61b9 Mon Sep 17 00:00:00 2001 From: Tim Hallmann Date: Thu, 13 Feb 2025 19:51:16 +0100 Subject: [PATCH] Replace deprecated pydantic functions --- src/simple_openid_connect/base_data.py | 8 ++++---- src/simple_openid_connect/discovery.py | 2 +- .../flows/authorization_code_flow/__init__.py | 4 ++-- .../flows/client_credentials_grant/__init__.py | 4 ++-- .../flows/direct_access_grant/__init__.py | 4 ++-- src/simple_openid_connect/integrations/django/models.py | 2 +- src/simple_openid_connect/token_introspection.py | 4 ++-- src/simple_openid_connect/token_refresh.py | 4 ++-- src/simple_openid_connect/userinfo.py | 4 ++-- tests/conftest.py | 2 +- 10 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/simple_openid_connect/base_data.py b/src/simple_openid_connect/base_data.py index feb1a28..52d1dbc 100644 --- a/src/simple_openid_connect/base_data.py +++ b/src/simple_openid_connect/base_data.py @@ -32,7 +32,7 @@ def encode_x_www_form_urlencoded(self) -> str: """ query = Query() - query.set(self.dict(exclude_defaults=True)) + query.set(self.model_dump(exclude_defaults=True)) return query.encode() # type: ignore # because furl has no typedefs, but we know what this returns def encode_url(self, url: str) -> str: @@ -44,7 +44,7 @@ def encode_url(self, url: str) -> str: it should never need to generate responses. """ url_parsed = furl(url) - url_parsed.args.update(self.dict(exclude_defaults=True)) + url_parsed.args.update(self.model_dump(exclude_defaults=True)) return url_parsed.tostr() # type: ignore # because furl has no typedefs, but we know what this returns @classmethod @@ -54,7 +54,7 @@ def parse_x_www_form_urlencoded(cls: Type[Self], s: str) -> Self: """ query = Query(s) one_value_params = {key: query.params[key] for key in query.params.keys()} - return cls.parse_obj(one_value_params) + return cls.model_validate(one_value_params) @classmethod def parse_url( @@ -97,4 +97,4 @@ def parse_jwt(cls: Type[Self], value: str, signing_keys: List[JWK]) -> Self: """ verifier = JWS() msg = verifier.verify_compact(value, signing_keys) - return cls.parse_obj(msg) + return cls.model_validate(msg) diff --git a/src/simple_openid_connect/discovery.py b/src/simple_openid_connect/discovery.py index ae3cd29..f69c787 100644 --- a/src/simple_openid_connect/discovery.py +++ b/src/simple_openid_connect/discovery.py @@ -33,7 +33,7 @@ def discover_configuration_from_issuer(issuer: str) -> ProviderMetadata: ) try: - result = ProviderMetadata.parse_raw(response.content) + result = ProviderMetadata.model_validate_json(response.content) assert result.issuer.rstrip("/") == issuer, "issuer mismatch" except Exception as e: raise OpenidProtocolError( diff --git a/src/simple_openid_connect/flows/authorization_code_flow/__init__.py b/src/simple_openid_connect/flows/authorization_code_flow/__init__.py index b520b4c..6fc549b 100644 --- a/src/simple_openid_connect/flows/authorization_code_flow/__init__.py +++ b/src/simple_openid_connect/flows/authorization_code_flow/__init__.py @@ -165,6 +165,6 @@ def exchange_code_for_tokens( ) if response.status_code == 200: - return TokenSuccessResponse.parse_raw(response.content) + return TokenSuccessResponse.model_validate_json(response.content) else: - return TokenErrorResponse.parse_raw(response.content) + return TokenErrorResponse.model_validate_json(response.content) diff --git a/src/simple_openid_connect/flows/client_credentials_grant/__init__.py b/src/simple_openid_connect/flows/client_credentials_grant/__init__.py index 3d6331c..937c2e2 100644 --- a/src/simple_openid_connect/flows/client_credentials_grant/__init__.py +++ b/src/simple_openid_connect/flows/client_credentials_grant/__init__.py @@ -47,6 +47,6 @@ def authenticate( ) if response.status_code == 200: - return TokenSuccessResponse.parse_raw(response.content) + return TokenSuccessResponse.model_validate_json(response.content) else: - return TokenErrorResponse.parse_raw(response.content) + return TokenErrorResponse.model_validate_json(response.content) diff --git a/src/simple_openid_connect/flows/direct_access_grant/__init__.py b/src/simple_openid_connect/flows/direct_access_grant/__init__.py index 86ab50a..efc5423 100644 --- a/src/simple_openid_connect/flows/direct_access_grant/__init__.py +++ b/src/simple_openid_connect/flows/direct_access_grant/__init__.py @@ -57,6 +57,6 @@ def authenticate( ) if response.status_code == 200: - return TokenSuccessResponse.parse_raw(response.content) + return TokenSuccessResponse.model_validate_json(response.content) else: - return TokenErrorResponse.parse_raw(response.content) + return TokenErrorResponse.model_validate_json(response.content) diff --git a/src/simple_openid_connect/integrations/django/models.py b/src/simple_openid_connect/integrations/django/models.py index 710cf23..9d29365 100644 --- a/src/simple_openid_connect/integrations/django/models.py +++ b/src/simple_openid_connect/integrations/django/models.py @@ -112,7 +112,7 @@ class OpenidSession(models.Model): @property def id_token(self) -> IdToken: - return IdToken.parse_raw(self._id_token) + return IdToken.model_validate_json(self._id_token) @id_token.setter def id_token(self, value: IdToken) -> None: diff --git a/src/simple_openid_connect/token_introspection.py b/src/simple_openid_connect/token_introspection.py index 32217d0..8a49a6e 100644 --- a/src/simple_openid_connect/token_introspection.py +++ b/src/simple_openid_connect/token_introspection.py @@ -40,6 +40,6 @@ def introspect_token( ) if response.status_code == 200: - return TokenIntrospectionSuccessResponse.parse_raw(response.content) + return TokenIntrospectionSuccessResponse.model_validate_json(response.content) else: - return TokenIntrospectionErrorResponse.parse_raw(response.content) + return TokenIntrospectionErrorResponse.model_validate_json(response.content) diff --git a/src/simple_openid_connect/token_refresh.py b/src/simple_openid_connect/token_refresh.py index 034cc46..3900bba 100644 --- a/src/simple_openid_connect/token_refresh.py +++ b/src/simple_openid_connect/token_refresh.py @@ -46,6 +46,6 @@ def exchange_refresh_token( ) if response.status_code == 200: - return TokenSuccessResponse.parse_raw(response.content) + return TokenSuccessResponse.model_validate_json(response.content) else: - return TokenErrorResponse.parse_raw(response.content) + return TokenErrorResponse.model_validate_json(response.content) diff --git a/src/simple_openid_connect/userinfo.py b/src/simple_openid_connect/userinfo.py index caeadcb..9f50b98 100644 --- a/src/simple_openid_connect/userinfo.py +++ b/src/simple_openid_connect/userinfo.py @@ -39,6 +39,6 @@ def fetch_userinfo( ) if response.status_code == 200: - return UserinfoSuccessResponse.parse_raw(response.content) + return UserinfoSuccessResponse.model_validate_json(response.content) else: - return UserinfoErrorResponse.parse_raw(response.content) + return UserinfoErrorResponse.model_validate_json(response.content) diff --git a/tests/conftest.py b/tests/conftest.py index 1e14069..42e0e19 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -103,7 +103,7 @@ def dummy_provider_config(jwks, response_mock): introspection_endpoint="https://provider.example.com/token-introspection", subject_types_supported=["public"], id_token_signing_alg_values_supported=["RS256"], - ).dict(exclude_defaults=True), + ).model_dump(exclude_defaults=True), ) response_mock.get( url="https://provider.example.com/jwks",