From e6b3e7c317183bc5c8ffcbb21566e71d27409891 Mon Sep 17 00:00:00 2001 From: Emmanuel Garette Date: Sat, 18 Oct 2025 06:29:32 +0200 Subject: [PATCH] fix: identifier could be temporary None --- tests/test_dyn_optiondescription.py | 4 ++++ tiramisu/value.py | 2 ++ 2 files changed, 6 insertions(+) diff --git a/tests/test_dyn_optiondescription.py b/tests/test_dyn_optiondescription.py index 16019fe..c121483 100644 --- a/tests/test_dyn_optiondescription.py +++ b/tests/test_dyn_optiondescription.py @@ -536,6 +536,10 @@ def test_callback_dyndescription_subdyn(): cfg = Config(od2) cfg.property.read_write() assert parse_od_get(cfg.value.get()) == {'od.dod2val1.dodval1.st': 'val1', 'od.dod2val1.dodval2.st': 'val1', 'od.dod2val1.out': ['val1', 'val1'], 'od.dod2val2.dodval1.st': 'val1', 'od.dod2val2.dodval2.st': 'val1', 'od.dod2val2.out': ['val1', 'val1'], 'lst': ['val1', 'val2']} + cfg.option('lst').value.set(["val1", "val3"]) + assert parse_od_get(cfg.value.get()) == {'od.dod2val1.dodval1.st': 'val1', 'od.dod2val1.dodval3.st': 'val1', 'od.dod2val1.out': ['val1', 'val1'], 'od.dod2val3.dodval1.st': 'val1', 'od.dod2val3.dodval3.st': 'val1', 'od.dod2val3.out': ['val1', 'val1'], 'lst': ['val1', 'val3']} + cfg.option('lst').value.set(["val1", "val3", None]) + assert parse_od_get(cfg.value.get()) == {'od.dod2val1.dodval1.st': 'val1', 'od.dod2val1.dodval3.st': 'val1', 'od.dod2val1.out': ['val1', 'val1'], 'od.dod2val3.dodval1.st': 'val1', 'od.dod2val3.dodval3.st': 'val1', 'od.dod2val3.out': ['val1', 'val1'], 'lst': ['val1', 'val3', None]} def test_callback_list_dyndescription(): diff --git a/tiramisu/value.py b/tiramisu/value.py index aaa3462..819b6ea 100644 --- a/tiramisu/value.py +++ b/tiramisu/value.py @@ -402,6 +402,8 @@ class Values: for option in options: parent = option.parent for identifier in identifier_values: + if identifier is None: + continue name = option.option.impl_getname(identifier) opt_subconfig = parent.get_child( option.option,