
    a4                     z    d dl Z d dlmZ d dlmZ ddlmZ  G d de          Ze	fdZ
e
xZxZZe
d	             ZdS )
    Nwraps)reraise   )	Tracebackc                   0    e Zd Zd Zed             Zd ZdS )Errorc                 J    || _         || _        t          |          | _        d S N)exc_type	exc_valuer   _Error__traceback)selfr   r   	tracebacks       0lib/python3.11/site-packages/tblib/decorators.py__init__zError.__init__
   s&     "$Y//    c                 4    | j                                         S r   )r   as_tracebackr   s    r   r   zError.traceback   s    ,,...r   c                 F    t          | j        | j        | j                   d S r   )r   r   r   r   r   s    r   r   zError.reraise   s     t~t~>>>>>r   N)__name__
__module____qualname__r   propertyr   r    r   r   r	   r	   	   sM        0 0 0
 / / X/? ? ? ? ?r   r	   c                 @     t                      fd            }|S )Nc                  `    	  | i |S # $ r t          t          j                     cY S w xY wr   )r	   sysexc_info)argskwargsr   funcs     r   return_exceptions_wrapperz/return_error.<locals>.return_exceptions_wrapper   sO    	*4(((( 	* 	* 	*#,..))))	*s    --r   )r#   r   r$   s   `` r   return_errorr%      s:    
4[[* * * * * [* %$r   c                 (     | d         | dd          S )z
    args is a tuple where the first argument is a callable.

    eg::

        apply_with_return_error((func, 1, 2, 3)) - this will call func(1, 2, 3)

    r   r   Nr   )r!   s    r   apply_with_return_errorr'   %   s     47DHr   )r   	functoolsr   sixr    r   objectr	   	Exceptionr%   returns_errorreturn_errorsreturns_errorsr'   r   r   r   <module>r0      s    



                  ? ? ? ? ?F ? ? ? !* % % % % 2> = = 	 	 	 	 	r   