in mujoco_py/utils.py [0:0]
def rec_assign(node, assign):
# Assigns values to node recursively.
# This is neccessary to avoid overriding pointers in MuJoCo.
for field in dir(node):
if field.find("__") == -1 and field != 'uintptr':
val = getattr(node, field)
if isinstance(val, (int, bool, float, None.__class__, str)):
setattr(node, field, assign[field])
elif isinstance(val, np.ndarray):
val[:] = assign[field][:]
elif not hasattr(val, "__call__"):
rec_assign(val, assign[field])