From 587997eec3c9ce35d17054d10aa5f2c5403ade4c Mon Sep 17 00:00:00 2001 From: Jon Dufresne Date: Mon, 21 Dec 2020 18:34:39 -0800 Subject: [PATCH] Complete type hinting of jwks_client.py (#578) --- jwt/jwks_client.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/jwt/jwks_client.py b/jwt/jwks_client.py index 2e2ff734..a6c0d9fb 100644 --- a/jwt/jwks_client.py +++ b/jwt/jwks_client.py @@ -1,24 +1,25 @@ import json import urllib.request +from typing import Any, List -from .api_jwk import PyJWKSet +from .api_jwk import PyJWK, PyJWKSet from .api_jwt import decode_complete as decode_token from .exceptions import PyJWKClientError class PyJWKClient: - def __init__(self, uri): + def __init__(self, uri: str): self.uri = uri - def fetch_data(self): + def fetch_data(self) -> Any: with urllib.request.urlopen(self.uri) as response: return json.load(response) - def get_jwk_set(self): + def get_jwk_set(self) -> PyJWKSet: data = self.fetch_data() return PyJWKSet.from_dict(data) - def get_signing_keys(self): + def get_signing_keys(self) -> List[PyJWK]: jwk_set = self.get_jwk_set() signing_keys = [] @@ -31,7 +32,7 @@ def get_signing_keys(self): return signing_keys - def get_signing_key(self, kid): + def get_signing_key(self, kid: str) -> PyJWK: signing_keys = self.get_signing_keys() signing_key = None @@ -47,7 +48,7 @@ def get_signing_key(self, kid): return signing_key - def get_signing_key_from_jwt(self, token): + def get_signing_key_from_jwt(self, token: str) -> PyJWK: unverified = decode_token(token, options={"verify_signature": False}) header = unverified["header"] return self.get_signing_key(header.get("kid"))