@@ -56,8 +56,9 @@ def __init__(self, entity, observables):
5656 def __getattr__ (self , name ):
5757 try :
5858 model_identifier = self ._entity .mjcf_model .full_identifier
59- except AttributeError :
60- raise ValueError ('cannot retrieve the full identifier of mjcf_model' )
59+ except AttributeError as exc :
60+ raise ValueError (
61+ 'cannot retrieve the full identifier of mjcf_model' ) from exc
6162 return os .path .join (model_identifier , name )
6263
6364 def __dir__ (self ):
@@ -106,8 +107,9 @@ def as_dict(self, fully_qualified=True):
106107 # otherwise __getattr__ is executed and we get a very funky error.
107108 try :
108109 model_identifier = self ._entity .mjcf_model .full_identifier
109- except AttributeError :
110- raise ValueError ('cannot retrieve the full identifier of mjcf_model' )
110+ except AttributeError as exc :
111+ raise ValueError (
112+ 'Cannot retrieve the full identifier of mjcf_model.' ) from exc
111113
112114 return collections .OrderedDict (
113115 [(os .path .join (model_identifier , name ), observable )
@@ -128,8 +130,9 @@ def get_observable(self, name, name_fully_qualified=False):
128130 if name_fully_qualified :
129131 try :
130132 model_identifier = self ._entity .mjcf_model .full_identifier
131- except AttributeError :
132- raise ValueError ('cannot retrieve the full identifier of mjcf_model' )
133+ except AttributeError as exc :
134+ raise ValueError (
135+ 'Cannot retrieve the full identifier of mjcf_model.' ) from exc
133136 return self ._observables [name .replace (model_identifier , '' )]
134137 else :
135138 return self ._observables [name ]
@@ -150,8 +153,8 @@ def set_options(self, options):
150153 for obs_key , obs_options in options .items ():
151154 try :
152155 obs = self ._observables [obs_key ]
153- except KeyError :
154- raise KeyError ('No observable with name {!r}' .format (obs_key ))
156+ except KeyError as exc :
157+ raise KeyError ('No observable with name {!r}' .format (obs_key )) from exc
155158 obs .configure (** obs_options )
156159
157160 def enable_all (self ):
0 commit comments