diff --git a/projects/activitypub_relay/src/python/relay/config.py b/projects/activitypub_relay/src/python/relay/config.py index e43e90d..3560f5f 100644 --- a/projects/activitypub_relay/src/python/relay/config.py +++ b/projects/activitypub_relay/src/python/relay/config.py @@ -198,4 +198,5 @@ class RelayConfig(DotDict): def save(self): with open(self._path, "w") as fd: - yaml.dump(self, fd, sort_keys=False) + fd.write("---\n") + yaml.dump(self.jsonify(), fd, sort_keys=True) diff --git a/projects/activitypub_relay/src/python/relay/misc.py b/projects/activitypub_relay/src/python/relay/misc.py index 412185f..5868ed1 100644 --- a/projects/activitypub_relay/src/python/relay/misc.py +++ b/projects/activitypub_relay/src/python/relay/misc.py @@ -328,6 +328,15 @@ class DotDict(dict): def to_json(self, indent=None): return json.dumps(self, indent=indent) + def jsonify(self): + def _xform(v): + if hasattr(v, 'jsonify'): + return v.jsonify() + else: + return v + + return {k: _xform(v) for k, v in self.items()} + def update(self, _data, **kwargs): if isinstance(_data, dict): for key, value in _data.items():