From 33f186d7b9493cc4a6c6f39b17790a65ab6cb982 Mon Sep 17 00:00:00 2001 From: jacques franc Date: Mon, 3 Nov 2025 15:44:04 +0100 Subject: [PATCH 1/5] fix if is a list crash (cherry picked from commit 5c739b396a1b70ab90602a155b4d0e4ef7c293d0) --- geos-trame/src/geos/trame/app/deck/tree.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/geos-trame/src/geos/trame/app/deck/tree.py b/geos-trame/src/geos/trame/app/deck/tree.py index b732ddea..2c6f455e 100644 --- a/geos-trame/src/geos/trame/app/deck/tree.py +++ b/geos-trame/src/geos/trame/app/deck/tree.py @@ -286,6 +286,9 @@ def _set_base_model_properties( model: dict, proxy_path: str, properties: dict ) if proxy_name.isnumeric() and int( proxy_name ) < len( model_copy ): models.append( ( proxy_name, model_copy ) ) + if is_list: + proxy_name = int(proxy_name) + #won't work if is_list # TO DO IMMEDIATELY -- review proxy strat model_copy = model_copy[ proxy_name ] continue From 6a4acf74a14e3da5e4ac0c7f6ad326ba8683752e Mon Sep 17 00:00:00 2001 From: jacques franc Date: Tue, 4 Nov 2025 10:29:53 +0100 Subject: [PATCH 2/5] fix connection to file repr --- geos-trame/src/geos/trame/app/deck/tree.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/geos-trame/src/geos/trame/app/deck/tree.py b/geos-trame/src/geos/trame/app/deck/tree.py index 2c6f455e..f03c9ba0 100644 --- a/geos-trame/src/geos/trame/app/deck/tree.py +++ b/geos-trame/src/geos/trame/app/deck/tree.py @@ -77,7 +77,7 @@ def update( self, path: str, key: str, value: Any ) -> None: new_path = [ int( x ) if x.isdigit() else x for x in path.split( "/" ) ] new_path.append( key ) assert self.input_file is not None and self.input_file.pb_dict is not None - funcy.set_in( self.input_file.pb_dict, new_path, value ) + self.input_file.pb_dict = funcy.set_in( self.input_file.pb_dict, new_path, value ) def _search( self, path: str ) -> list | None: new_path = path.split( "/" ) From 0c2d8782cce10335677baa1db35b5ab16c985f03 Mon Sep 17 00:00:00 2001 From: jacques franc Date: Tue, 4 Nov 2025 14:17:41 +0100 Subject: [PATCH 3/5] fix update in inspector --- geos-trame/src/geos/trame/app/ui/inspector.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/geos-trame/src/geos/trame/app/ui/inspector.py b/geos-trame/src/geos/trame/app/ui/inspector.py index 2fad1245..ea8a2589 100644 --- a/geos-trame/src/geos/trame/app/ui/inspector.py +++ b/geos-trame/src/geos/trame/app/ui/inspector.py @@ -8,6 +8,8 @@ from trame.widgets import vuetify3 as vuetify, html from trame_simput import get_simput_manager +from xsdata.utils import text + from geos.trame.app.data_types.field_status import FieldStatus from geos.trame.app.data_types.renderable import Renderable from geos.trame.app.data_types.tree_node import TreeNode @@ -61,9 +63,9 @@ def _on_change( topic: str, ids: list | None = None ) -> None: if ids is not None and topic == "changed": for obj_id in ids: proxy = self.simput_manager.proxymanager.get( obj_id ) - self.tree.decode( obj_id ) + #self.tree.decode( obj_id ) # if const function and return not used why ?? to decode context ?? for prop in proxy.edited_property_names: - self.tree.update( obj_id, prop, proxy.get_property( prop ) ) + self.tree.update( obj_id, text.camel_case(prop), proxy.get_property( prop ) ) self.simput_manager.proxymanager.on( _on_change ) From ed2f42fbe7a92d01b6f24492c4fc1e8ed4e8914c Mon Sep 17 00:00:00 2001 From: Jacques Franc <49998870+jafranc@users.noreply.github.com> Date: Thu, 13 Nov 2025 10:35:32 +0100 Subject: [PATCH 4/5] mypy-ification of fix --- geos-trame/src/geos/trame/app/deck/tree.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/geos-trame/src/geos/trame/app/deck/tree.py b/geos-trame/src/geos/trame/app/deck/tree.py index f03c9ba0..b418890b 100644 --- a/geos-trame/src/geos/trame/app/deck/tree.py +++ b/geos-trame/src/geos/trame/app/deck/tree.py @@ -286,10 +286,7 @@ def _set_base_model_properties( model: dict, proxy_path: str, properties: dict ) if proxy_name.isnumeric() and int( proxy_name ) < len( model_copy ): models.append( ( proxy_name, model_copy ) ) - if is_list: - proxy_name = int(proxy_name) - #won't work if is_list # TO DO IMMEDIATELY -- review proxy strat - model_copy = model_copy[ proxy_name ] + model_copy = model_copy[ int(proxy_name) if is_list else proxy_name ] continue if proxy_name in model_copy: From 14b37ec6aec5d5603103aaffcf2a5f247e55b098 Mon Sep 17 00:00:00 2001 From: Jacques Franc <49998870+jafranc@users.noreply.github.com> Date: Thu, 13 Nov 2025 09:51:50 +0000 Subject: [PATCH 5/5] yapf --- geos-trame/src/geos/trame/app/deck/tree.py | 2 +- geos-trame/src/geos/trame/app/ui/inspector.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/geos-trame/src/geos/trame/app/deck/tree.py b/geos-trame/src/geos/trame/app/deck/tree.py index b418890b..95e6221a 100644 --- a/geos-trame/src/geos/trame/app/deck/tree.py +++ b/geos-trame/src/geos/trame/app/deck/tree.py @@ -286,7 +286,7 @@ def _set_base_model_properties( model: dict, proxy_path: str, properties: dict ) if proxy_name.isnumeric() and int( proxy_name ) < len( model_copy ): models.append( ( proxy_name, model_copy ) ) - model_copy = model_copy[ int(proxy_name) if is_list else proxy_name ] + model_copy = model_copy[ int( proxy_name ) if is_list else proxy_name ] continue if proxy_name in model_copy: diff --git a/geos-trame/src/geos/trame/app/ui/inspector.py b/geos-trame/src/geos/trame/app/ui/inspector.py index ea8a2589..fc7a70c0 100644 --- a/geos-trame/src/geos/trame/app/ui/inspector.py +++ b/geos-trame/src/geos/trame/app/ui/inspector.py @@ -65,7 +65,7 @@ def _on_change( topic: str, ids: list | None = None ) -> None: proxy = self.simput_manager.proxymanager.get( obj_id ) #self.tree.decode( obj_id ) # if const function and return not used why ?? to decode context ?? for prop in proxy.edited_property_names: - self.tree.update( obj_id, text.camel_case(prop), proxy.get_property( prop ) ) + self.tree.update( obj_id, text.camel_case( prop ), proxy.get_property( prop ) ) self.simput_manager.proxymanager.on( _on_change )