in mujoco_py/utils.py [0:0]
def rec_copy(node):
# Recursively copies object to dictionary.
# Applying directly copy.deepcopy causes seg fault.
ret = {}
for field in dir(node):
if field.find("__") == -1:
val = getattr(node, field)
if isinstance(val, (int, bool, float, None.__class__, str)):
ret[field] = val
elif isinstance(val, np.ndarray):
ret[field] = copy.deepcopy(val)
elif not hasattr(val, "__call__"):
ret[field] = rec_copy(val)
return ret