fix flask json deprecation

pull/2088/head
Lex Neva 2023-02-22 21:08:40 -05:00
rodzic 7d57a22f01
commit 36f0946e2d
3 zmienionych plików z 12 dodań i 6 usunięć

Wyświetl plik

@ -14,7 +14,7 @@ import requests
from flask import Flask, g
from werkzeug.serving import make_server
from ..utils.json import InkStitchJSONEncoder
from ..utils.json import InkStitchJSONProvider
from .install import install
from .simulator import simulator
from .stitch_plan import stitch_plan
@ -41,7 +41,7 @@ class APIServer(Thread):
cli.show_server_banner = lambda *x: None
self.app = Flask(__name__)
self.app.json_encoder = InkStitchJSONEncoder
self.app.json = InkStitchJSONProvider(self.app)
self.app.register_blueprint(simulator, url_prefix="/simulator")
self.app.register_blueprint(stitch_plan, url_prefix="/stitch_plan")

Wyświetl plik

@ -3,10 +3,15 @@
# Copyright (c) 2010 Authors
# Licensed under the GNU GPL version 3.0 or later. See the file LICENSE for details.
from flask.json import JSONEncoder
from flask.json.provider import DefaultJSONProvider
from ..exceptions import InkstitchException
class InkStitchJSONEncoder(JSONEncoder):
class InkstitchJSONException(InkstitchException):
pass
class InkStitchJSONProvider(DefaultJSONProvider):
"""JSON encoder class that runs __json__ on an object if available.
The __json__ method should return a JSON-compatible representation of the
@ -17,4 +22,5 @@ class InkStitchJSONEncoder(JSONEncoder):
try:
return obj.__json__()
except AttributeError:
return JSONEncoder.default(self, obj)
raise InkstitchJSONException(
f"Object of type {obj.__class__.__name__} cannot be serialized to JSON because it does not implement __json__()")

Wyświetl plik

@ -22,7 +22,7 @@ colormath @ git+https://github.com/gtaylor/python-colormath.git@4a076831fd5136f6
stringcase
tinycss2
flask
flask>=2.2.0
fonttools
trimesh>=3.15.2
scipy