Get the Parent Path for a Prim Path#

If you want have a Prim path and you want to get the Prim path of its parent, you can use Sdf.Path.GetParentPath().

from pxr import Sdf

def get_parent_path(prim_path: Sdf.Path) -> Sdf.Path:
    parent_path = prim_path.GetParentPath()
    return parent_path

#############
# Full Usage
#############
from pxr import Usd, UsdGeom

# Create an in-memory Stage with /World Xform prim as the default prim
stage: Usd.Stage = Usd.Stage.CreateInMemory()
default_prim: Usd.Prim = UsdGeom.Xform.Define(stage, Sdf.Path("/World")).GetPrim()
stage.SetDefaultPrim(default_prim)
cone_prim = UsdGeom.Cone.Define(stage, Sdf.Path("/World/Cone")).GetPrim()

# Given Sdf.Path('/World/Cone') for my_prim_path, parent_path will contain Sdf.Path('/World')
parent_path = get_parent_path(cone_prim.GetPrimPath())

usda = stage.GetRootLayer().ExportToString()
print(usda)

assert parent_path == default_prim.GetPrimPath()

This is an example USDA result from adding a Cone to the a World Prim.

#usda 1.0
(
    defaultPrim = "World"
)

def Xform "World"
{
    def Cone "Cone"
    {
    }
}