Skip to content

Commit 8ff52ee

Browse files
committed
Address PR feedback
1 parent fcea059 commit 8ff52ee

File tree

2 files changed

+17
-7
lines changed

2 files changed

+17
-7
lines changed

flask_jwt_extended/config.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
from flask import current_app
1212
from jwt.algorithms import requires_cryptography
1313

14+
from flask_jwt_extended.json_encoder import get_current_json_encoder
1415
from flask_jwt_extended.json_encoder import JSONEncoder
1516
from flask_jwt_extended.typing import ExpiresDelta
1617

@@ -284,7 +285,7 @@ def error_msg_key(self) -> str:
284285

285286
@property
286287
def json_encoder(self) -> Type[JSONEncoder]:
287-
return JSONEncoder
288+
return get_current_json_encoder(current_app)
288289

289290
@property
290291
def decode_audience(self) -> Union[str, Iterable[str]]:

flask_jwt_extended/json_encoder.py

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1+
12
import json
23
from typing import Any
34

45

5-
try:
6-
# Flask 2.2 deprecated the flask.json.JSONEncoder (see below), lets recreate
7-
# a class with the same semantics as the old JSONEncoder.
6+
try: # pragma: no cover
7+
from flask.json.provider import DefaultJSONProvider # type: ignore
88

9-
from flask.json.provider import DefaultJSONProvider
9+
USING_CUSTOM_ENCODER = True
1010

1111
class JSONEncoder(json.JSONEncoder):
1212
"""The default JSON encoder. Handles extra types compared to the
@@ -32,5 +32,14 @@ def default(self, o: Any) -> Any:
3232
"""
3333
return DefaultJSONProvider.default(o)
3434

35-
except ModuleNotFoundError: # pragma: no cover
36-
from flask.json import JSONEncoder # type: ignore # noqa: F401
35+
except ModuleNotFoundError:
36+
from flask.json import JSONEncoder # type: ignore
37+
38+
USING_CUSTOM_ENCODER = False
39+
40+
41+
def get_current_json_encoder(current_app): # pragma: no cover
42+
if USING_CUSTOM_ENCODER:
43+
return JSONEncoder
44+
else:
45+
return current_app.json_encoder

0 commit comments

Comments
 (0)