
    i                       d dl mZ d dlZd dlZd dlZd dlmZmZ  G d de          Z	 G d de          Z
 G d d	e
          Z G d
 de          Z G d de
          Z G d de
          Z G d de
          Z G d de
          Z G d de
          Z G d de
          Z G d de
          Z G d de
          Z G d de
          Z G d de
          Z G d  d!e
          Z G d" d#e
          Z G d$ d%e
          Z G d& d'e
          Z G d( d)e
          Z G d* d+e
          Z G d, d-e
          Zd6d2Zd6d3Zej          G d4 d5ej!                              Z"dS )7    )annotationsN)
server_lib
transformsc                      e Zd ZdZdS )UnreachableErrorzz
    We should never raise this error. Its only purpose is to explicitly indicate
    theoretically unreachable code.
    N)__name__
__module____qualname____doc__     U/root/projects/qq-shell/venv/lib/python3.11/site-packages/inngest/_internal/errors.pyr   r      s         
 	Dr   r   c                      e Zd ZU dZej        j        Zded<   dZ	ded<   dZ
ded<   edd
            Zedd            Zedd            ZdS )Errorz.
    Base error for all our custom errors
    server_lib.ErrorCodecodeTboolinclude_stackis_retriablereturnstrc                     t          |           S N)r   selfs    r   messagezError.message   s    4yyr   c                *    t          |           j        S r   )typer   r   s    r   namez
Error.name!   s    Dzz""r   
str | Nonec                @    | j         du rd S t          j        |           S NF)r   r   get_tracebackr   s    r   stackzError.stack%   s&    &&4'---r   Nr   r   r   r    )r   r	   r
   r   r   	ErrorCodeUNKNOWNr   __annotations__r   r   propertyr   r   r$   r   r   r   r   r      s           ",!5!=D====ML   X # # # X# . . . X. . .r   r   c                  &     e Zd Zddd fdZ xZS )
CodedErrorT)r   r   r   r   r   r   r   r   Nonec               f    t                                          |           || _        || _        d S r   )super__init__r   r   )r   r   r   r   	__class__s       r   r0   zCodedError.__init__.   s2     	!!!	(r   )r   r   r   r   r   r   r   r-   )r   r	   r
   r0   __classcell__r1   s   @r   r,   r,   -   sL         "	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)r   r,   c                  &    e Zd Zej        j        ZdS )URLInvalidErrorN)r   r	   r
   r   r'   URL_INVALIDr   r   r   r   r5   r5   :   s        +DDDr   r5   c                  >    e Zd Zej        j        Zedd            ZdS )FunctionConfigInvalidErrorerrpydantic.ValidationErrorr   c                    | t          |                    }|                                }t          |          dk    r|S |d                             d          }|t          |          dk    r|S d}|D ]8}t	          |t
                    r|c S t          |          dk    r|dz  }||z  }9|d                             d          }||S  | |d          d|           S )z{
        Extract info from Pydantic's ValidationError and return our internal
        InvalidFunctionConfig error.
        r   locN .msgz: )r   errorslenget
isinstanceint)clsr9   defaultr@   r<   fieldpartr?   s           r   from_validation_errorz0FunctionConfigInvalidError.from_validation_errorA   s     #c#hh--v;;!NQimmE"";#c((a--N 	 	D$$$ 5zzA~~TMEEQimmE"";Nsc!f%%%%&&&r   N)r9   r:   r   r8   )	r   r	   r
   r   r'   FUNCTION_CONFIG_INVALIDr   classmethodrI   r   r   r   r8   r8   >   s=        7D' ' ' [' ' 'r   r8   c                  &    e Zd Zej        j        ZdS )AsyncUnsupportedErrorN)r   r	   r
   r   r'   ASYNC_UNSUPPORTEDr   r   r   r   rM   rM   b   s        1DDDr   rM   c                  &    e Zd Zej        j        ZdS )SigVerificationFailedErrorN)r   r	   r
   r   r'   SIG_VERIFICATION_FAILEDr   r   r   r   rP   rP   f           7DDDr   rP   c                  &    e Zd Zej        j        ZdS )BodyInvalidErrorN)r   r	   r
   r   r'   BODY_INVALIDr   r   r   r   rT   rT   j   s        ,DDDr   rT   c                  &    e Zd Zej        j        ZdS )EventKeyUnspecifiedErrorN)r   r	   r
   r   r'   EVENT_KEY_UNSPECIFIEDr   r   r   r   rW   rW   n   s        5DDDr   rW   c                  &    e Zd Zej        j        ZdS )FunctionNotFoundErrorN)r   r	   r
   r   r'   FUNCTION_NOT_FOUNDr   r   r   r   rZ   rZ   r   s        2DDDr   rZ   c                  &    e Zd Zej        j        ZdS )HeaderMissingErrorN)r   r	   r
   r   r'   HEADER_MISSINGr   r   r   r   r]   r]   v   s        .DDDr   r]   c                  &    e Zd Zej        j        ZdS )QueryParamMissingErrorN)r   r	   r
   r   r'   QUERY_PARAM_MISSINGr   r   r   r   r`   r`   z           3DDDr   r`   c                  &    e Zd Zej        j        ZdS )SigningKeyMissingErrorN)r   r	   r
   r   r'   SIGNING_KEY_UNSPECIFIEDr   r   r   r   rd   rd   ~   rR   r   rd   c                  &    e Zd Zej        j        ZdS )RegistrationFailedErrorN)r   r	   r
   r   r'   REGISTRATION_FAILEDr   r   r   r   rg   rg      rb   r   rg   c                  &    e Zd Zej        j        ZdS )UnknownErrorN)r   r	   r
   r   r'   r(   r   r   r   r   rj   rj      s        'DDDr   rj   c                  *    e Zd Zej        j        ZdZdS )StepUnexpectedErrorFN)r   r	   r
   r   r'   STEP_UNEXPECTEDr   r   r   r   r   rl   rl      s        /DMMMr   rl   c                  *    e Zd Zej        j        ZdZdS )OutputUnserializableErrorFN)r   r	   r
   r   r'   OUTPUT_UNSERIALIZABLEr   r   r   r   r   ro   ro      s        5DLLLr   ro   c                  F     e Zd ZdZej        j        ZdZ	 	 dd fd
