| 177 | error_msg = str(self) |
| 178 | |
| 179 | class cls(RayTaskError, cause_cls): |
| 180 | def __init__(self, cause): |
| 181 | self.cause = cause |
| 182 | # Store args separately to avoid writing to user-defined |
| 183 | # read-only or property-based `args`. |
| 184 | self._ray_task_error_args = (cause,) |
| 185 | |
| 186 | @property |
| 187 | def args(self): |
| 188 | return self._ray_task_error_args |
| 189 | |
| 190 | @args.setter |
| 191 | def args(self, value): |
| 192 | self._ray_task_error_args = value |
| 193 | |
| 194 | def __reduce__(self): |
| 195 | return (cls, self._ray_task_error_args) |
| 196 | |
| 197 | def __getattr__(self, name): |
| 198 | return getattr(self.cause, name) |
| 199 | |
| 200 | def __str__(self): |
| 201 | return error_msg |
| 202 | |
| 203 | name = f"RayTaskError({cause_cls.__name__})" |
| 204 | cls.__name__ = name |
no outgoing calls