From 4fb451f450faa8c99622ca9832b1d2e391aac936 Mon Sep 17 00:00:00 2001 From: AleksZyro <178569539+AleksZyro@users.noreply.github.com> Date: Wed, 15 Jul 2026 13:56:17 +0200 Subject: [PATCH] Treat null edit values as safe --- beetsplug/edit.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/beetsplug/edit.py b/beetsplug/edit.py index 3e5b12a24..6bfed2ea0 100644 --- a/beetsplug/edit.py +++ b/beetsplug/edit.py @@ -91,6 +91,8 @@ def _safe_value(obj, key, value): This ensures that values do not change their type when the user edits their YAML representation. """ + if value is None: + return True typ = obj._type(key) return isinstance(typ, SAFE_TYPES) and isinstance(value, typ.model_type) @@ -107,9 +109,7 @@ def flatten(obj, fields): d = {} for key in obj.keys(): value = obj[key] - if value is None: - d[key] = None - elif _safe_value(obj, key, value): + if _safe_value(obj, key, value): # A safe value that is faithfully representable in YAML. d[key] = value else: @@ -130,9 +130,7 @@ def apply_(obj, data): strings as values. """ for key, value in data.items(): - if value is None: - obj[key] = None - elif _safe_value(obj, key, value): + if _safe_value(obj, key, value): # A safe value *stayed* represented as a safe type. Assign it # directly. obj[key] = value