As far as I can tell, bpy.data.scenes['your_scene'].copy()
will give the exact same result as bpy.ops.scene.new(type='LINK_COPY')
except for one detail: the new scene has 0 user and gets added to the orphan data.
This is not an intended feature and there's no python command to properly fix that. However, there's no need to worry, as the scene will actually not get deleted if you save and revert the file, contrary to any other orphan data.
Still, if it's uncomfortable for you, it's possible to give the scene 1 user by doing any of these:
- adding a fake user:
bpy.data.scenes['your_scene'].use_fake_user = True
or
- saving and reloading the file
or
- performing any operation and undoing it with Ctrl+Z (currently, the undo operator reloads many components of the file so I guess it works for the same reason reloading the file works too)
Side note:
You can also do the equivalent of bpy.ops.scene.new(type='EMPTY')
(called "Copy Settings" in the interface) this way:
Sc = bpy.data.scenes['your_scene'].copy()
for col in Sc.collection.children:
NewSc.collection.children.unlink(col)
for obj in Sc.collection.objects:
NewSc.collection.objects.unlink(obj)