"""Inspect an MJCF or URDF model. Loading alone does not run its walking policy."""
import argparse, json
from pathlib import Path
import mujoco
p=argparse.ArgumentParser(description=__doc__)
p.add_argument('model',type=Path)
a=p.parse_args()
m=mujoco.MjModel.from_xml_path(str(a.model.resolve()))
print(json.dumps({'model':str(a.model),'bodies':m.nbody,'joints':m.njnt,'actuators':m.nu,'position_values':m.nq,'velocity_values':m.nv,'mass_kg':float(m.body_mass.sum()),'xml_timestep_s':m.opt.timestep},indent=2))
for j in range(m.njnt):
    print(json.dumps({'joint':m.joint(j).name,'type':int(m.jnt_type[j]),'axis':m.jnt_axis[j].tolist(),'range':m.jnt_range[j].tolist(),'limited':bool(m.jnt_limited[j]),'qpos_address':int(m.jnt_qposadr[j]),'velocity_address':int(m.jnt_dofadr[j])}))
