File tree Expand file tree Collapse file tree 2 files changed +17
-7
lines changed Expand file tree Collapse file tree 2 files changed +17
-7
lines changed Original file line number Diff line number Diff line change 1111from flask import current_app
1212from jwt .algorithms import requires_cryptography
1313
14+ from flask_jwt_extended .json_encoder import get_current_json_encoder
1415from flask_jwt_extended .json_encoder import JSONEncoder
1516from 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 ]]:
Original file line number Diff line number Diff line change 1+
12import json
23from 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
You can’t perform that action at this time.
0 commit comments