| 12345678910111213141516171819202122232425262728293031323334353637 |
- from typing import Any, Optional, Tuple
- from ray.util.annotations import DeveloperAPI
- @DeveloperAPI
- class NodeLaunchException(Exception):
- """A structured exception that can be thrown by a node provider during a
- `create_node` call to pass additional information for observability.
- """
- def __init__(
- self,
- category: str,
- description: str,
- src_exc_info: Optional[Tuple[Any, Any, Any]], # The
- ):
- """Args:
- category: A short (<20 chars) label for the error.
- description: A longer, human readable description of the error.
- src_exc_info: The source exception info if applicable. This is a
- tuple of (type, exception, traceback) as returned by
- sys.exc_info()
- """
- super().__init__(f"Node Launch Exception ({category}): {description}")
- self.category = category
- self.description = description
- self.src_exc_info = src_exc_info
- def __reduce__(self):
- # NOTE: Since tracebacks can't be pickled, we'll drop the optional
- # traceback if we have to serialize this object.
- return (
- self.__class__,
- (self.category, self.description, None),
- )
|