From 0c180b74f9ce32deb210d90cd6e1eb29737643df Mon Sep 17 00:00:00 2001 From: Bungeetaco <5958682+Bungeetaco@users.noreply.github.com> Date: Wed, 22 Jul 2026 14:06:07 -0400 Subject: [PATCH] Port custom JSON encoder to Flask 3 provider API flask.json.JSONEncoder was removed in Flask 3; rebase AmiiboJSONEncoder on flask.json.provider.DefaultJSONProvider and register it via app.json. Needed to run on Python 3.14 where Flask 2.x no longer works. --- app.py | 2 +- commons/amiibo_json_encounter.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app.py b/app.py index f1179304..c20948f9 100644 --- a/app.py +++ b/app.py @@ -36,7 +36,7 @@ app.register_blueprint(amiibofullApp) CORS(app) -app.json_encoder = AmiiboJSONEncoder +app.json = AmiiboJSONEncoder(app) Compress(app) amiibo_manager = AmiiboManager.getInstance() diff --git a/commons/amiibo_json_encounter.py b/commons/amiibo_json_encounter.py index bd8b872a..03ea6bb0 100644 --- a/commons/amiibo_json_encounter.py +++ b/commons/amiibo_json_encounter.py @@ -1,6 +1,6 @@ import datetime -from flask.json import JSONEncoder +from flask.json.provider import DefaultJSONProvider from amiibo.amiibo import (Amiibo, AmiiboReleaseDates, @@ -11,7 +11,7 @@ Hex) from amiibo.filterable import FilterableCollection -class AmiiboJSONEncoder(JSONEncoder): +class AmiiboJSONEncoder(DefaultJSONProvider): def default(self, obj): if isinstance(obj, Hex): return str(obj)