delete shape key by name via python

Q. how to delete shapekey by name from python…



i can get shapekey names via

iterate over existing shapekeys

obj = bpy.context.object
sk = obj.data.shape_keys
skNamesArr = sk.key_blocks
for each in skNamesArr:
print each
##########################

adding shape keys

obj.shape_key_add(“nameStr”)
##########################

removing by name seems hard…

bpy.ops.object.shape_key_remove() # this will remove selected shape key.

how to give it parameter/ datapath from above lines(where i m iterating over sk)

or how to select a shapekey from list by name, ??

another question(thanks in advance for taking time n helping me out)

Q. how to use function “foreach_get” or “foreach_set” in most of blender returned data objects.??

mmmh, seems more like a question for python support forum, have you tried there?

you could wrap it like this:

import bpy

def deleteShapekeyByName(oObject, sShapekeyName):
    
    # setting the active shapekey
    iIndex = oObject.data.shape_keys.key_blocks.keys().index(sShapekeyName)
    oObject.active_shape_key_index = iIndex
    
    # delete it
    bpy.ops.object.shape_key_remove()
    


oActiveObject = bpy.context.active_object
deleteShapekeyByName(oActiveObject, "MyShapeKey")