Compositor: remove scene.node_tree from Python API

Since we are removing `scene.use_nodes` in #143578, most developers
will have to update their python script by replacing `scene.node_tree`
by `scene.compositing_node_group` in order to create a new compositing
 node tree anyways. So we remove `scene.node_tree`.

Note: `scene->nodetree` in `scene_blend_write()` is still being written
to the blend file, so forward compatibility is not affected by this PR.

Pull Request: https://projects.blender.org/blender/blender/pulls/143619
This commit is contained in:
Habib Gahbiche
2025-08-01 10:30:11 +02:00
parent d415890708
commit d04ae09aff
4 changed files with 7 additions and 15 deletions

View File

@@ -217,7 +217,7 @@ class NodeGroupVersioning36Test(AbstractNodeGroupInterfaceTest):
def test_load_compositor_nodes(self):
self.open_file()
tree = bpy.data.scenes['Scene'].node_tree
tree = bpy.data.scenes['Scene'].compositing_node_group
group = bpy.data.node_groups.get('NodeGroup')
self.assertIsNotNone(group, "Compositor node group not found")
node = tree.nodes['Group']
@@ -306,7 +306,7 @@ class NodeGroupVersioning25Test(AbstractNodeGroupInterfaceTest):
def test_load_compositor_nodes(self):
self.open_file()
tree = bpy.data.scenes['Scene'].node_tree
tree = bpy.data.scenes['Scene'].compositing_node_group
group = bpy.data.node_groups.get('NodeGroup.002')
self.assertIsNotNone(group, "Compositor node group not found")
node = tree.nodes['NodeGroup.002']

View File

@@ -188,8 +188,8 @@ def check_linked_scene_copying():
# check node's props
# must point to own scene camera
intern_sys_idprops = intern_sce.node_tree.nodes['Render Layers'].bl_system_properties_get()
extern_sys_idprops = extern_sce.node_tree.nodes['Render Layers'].bl_system_properties_get()
intern_sys_idprops = intern_sce.compositing_node_group.nodes['Render Layers'].bl_system_properties_get()
extern_sys_idprops = extern_sce.compositing_node_group.nodes['Render Layers'].bl_system_properties_get()
expect_false_or_abort(
intern_sys_idprops["prop"] and not (intern_sys_idprops["prop"] == extern_sys_idprops["prop"]))
@@ -210,8 +210,8 @@ def check_scene_copying():
# check node's props
# must point to own scene camera
first_sys_idprops = first_sce.node_tree.nodes['Render Layers'].bl_system_properties_get()
second_sys_idprops = second_sce.node_tree.nodes['Render Layers'].bl_system_properties_get()
first_sys_idprops = first_sce.compositing_node_group.nodes['Render Layers'].bl_system_properties_get()
second_sys_idprops = second_sce.compositing_node_group.nodes['Render Layers'].bl_system_properties_get()
expect_false_or_abort(not (first_sys_idprops["prop"] == second_sys_idprops["prop"]))

View File

@@ -206,7 +206,7 @@ class FileOutputTest(unittest.TestCase):
bpy.ops.wm.open_mainfile(filepath=blendfile)
# Set output directory for all existing file output nodes.
set_basepath(bpy.data.scenes[0].node_tree, f'{curr_out_dir}/')
set_basepath(bpy.data.scenes[0].compositing_node_group, f'{curr_out_dir}/')
bpy.data.scenes[0].render.compositor_device = f'{self.execution_device}'
bpy.ops.render.render()