Skip to content

Commit 0803dc5

Browse files
authored
Updated typing of expires_delta and fresh (#510)
* Update typing.py cleaned up ExpiresDelta type definition and added Fresh type * Update utils.py updated typing for `expires_delta` and `fresh` * Update jwt_manager.py updated typing of `fresh` * Update tokens.py updated typing for `fresh` * Update tokens.py added missing import * Update typing.py float type is required while building the token_data dict in _encode_jwt
1 parent af8646e commit 0803dc5

File tree

4 files changed

+12
-8
lines changed

4 files changed

+12
-8
lines changed

flask_jwt_extended/jwt_manager.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
from flask_jwt_extended.tokens import _decode_jwt
4343
from flask_jwt_extended.tokens import _encode_jwt
4444
from flask_jwt_extended.typing import ExpiresDelta
45+
from flask_jwt_extended.typing import Fresh
4546
from flask_jwt_extended.utils import current_user_context_processor
4647

4748

@@ -493,7 +494,7 @@ def _encode_jwt_from_config(
493494
identity: Any,
494495
token_type: str,
495496
claims=None,
496-
fresh: bool = False,
497+
fresh: Fresh = False,
497498
expires_delta: Optional[ExpiresDelta] = None,
498499
headers=None,
499500
) -> str:

flask_jwt_extended/tokens.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
from flask_jwt_extended.exceptions import CSRFError
1616
from flask_jwt_extended.exceptions import JWTDecodeError
1717
from flask_jwt_extended.typing import ExpiresDelta
18+
from flask_jwt_extended.typing import Fresh
1819

1920

2021
def _encode_jwt(
@@ -23,7 +24,7 @@ def _encode_jwt(
2324
claim_overrides: dict,
2425
csrf: bool,
2526
expires_delta: ExpiresDelta,
26-
fresh: bool,
27+
fresh: Fresh,
2728
header_overrides: dict,
2829
identity: Any,
2930
identity_claim_key: str,

flask_jwt_extended/typing.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
import sys
2-
from typing import Any
2+
from datetime import timedelta
33
from typing import Union
44

55
if sys.version_info >= (3, 8):
66
from typing import Literal # pragma: no cover
77
else:
88
from typing_extensions import Literal # pragma: no cover
99

10-
ExpiresDelta = Union[Literal[False], Any]
10+
ExpiresDelta = Union[Literal[False], timedelta]
11+
Fresh = Union[bool, float, timedelta]

flask_jwt_extended/utils.py

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import datetime
21
from typing import Any
32
from typing import Optional
43

@@ -9,6 +8,8 @@
98

109
from flask_jwt_extended.config import config
1110
from flask_jwt_extended.internal_utils import get_jwt_manager
11+
from flask_jwt_extended.typing import ExpiresDelta
12+
from flask_jwt_extended.typing import Fresh
1213

1314
# Proxy to access the current user
1415
current_user: Any = LocalProxy(lambda: get_current_user())
@@ -129,8 +130,8 @@ def decode_token(
129130

130131
def create_access_token(
131132
identity: Any,
132-
fresh: bool = False,
133-
expires_delta: Optional[datetime.timedelta] = None,
133+
fresh: Fresh = False,
134+
expires_delta: Optional[ExpiresDelta] = None,
134135
additional_claims=None,
135136
additional_headers=None,
136137
):
@@ -183,7 +184,7 @@ def create_access_token(
183184

184185
def create_refresh_token(
185186
identity: Any,
186-
expires_delta: Optional[datetime.timedelta] = None,
187+
expires_delta: Optional[ExpiresDelta] = None,
187188
additional_claims=None,
188189
additional_headers=None,
189190
):

0 commit comments

Comments
 (0)