def hooked_leaf_step(optimizer: Any, *args: Any, **kwargs: Any) -> Any:
"""Dispatch one raw optimizer leaf through its swap wrapper."""
current = wrapper_ref()
if current is None:
raise RuntimeError("Swap optimizer wrapper has been released.")
if optimizer is not current.optimizer:
raise ValueError("Optimizer step hooks cannot replace optimizer identity.")
return current._step_impl(*args, **kwargs)
return torch.optim.Optimizer.profile_hook_step(hooked_leaf_step)