Without purposes assigned the computed extent is
[(-0.5, -0.5, -0.5), (0.5, 0.5, 0.5)]
with proxy purpose assigned
[(-0.5, -0.5, -0.5), (0.5, 0.5, 0.5), (3.4028235e38, 3.4028235e38, 3.4028235e38), (-3.4028235e38, -3.4028235e38, -3.4028235e38), (-0.5, -0.5, -0.5), (0.5, 0.5, 0.5)]
with proxy and render purpose
[(3.4028235e38, 3.4028235e38, 3.4028235e38), (-3.4028235e38, -3.4028235e38, -3.4028235e38), (-0.5, -0.5, -0.5), (0.5, 0.5, 0.5), (-0.5, -0.5, -0.5), (0.5, 0.5, 0.5)]
from pxr import UsdGeom
stage = hou.pwd().editableStage()
# The prim to copy the extents from
extent_reference_prim = stage.GetPrimAtPath("/ASSET/geo/render/shape")
# The prim to write the extents to
prim = stage.GetPrimAtPath("/ASSET")
# get the actual extents coordinates
reference_extent = extent_reference_prim.GetAttribute("extent").Get()
# create the geom model api schema
model_api = UsdGeom.ModelAPI.Apply(prim)
model_api.SetExtentsHint(reference_extent)