mirror of
https://github.com/beetbox/beets.git
synced 2026-07-16 14:07:40 -04:00
Treat null edit values as safe
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user