how to create node group inside another node group using Python script I wan't to create a node group "testgroup1" inside "testgroup0" using python script can anybody explain me how to do that?
Here is some Python functions to manipulate groups and group instances.

Principally, there is two aspects:


Groups are stored in Blender's data in bpy.data.node_groups
Inside a material or another group, a group needs to be instantiated so that it is link to this material or other group


The code is commented below:

import bpy

def create_material( name, use_nodes = True, clear = True ):
    """ 
    Create a material of the given name. 

    Parameters: 
    name (string): the name of the material to create 
    use_nodes (bool, default True): if True the material is ready to have nodes  
    clear (bool, default True): if True clear default nodes

    Returns: 
    material: The created material 
    """
    material = bpy.data.materials.new( name )
    material.use_nodes = use_nodes
    # Materials are created with two default nodes, so we may want to clear them
    if clear:
        clear_material( material )
    return material

def clear_material( material ):
    """
    Remove all node of the given material

    Parameters: 
    material (material): the material to clear 
    """
    if material.node_tree:
        material.node_tree.links.clear()
        material.node_tree.nodes.clear()

def create_group( name ):
    """
    Create a group in Blender's data

    Parameters:
    name (string): the name of the material

    Returns:
    group (group): the created group
    """
    group = bpy.data.node_groups.new( name, 'ShaderNodeTree' )
    return group

def instanciate_group( nodes, group ):
    """
    Instanciate a group inside a node tree

    Parameters
    nodes: the nodes of the node tree in which the group is to instantiate
    group: the group to instanciate

    Returns:
    instance: the created group instance
    """
    instance = nodes.new( type = 'ShaderNodeGroup' )
    instance.node_tree = group
    return instance

# Example:

# Create a material
material = create_material( "mat" )
# Create group0
group0 = create_group( "group0" )
# Create group1
group1 = create_group( "group1" )

# Instantiate the group0 into the material
group0_instance = instanciate_group( material.node_tree.nodes, group0 )
# Instantiate the group1 into group0
group1_instance = instanciate_group( group0.nodes, group1 )