How to add socket to skeletal mesh?

I want to add socket to skeletal mesh, by Python.
I’ve found add_socket

https://docs.unrealengine.com/5.1/en-US/PythonAPI/class/SkeletalMesh.html#unreal.SkeletalMesh.add_socket

it requires “SkeletalMeshSocket” as parameter

https://docs.unrealengine.com/5.1/en-US/PythonAPI/class/SkeletalMeshSocket.html

The question is:
How to create object with “SkeletalMeshSocket” object, for passing it to

unreal.SkeletalMesh.add_socket( xxx )

method?

you can do this only with c++

.h file:

UFUNCTION(BlueprintCallable, Category = "PyToolkit|Socket")
static USkeletalMeshSocket *AddSkeletalMeshSocket(USkeleton *InSkeleton, FName InBoneName);

UFUNCTION(BlueprintCallable, Category = "PyToolkit|Socket")
static void DeleteSkeletalMeshSocket(USkeleton *InSkeleton, TArray<USkeletalMeshSocket *> SocketList);

.cpp file:

USkeletalMeshSocket *UPyToolkitBPLibrary::AddSkeletalMeshSocket(USkeleton *InSkeleton, FName InBoneName)
{
    USkeletalMeshSocket *socket = nullptr;

    ISkeletonEditorModule &SkeletonEditorModule = FModuleManager::LoadModuleChecked<ISkeletonEditorModule>("SkeletonEditor");
    TSharedRef<IEditableSkeleton> EditableSkeleton = SkeletonEditorModule.CreateEditableSkeleton(InSkeleton);
    socket = EditableSkeleton->AddSocket(InBoneName);
    return socket;
}

void UPyToolkitBPLibrary::DeleteSkeletalMeshSocket(USkeleton *InSkeleton, TArray<USkeletalMeshSocket *> SocketList)
{
    InSkeleton->Modify();
    for (USkeletalMeshSocket *Socket : SocketList)
    {
        InSkeleton->Sockets.Remove(Socket);
    }
    ISkeletonEditorModule &SkeletonEditorModule = FModuleManager::LoadModuleChecked<ISkeletonEditorModule>("SkeletonEditor");
    TSharedRef<IEditableSkeleton> EditableSkeleton = SkeletonEditorModule.CreateEditableSkeleton(InSkeleton);
    EditableSkeleton->RefreshBoneTree();
}