Z	 xZ
S )NonRetriableErrorz2End users can raise this error to prevent retries.FNr   r    quietr   r   r-   c                X    t                                          |           || _        d S r   )r/   r0   rs   )r   r   rs   r1   s      r   r0   zNonRetriableError.__init__   s(    
 	!!!


r   r"   )r   r    rs   r   r   r-   )r   r	   r
   r   r   r'   NON_RETRIABLE_ERRORr   r   r0   r2   r3   s   @r   rr   rr      s`        <<3DL #          r   rr   c                  <     e Zd Zej        j        Z	 dd fd
Z xZS )RetryAfterErrorFr   r    retry_after,int | datetime.timedelta | datetime.datetimers   r   r   r-   c                p   t                                          |           t          |t                    r5t          j                                        t	          j        |          z   }n;t          |t          j                  r!t          j                                        |z   }|| _        || _        dS )a  
        Raise this error to retry at a specific time.

        Args:
        ----
            message: Error message
            retry_after: Time to retry after in milliseconds, timedelta, or datetime
            quiet: Whether to supress logging
        )millisecondsN)	r/   r0   rC   rD   datetimenow	timedeltarx   rs   )r   r   rx   rs   r1   s       r   r0   zRetryAfterError.__init__   s      	!!!k3'' 	@"+//11H4F(5 5 5 KK X%788 	@"+//11K?K.9 


r   )F)r   r    rx   ry   rs   r   r   r-   )	r   r	   r
   r   r'   RETRY_AFTER_ERRORr   r0   r2   r3   s   @r   rw   rw      sR        1D 	! ! ! ! ! ! ! ! ! ! !r   rw   c                  8     e Zd Zej        j        Zd fdZ xZS )	SendEventsErrorr   r   ids	list[str]r   r-   c                X    t                                          |           || _        dS )z
        Args:
        ----
            message: Error message
            ids: List of event IDs that successfully sent
        N)r/   r0   r   )r   r   r   r1   s      r   r0   zSendEventsError.__init__   s(     	!!!r   )r   r   r   r   r   r-   )	r   r	   r
   r   r'   SEND_EVENT_FAILEDr   r0   r2   r3   s   @r   r   r      sH        1D	 	 	 	 	 	 	 	 	 	r   r   c                       e Zd ZdZej        j        ZdZe	dd            Z
e	dd            Ze	dd            Zd fdZ xZS )	StepErrorz
    Wraps a userland error. This is necessary because the Executor sends
    memoized error data which can't be deserialized into the original error
    class.
    Fr   r   c                    | j         S )z4
        Returns the userland error message
        )_messager   s    r   r   zStepError.message   s     }r   c                    | j         S )z1
        Returns the userland error name
        )_namer   s    r   r   zStepError.name   s     zr   r    c                    | j         S )z8
        Returns the userland error stack trace
        )_stackr   s    r   r$   zStepError.stack   s     {r   r   r   r$   r-   c                t    t                                          |           || _        || _        || _        dS )z
        Args:
        ----
            message: Userland error's message
            name: Userland error's name
            stack: Userland error's stack trace
        N)r/   r0   r   r   r   )r   r   r   r$   r1   s       r   r0   zStepError.__init__   s6     	!!!
r   r%   r&   )r   r   r   r   r$   r    r   r-   )r   r	   r
   r   r   r'   STEP_ERROREDr   r   r*   r   r   r$   r0   r2   r3   s   @r   r   r      s          ,D L   X    X    X         r   r   r9   	Exceptionr   r   c                >    t          | t                    r| j        S dS )NT)rC   r   r   r9   s    r   r   r   
  s"    #u  4r   c                >    t          | t                    r| j        S dS r"   )rC   
_Quietablers   r   s    r   is_quietr     s!    #z"" y5r   c                      e Zd ZU ded<   dS )r   r   rs   N)r   r	   r
   r)   r   r   r   r   r     s         KKKKKr   r   )r9   r   r   r   )#
__future__r   r|   typingpydanticinngest._internalr   r   r   r   r   r,   r5   r8   rM   rP   rT   rW   rZ   r]   r`   rd   rg   rj   rl   ro   rr   rw   r   r   r   r   runtime_checkableProtocolr   r   r   r   <module>r      s-   " " " " " "    4 4 4 4 4 4 4 4	 	 	 	 	y 	 	 	. . . . .I . . .2
) 
) 
) 
) 
) 
) 
) 
), , , , ,j , , ,!' !' !' !' !' !' !' !'H2 2 2 2 2E 2 2 28 8 8 8 8 8 8 8- - - - -u - - -6 6 6 6 6u 6 6 63 3 3 3 3E 3 3 3/ / / / / / / /4 4 4 4 4U 4 4 48 8 8 8 8U 8 8 84 4 4 4 4e 4 4 4( ( ( ( (5 ( ( (    %   
       
       ! ! ! ! !e ! ! !@    e   5 5 5 5 5 5 5 5p                r   