From f4161f2a572bd67eb144796c51105b7417d653dd Mon Sep 17 00:00:00 2001 From: zeffii Date: Sun, 10 May 2020 10:30:04 +0200 Subject: [PATCH 01/17] reaches here if objs can be iterated over, even if it is len 1..end early if no objs --- nodes/object_nodes/set_blenddata2.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/nodes/object_nodes/set_blenddata2.py b/nodes/object_nodes/set_blenddata2.py index 0712c854f..b65883c45 100644 --- a/nodes/object_nodes/set_blenddata2.py +++ b/nodes/object_nodes/set_blenddata2.py @@ -54,6 +54,8 @@ class SvSetDataObjectNodeMK2(bpy.types.Node, SverchCustomTreeNode, SvAnimatableN Ov, Oo = self.outputs Prop = self.formula objs = O.sv_get() + + if isinstance(objs[0], list): if V.is_linked: v = V.sv_get() @@ -73,6 +75,8 @@ class SvSetDataObjectNodeMK2(bpy.types.Node, SverchCustomTreeNode, SvAnimatableN elif Ov.is_linked: Ov.sv_set(eval("[[i."+Prop+" for i in OBL] for OBL in objs]")) else: + if not objs: + return exec("for OL in objs:\n for i in OL:\n i."+Prop) else: if V.is_linked: @@ -88,6 +92,8 @@ class SvSetDataObjectNodeMK2(bpy.types.Node, SverchCustomTreeNode, SvAnimatableN elif Ov.is_linked: Ov.sv_set(eval("[i."+Prop+" for i in objs]")) else: + if not objs: + return exec("for i in objs:\n i."+Prop) if Oo.is_linked: Oo.sv_set(objs) -- GitLab From 4f881ae0b47bf006ca4453fddf530c3e7ab0c537 Mon Sep 17 00:00:00 2001 From: zeffii Date: Sun, 10 May 2020 10:34:26 +0200 Subject: [PATCH 02/17] add tooltip --- nodes/object_nodes/set_blenddata2.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/nodes/object_nodes/set_blenddata2.py b/nodes/object_nodes/set_blenddata2.py index b65883c45..e74fbbda5 100644 --- a/nodes/object_nodes/set_blenddata2.py +++ b/nodes/object_nodes/set_blenddata2.py @@ -31,7 +31,12 @@ from sverchok.data_structure import (updateNode, second_as_first_cycle as safc) class SvSetDataObjectNodeMK2(bpy.types.Node, SverchCustomTreeNode, SvAnimatableNode): - ''' Set Object Props ''' + """ + Triggers: obj id set data + Tooltip: Set Object Properties + + """ + bl_idname = 'SvSetDataObjectNodeMK2' bl_label = 'Object ID Set MK2' bl_icon = 'OUTLINER_OB_EMPTY' -- GitLab From 772870cf77076238f632def4d86a32d5fe1f0b52 Mon Sep 17 00:00:00 2001 From: zeffii Date: Sun, 10 May 2020 10:37:45 +0200 Subject: [PATCH 03/17] Add debug --- nodes/object_nodes/set_blenddata2.py | 1 + 1 file changed, 1 insertion(+) diff --git a/nodes/object_nodes/set_blenddata2.py b/nodes/object_nodes/set_blenddata2.py index e74fbbda5..32d6fd426 100644 --- a/nodes/object_nodes/set_blenddata2.py +++ b/nodes/object_nodes/set_blenddata2.py @@ -60,6 +60,7 @@ class SvSetDataObjectNodeMK2(bpy.types.Node, SverchCustomTreeNode, SvAnimatableN Prop = self.formula objs = O.sv_get() + print('objs:', objs) if isinstance(objs[0], list): if V.is_linked: -- GitLab From efa5a83c31e2dddba361d864a19dbaa87797d0b6 Mon Sep 17 00:00:00 2001 From: zeffii Date: Sun, 10 May 2020 10:42:24 +0200 Subject: [PATCH 04/17] add selfinfo instead --- nodes/object_nodes/set_blenddata2.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nodes/object_nodes/set_blenddata2.py b/nodes/object_nodes/set_blenddata2.py index 32d6fd426..24e912dc8 100644 --- a/nodes/object_nodes/set_blenddata2.py +++ b/nodes/object_nodes/set_blenddata2.py @@ -60,7 +60,7 @@ class SvSetDataObjectNodeMK2(bpy.types.Node, SverchCustomTreeNode, SvAnimatableN Prop = self.formula objs = O.sv_get() - print('objs:', objs) + self.info(f'objs: {objs}') if isinstance(objs[0], list): if V.is_linked: -- GitLab From 761e5b3ddf2bfb4df6933b4b5eec141367d6b1d2 Mon Sep 17 00:00:00 2001 From: zeffii Date: Sun, 10 May 2020 10:48:02 +0200 Subject: [PATCH 05/17] remove self.info --- nodes/object_nodes/set_blenddata2.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/nodes/object_nodes/set_blenddata2.py b/nodes/object_nodes/set_blenddata2.py index 24e912dc8..10793e261 100644 --- a/nodes/object_nodes/set_blenddata2.py +++ b/nodes/object_nodes/set_blenddata2.py @@ -60,8 +60,6 @@ class SvSetDataObjectNodeMK2(bpy.types.Node, SverchCustomTreeNode, SvAnimatableN Prop = self.formula objs = O.sv_get() - self.info(f'objs: {objs}') - if isinstance(objs[0], list): if V.is_linked: v = V.sv_get() @@ -81,8 +79,6 @@ class SvSetDataObjectNodeMK2(bpy.types.Node, SverchCustomTreeNode, SvAnimatableN elif Ov.is_linked: Ov.sv_set(eval("[[i."+Prop+" for i in OBL] for OBL in objs]")) else: - if not objs: - return exec("for OL in objs:\n for i in OL:\n i."+Prop) else: if V.is_linked: @@ -98,8 +94,6 @@ class SvSetDataObjectNodeMK2(bpy.types.Node, SverchCustomTreeNode, SvAnimatableN elif Ov.is_linked: Ov.sv_set(eval("[i."+Prop+" for i in objs]")) else: - if not objs: - return exec("for i in objs:\n i."+Prop) if Oo.is_linked: Oo.sv_set(objs) -- GitLab From d158632854002b0ceea70e203265ae59d214f75b Mon Sep 17 00:00:00 2001 From: zeffii Date: Sun, 10 May 2020 10:54:08 +0200 Subject: [PATCH 06/17] add info to text loading --- utils/testing.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/utils/testing.py b/utils/testing.py index bd704a488..ff7c562ba 100644 --- a/utils/testing.py +++ b/utils/testing.py @@ -144,7 +144,7 @@ def link_node_tree(reference_blend_path, tree_name=None): if tree_name in bpy.data.node_groups: raise Exception("Tree named `{}' already exists in current scene".format(tree_name)) with bpy.data.libraries.load(reference_blend_path, link=True) as (data_src, data_dst): - info("---- Linked: %s", reference_blend_path) + info(f"---- Linked node tree: {reference_blend_path}") data_dst.node_groups = [tree_name] def link_text_block(reference_blend_path, block_name): @@ -153,6 +153,7 @@ def link_text_block(reference_blend_path, block_name): """ with bpy.data.libraries.load(reference_blend_path, link=True) as (data_src, data_dst): + info(f"---- Linked text block: {reference_blend_path}") data_dst.texts = [block_name] def create_node(node_type, tree_name=None): -- GitLab From 3512da54e71077303d51fbca49d91a6cde794778 Mon Sep 17 00:00:00 2001 From: zeffii Date: Sun, 10 May 2020 11:08:10 +0200 Subject: [PATCH 07/17] add fullpath to iojson test --- utils/sv_IO_panel_tools.py | 1 + 1 file changed, 1 insertion(+) diff --git a/utils/sv_IO_panel_tools.py b/utils/sv_IO_panel_tools.py index 0be960283..d89f0e18e 100644 --- a/utils/sv_IO_panel_tools.py +++ b/utils/sv_IO_panel_tools.py @@ -726,6 +726,7 @@ def import_tree(ng, fullpath='', nodes_json=None, create_texts=True, center=None nodes_json = json.loads(nodes_json) debug('==== loading monad ====') info(('#' * 12) + nodes_json['export_version']) + info(f"full path to this test {fullpath}") # create all nodes and groups ''' update_lists = nodes_json['update_lists'] -- GitLab From de5e703901f12c652cc1b25d035665f485753d4e Mon Sep 17 00:00:00 2001 From: zeffii Date: Sun, 10 May 2020 11:37:01 +0200 Subject: [PATCH 08/17] drastic --- nodes/object_nodes/set_blenddata2.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nodes/object_nodes/set_blenddata2.py b/nodes/object_nodes/set_blenddata2.py index 10793e261..ffa94c6bb 100644 --- a/nodes/object_nodes/set_blenddata2.py +++ b/nodes/object_nodes/set_blenddata2.py @@ -60,6 +60,8 @@ class SvSetDataObjectNodeMK2(bpy.types.Node, SverchCustomTreeNode, SvAnimatableN Prop = self.formula objs = O.sv_get() + print(self.id_data.name) + if isinstance(objs[0], list): if V.is_linked: v = V.sv_get() -- GitLab From 2d5870c68b82469eed8619a3bb22cd2e971de034 Mon Sep 17 00:00:00 2001 From: zeffii Date: Sun, 10 May 2020 11:39:23 +0200 Subject: [PATCH 09/17] drastic 2 --- nodes/object_nodes/set_blenddata2.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nodes/object_nodes/set_blenddata2.py b/nodes/object_nodes/set_blenddata2.py index ffa94c6bb..5cbf63306 100644 --- a/nodes/object_nodes/set_blenddata2.py +++ b/nodes/object_nodes/set_blenddata2.py @@ -60,7 +60,8 @@ class SvSetDataObjectNodeMK2(bpy.types.Node, SverchCustomTreeNode, SvAnimatableN Prop = self.formula objs = O.sv_get() - print(self.id_data.name) + self.info(self.id_data.name) + self.info(f"(self.id_data.nodes[:])") if isinstance(objs[0], list): if V.is_linked: -- GitLab From 196164b6f3c21ffd3fbc9a0b5384298fd46f2860 Mon Sep 17 00:00:00 2001 From: zeffii Date: Sun, 10 May 2020 11:43:29 +0200 Subject: [PATCH 10/17] drastic 3 --- nodes/object_nodes/set_blenddata2.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nodes/object_nodes/set_blenddata2.py b/nodes/object_nodes/set_blenddata2.py index 5cbf63306..037165db9 100644 --- a/nodes/object_nodes/set_blenddata2.py +++ b/nodes/object_nodes/set_blenddata2.py @@ -61,7 +61,7 @@ class SvSetDataObjectNodeMK2(bpy.types.Node, SverchCustomTreeNode, SvAnimatableN objs = O.sv_get() self.info(self.id_data.name) - self.info(f"(self.id_data.nodes[:])") + self.info(f"{[n.name for n in self.id_data.nodes]}") if isinstance(objs[0], list): if V.is_linked: -- GitLab From 6c1b70def346cb72fc285efefec195c1cb11ae84 Mon Sep 17 00:00:00 2001 From: zeffii Date: Sun, 10 May 2020 11:49:29 +0200 Subject: [PATCH 11/17] add comprehensive info for conversion tests --- tests/socket_conversion_tests.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tests/socket_conversion_tests.py b/tests/socket_conversion_tests.py index f01e22017..7bc4f0755 100644 --- a/tests/socket_conversion_tests.py +++ b/tests/socket_conversion_tests.py @@ -88,14 +88,18 @@ class SocketConversionTests(EmptyTreeTestCase): 'SvFormulaNodeMk3': ["x", "y"], 'SvSetDataObjectNodeMK2': ["Objects"] } + info("starting socket conversion tests") for bl_idname in tested_nodes.keys(): with self.subTest(bl_idname = bl_idname): - # Create NGon node and tested node + + info(f"creating SvNGonNode and {bl_idname}") ngon = create_node("SvNGonNode") node = create_node(bl_idname) - # Link NGon node to tested inputs + + info(f"Linking {ngon.name}'s vertex output ----> ({bl_idname}).inputs[{input_name}]") for input_name in tested_nodes[bl_idname]: self.tree.links.new(ngon.outputs["Vertices"], node.inputs[input_name]) + # Trigger processing of the NGon node, # so that there will be some data at input # of tested node. -- GitLab From fb077748000c563548ada76dd493fe6aea867f43 Mon Sep 17 00:00:00 2001 From: zeffii Date: Sun, 10 May 2020 11:50:53 +0200 Subject: [PATCH 12/17] add comprehensive info for conversion tests 2 --- tests/socket_conversion_tests.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/socket_conversion_tests.py b/tests/socket_conversion_tests.py index 7bc4f0755..0f8bbdd41 100644 --- a/tests/socket_conversion_tests.py +++ b/tests/socket_conversion_tests.py @@ -96,8 +96,8 @@ class SocketConversionTests(EmptyTreeTestCase): ngon = create_node("SvNGonNode") node = create_node(bl_idname) - info(f"Linking {ngon.name}'s vertex output ----> ({bl_idname}).inputs[{input_name}]") for input_name in tested_nodes[bl_idname]: + info(f"Linking {ngon.name}'s vertex output ----> ({bl_idname}).inputs[{input_name}]") self.tree.links.new(ngon.outputs["Vertices"], node.inputs[input_name]) # Trigger processing of the NGon node, -- GitLab From 3c78f5094887a776f81b3ce01135e4ef904ff3bb Mon Sep 17 00:00:00 2001 From: zeffii Date: Sun, 10 May 2020 11:54:29 +0200 Subject: [PATCH 13/17] not needed anymore --- nodes/object_nodes/set_blenddata2.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/nodes/object_nodes/set_blenddata2.py b/nodes/object_nodes/set_blenddata2.py index 037165db9..10793e261 100644 --- a/nodes/object_nodes/set_blenddata2.py +++ b/nodes/object_nodes/set_blenddata2.py @@ -60,9 +60,6 @@ class SvSetDataObjectNodeMK2(bpy.types.Node, SverchCustomTreeNode, SvAnimatableN Prop = self.formula objs = O.sv_get() - self.info(self.id_data.name) - self.info(f"{[n.name for n in self.id_data.nodes]}") - if isinstance(objs[0], list): if V.is_linked: v = V.sv_get() -- GitLab From ea8243dc7c5619b31b6bd85e4d431aac12d2b414 Mon Sep 17 00:00:00 2001 From: zeffii Date: Sun, 10 May 2020 11:57:02 +0200 Subject: [PATCH 14/17] what is the purpose testing verts -> obj.sock with .delta_location --- tests/socket_conversion_tests.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/socket_conversion_tests.py b/tests/socket_conversion_tests.py index 0f8bbdd41..22a40db69 100644 --- a/tests/socket_conversion_tests.py +++ b/tests/socket_conversion_tests.py @@ -96,6 +96,9 @@ class SocketConversionTests(EmptyTreeTestCase): ngon = create_node("SvNGonNode") node = create_node(bl_idname) + if bl_idname == "SvSetDataObjectNodeMK2": + node.formula = "" + for input_name in tested_nodes[bl_idname]: info(f"Linking {ngon.name}'s vertex output ----> ({bl_idname}).inputs[{input_name}]") self.tree.links.new(ngon.outputs["Vertices"], node.inputs[input_name]) -- GitLab From 34bb76f9c3623a2cc8b83d8145cae32d9b91fcb5 Mon Sep 17 00:00:00 2001 From: zeffii Date: Sun, 10 May 2020 12:02:11 +0200 Subject: [PATCH 15/17] atleast have it doing some possible usecase --- tests/socket_conversion_tests.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/socket_conversion_tests.py b/tests/socket_conversion_tests.py index 22a40db69..2557b54ff 100644 --- a/tests/socket_conversion_tests.py +++ b/tests/socket_conversion_tests.py @@ -97,7 +97,7 @@ class SocketConversionTests(EmptyTreeTestCase): node = create_node(bl_idname) if bl_idname == "SvSetDataObjectNodeMK2": - node.formula = "" + node.formula = "__str__()" for input_name in tested_nodes[bl_idname]: info(f"Linking {ngon.name}'s vertex output ----> ({bl_idname}).inputs[{input_name}]") -- GitLab From f642367a8bf551491c77d206ef1a0e2e59aa1183 Mon Sep 17 00:00:00 2001 From: zeffii Date: Sun, 10 May 2020 12:04:34 +0200 Subject: [PATCH 16/17] remove explicit prints --- tests/socket_conversion_tests.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/socket_conversion_tests.py b/tests/socket_conversion_tests.py index 2557b54ff..34992cd1b 100644 --- a/tests/socket_conversion_tests.py +++ b/tests/socket_conversion_tests.py @@ -92,7 +92,7 @@ class SocketConversionTests(EmptyTreeTestCase): for bl_idname in tested_nodes.keys(): with self.subTest(bl_idname = bl_idname): - info(f"creating SvNGonNode and {bl_idname}") + # info(f"creating SvNGonNode and {bl_idname}") ngon = create_node("SvNGonNode") node = create_node(bl_idname) @@ -100,7 +100,7 @@ class SocketConversionTests(EmptyTreeTestCase): node.formula = "__str__()" for input_name in tested_nodes[bl_idname]: - info(f"Linking {ngon.name}'s vertex output ----> ({bl_idname}).inputs[{input_name}]") + # info(f"Linking {ngon.name}'s vertex output ----> ({bl_idname}).inputs[{input_name}]") self.tree.links.new(ngon.outputs["Vertices"], node.inputs[input_name]) # Trigger processing of the NGon node, -- GitLab From bce4f8d0ea683f510325531403d9b7c8fd4ee2e4 Mon Sep 17 00:00:00 2001 From: zeffii Date: Sun, 10 May 2020 12:12:26 +0200 Subject: [PATCH 17/17] remove excess info --- utils/sv_IO_panel_tools.py | 3 ++- utils/testing.py | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/utils/sv_IO_panel_tools.py b/utils/sv_IO_panel_tools.py index d89f0e18e..f3b85c90d 100644 --- a/utils/sv_IO_panel_tools.py +++ b/utils/sv_IO_panel_tools.py @@ -726,7 +726,7 @@ def import_tree(ng, fullpath='', nodes_json=None, create_texts=True, center=None nodes_json = json.loads(nodes_json) debug('==== loading monad ====') info(('#' * 12) + nodes_json['export_version']) - info(f"full path to this test {fullpath}") + # info(f"full path: {basename(fullpath)}") # create all nodes and groups ''' update_lists = nodes_json['update_lists'] @@ -758,6 +758,7 @@ def import_tree(ng, fullpath='', nodes_json=None, create_texts=True, center=None ng.update() ng.update_tag() ng.sv_process = previous_state + info("done, exiting generate_layout cleanly") # ---- read files (.json or .zip) or straight json data ----- diff --git a/utils/testing.py b/utils/testing.py index ff7c562ba..3542a3cbc 100644 --- a/utils/testing.py +++ b/utils/testing.py @@ -144,7 +144,7 @@ def link_node_tree(reference_blend_path, tree_name=None): if tree_name in bpy.data.node_groups: raise Exception("Tree named `{}' already exists in current scene".format(tree_name)) with bpy.data.libraries.load(reference_blend_path, link=True) as (data_src, data_dst): - info(f"---- Linked node tree: {reference_blend_path}") + info(f"---- Linked node tree: {basename(reference_blend_path)}") data_dst.node_groups = [tree_name] def link_text_block(reference_blend_path, block_name): @@ -153,7 +153,7 @@ def link_text_block(reference_blend_path, block_name): """ with bpy.data.libraries.load(reference_blend_path, link=True) as (data_src, data_dst): - info(f"---- Linked text block: {reference_blend_path}") + info(f"---- Linked text block: {basename(reference_blend_path)}") data_dst.texts = [block_name] def create_node(node_type, tree_name=None): -- GitLab