From: Jörg Behrmann Date: Mon, 29 Sep 2025 08:55:12 +0000 (+0200) Subject: config: serialize dataclass instances in our JSONEncoder X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c37a55f91bc4b5fe325123e971b10ab0d0e8a0f6;p=thirdparty%2Fmkosi.git config: serialize dataclass instances in our JSONEncoder During config parsing we have partial dictionaries of our config, that are not our Config object, but that we need to serialize as well. These may contain dataclass instances such as ConfigTree objects on which the default encoder chokes. Fixes: #3924 --- diff --git a/mkosi/config.py b/mkosi/config.py index f97055019..5ec6bac10 100644 --- a/mkosi/config.py +++ b/mkosi/config.py @@ -5786,6 +5786,8 @@ class JsonEncoder(json.JSONEncoder): return str(o) elif isinstance(o, (Args, Config)): return o.to_dict() + elif dataclasses.is_dataclass(o) and not isinstance(o, type): + return dataclasses.asdict(o) return super().default(o)