o
    >h(                     @   s
  d dl mZ d dlmZ dZeG dd deZeG dd deZeG dd	 d	eZeG d
d deZ	eG dd deZ
eG dd deZeG dd deZeejG dd deZeejG dd deZeejG dd deZG dd deZdS )    )public)error)ErrorSessionNotReadySerializationErrorInvalidUriErrorProtocolErrorTransportLostApplicationErrorNotAuthorized
InvalidUriInvalidPayloadTypeCheckErrorc                   @      e Zd ZdZdS )r   z8
    Base class for all exceptions related to WAMP.
    N__name__
__module____qualname____doc__ r   r   w/var/www/vedio/testing/chatpythonscript.ninositsolution.com/env/lib/python3.10/site-packages/autobahn/wamp/exception.pyr   .       r   c                   @   r   )r   zp
    The application tried to perform a WAMP interaction, but the
    session is not yet fully established.
    Nr   r   r   r   r   r   5   r   r   c                   @   r   )r   z
    Exception raised when the WAMP serializer could not serialize the
    application payload (``args`` or ``kwargs`` for ``CALL``, ``PUBLISH``, etc).
    Nr   r   r   r   r   r   =   r   r   c                   @   r   )r   z=
    Exception raised when an invalid WAMP URI was used.
    Nr   r   r   r   r   r   E   r   r   c                   @   r   )r   z
    Exception raised when WAMP protocol was violated. Protocol errors
    are fatal and are handled by the WAMP implementation. They are
    not supposed to be handled at the application level.
    Nr   r   r   r   r   r   L   r   r   c                   @   r   )r	   zk
    Exception raised when the transport underlying the WAMP session
    was lost or is not connected.
    Nr   r   r   r   r   r	   U   r   r	   c                   @   s   e Zd ZdZdZ	 dZ	 dZ	 dZ	 dZ	 dZ		 dZ
	 d	Z	 d
Z	 dZ	 dZ	 dZ	 dZ	 dZ	 dZ	 dZ	 dZ	 dZ	 dZ	 dZ	 dZ	 dZ	 dZ	 dZ	 dZ	 dZ	 dZ	 dd Ze dd  Z!d!d" Z"d#d$ Z#d%S )&r
   z]
    Base class for all exceptions that can/may be handled
    at the application level.
    zwamp.error.invalid_urizwamp.error.invalid_payloadz wamp.error.payload_size_exceededzwamp.error.no_such_procedurez#wamp.error.procedure_already_existsz<wamp.error.procedure_exists_with_different_invocation_policyzwamp.error.no_such_registrationzwamp.error.no_such_subscriptionzwamp.error.no_such_sessionzwamp.error.invalid_argumentzwamp.error.system_shutdownzwamp.error.close_realmzwamp.error.goodbye_and_outzwamp.error.not_authorizedzwamp.error.authorization_failedz wamp.error.authentication_failedzwamp.error.no_auth_methodzwamp.error.no_such_realmzwamp.error.no_such_rolezwamp.error.no_such_principalzwamp.error.canceledzwamp.error.timeoutzwamp.error.no_eligible_calleezwamp.error.no_payload_codecz*wamp.error.encryption.trusted_uri_mismatchz#wamp.error.encryption.decrypt_errorzwamp.error.type_check_errorc                 O   sh   t j| g|R   || _|| _|dd| _|dd| _|dd| _|dd| _|dd| _	dS )z

        :param error: The URI of the error that occurred, e.g. ``wamp.error.not_authorized``.
        :type error: str
        enc_algoNcalleecallee_authidcallee_authroleforward_for)
	Exception__init__kwargsr   popr   r   r   r   r   )selfr   argsr   r   r   r   r     s   zApplicationError.__init__c                 C   s    d | jddd | jD S )zt
        Get the error message of this exception.

        :returns: The error message.
        :rtype: str
        z{0}: {1} c                 S   s   g | ]}t |qS r   )str).0ar   r   r   
<listcomp>  s    z2ApplicationError.error_message.<locals>.<listcomp>)formatr   joinr"   r!   r   r   r   error_message  s   zApplicationError.error_messagec                 C   sb   | j rd| j v rd| j d d }d| j d< nd}d| jt| j| j | j| j| j| j	| j
|	S )N	tracebackz:

z... zApplicationError(error=<{0}>, args={1}, kwargs={2}, enc_algo={3}, callee={4}, callee_authid={5}, callee_authrole={6}, forward_for={7}){8})r   r    r(   r   listr"   r   r   r   r   r   )r!   tbr   r   r   __unicode__  s   &zApplicationError.__unicode__c                 C   s   |   S N)r1   r*   r   r   r   __str__'  s   zApplicationError.__str__N)$r   r   r   r   INVALID_URIINVALID_PAYLOADPAYLOAD_SIZE_EXCEEDEDNO_SUCH_PROCEDUREPROCEDURE_ALREADY_EXISTS+PROCEDURE_EXISTS_INVOCATION_POLICY_CONFLICTNO_SUCH_REGISTRATIONNO_SUCH_SUBSCRIPTIONNO_SUCH_SESSIONINVALID_ARGUMENTSYSTEM_SHUTDOWNCLOSE_REALMGOODBYE_AND_OUTNOT_AUTHORIZEDAUTHORIZATION_FAILEDAUTHENTICATION_FAILEDNO_AUTH_METHODNO_SUCH_REALMNO_SUCH_ROLENO_SUCH_PRINCIPALCANCELEDTIMEOUTNO_ELIGIBLE_CALLEEENC_NO_PAYLOAD_CODECENC_TRUSTED_URI_MISMATCHENC_DECRYPT_ERRORTYPE_CHECK_ERRORr   r   r+   r1   r3   r   r   r   r   r
   ]   sz    
	r
   c                   @   r   )r   z:
    Not authorized to perform the respective action.
    Nr   r   r   r   r   r   +  r   r   c                   @   r   )r   J
    The URI for a topic, procedure or error is not a valid WAMP URI.
    Nr   r   r   r   r   r   2  r   r   c                   @   r   )r   rO   Nr   r   r   r   r   r   9  r   r   c                       s    e Zd ZdZ fddZ  ZS )r   z{
    The URI for a topic published with invalid argument types or a
    procedure called with invalid arguments types.
    c                    s    t  jtjg|R i | d S r2   )superr   r
   rN   )r!   r"   r   	__class__r   r   r   E  s    zTypeCheckError.__init__)r   r   r   r   r   __classcell__r   r   rQ   r   r   @  s    r   N)autobahn.utilr   autobahn.wamp.urir   __all__RuntimeErrorr   r   r   r   r   r	   r
   rA   r   r   r4   r   r5   r   r   r   r   r   r   <module>   s2    N