@@ -48,42 +48,42 @@ def __init__(
4848 message : str ,
4949 * ,
5050 type : HandlerErrorType ,
51- retry_behavior : Optional [HandlerErrorRetryBehavior ] = None ,
51+ retryable_override : Optional [bool ] = None ,
5252 ):
5353 """
5454 Initialize a new HandlerError.
5555
56- :param message: A descriptive message for the error. This will become the
57- `message` in the resulting Nexus Failure object.
56+ :param message: A descriptive message for the error. This will become
57+ the `message` in the resulting Nexus Failure object.
5858
5959 :param type: The :py:class:`HandlerErrorType` of the error.
6060
61- :param retry_behavior: Optional retry behavior for the error.
61+ :param retryable_override: Optionally set whether the error should be
62+ retried. By default, the error type is used
63+ to determine this.
6264 """
6365 super ().__init__ (message )
6466 self ._type = type
65- self ._retry_behavior = retry_behavior
67+ self ._retryable_override = retryable_override
6668
6769 @property
68- def retry_behavior (self ) -> Optional [HandlerErrorRetryBehavior ]:
70+ def retryable_override (self ) -> Optional [bool ]:
6971 """
70- The retry behavior set for this error.
72+ The optional retryability override set when this error was created .
7173 """
72- return self ._retry_behavior
74+ return self ._retryable_override
7375
7476 @property
7577 def retryable (self ) -> bool :
7678 """
7779 Whether this error should be retried.
7880
79- If :py:attr:`retry_behavior ` is None, then the default behavior for the error
80- type is used. See
81+ If :py:attr:`retryable_override ` is None, then the default behavior for the
82+ error type is used. See
8183 https://github.com/nexus-rpc/api/blob/main/SPEC.md#predefined-handler-errors
8284 """
83- if self .retry_behavior == HandlerErrorRetryBehavior .RETRYABLE :
84- return True
85- elif self .retry_behavior == HandlerErrorRetryBehavior .NON_RETRYABLE :
86- return False
85+ if self ._retryable_override is not None :
86+ return self ._retryable_override
8787
8888 non_retryable_types = {
8989 HandlerErrorType .BAD_REQUEST ,
@@ -116,22 +116,6 @@ def type(self) -> HandlerErrorType:
116116 return self ._type
117117
118118
119- class HandlerErrorRetryBehavior (Enum ):
120- """
121- Retry behavior for a handler error.
122- """
123-
124- RETRYABLE = "RETRYABLE"
125- """
126- The error should be retried.
127- """
128-
129- NON_RETRYABLE = "NON_RETRYABLE"
130- """
131- The error should not be retried.
132- """
133-
134-
135119class HandlerErrorType (Enum ):
136120 """Nexus handler error types.
137121
0 commit comments