
    ph                     j    S SK r S SKJr  SSKJr  S
S jr " S S5      r\4S jr\=r	=r
r\S	 5       rg)    Nwraps   )	Tracebackc                 n     Uc  U " 5       nUR                   ULa  UR                  U5      eUe! S nS nf = fN)__traceback__with_traceback)tpvaluetbs      J/home/james-whalen/.local/lib/python3.13/site-packages/tblib/decorators.pyreraiser      sC    =DEb(&&r**s   ,. 4c                   0    \ rS rSrS r\S 5       rS rSrg)Error   c                 <    Xl         X l        [        U5      U l        g r   )exc_type	exc_valuer   _Error__traceback)selfr   r   	tracebacks       r   __init__Error.__init__   s     "$Y/    c                 6    U R                   R                  5       $ r   )r   as_tracebackr   s    r   r   Error.traceback   s    ,,..r   c                 Z    [        U R                  U R                  U R                  5        g r   )r   r   r   r   r   s    r   r   Error.reraise   s    t~~t~~>r   )__tracebackr   r   N)	__name__
__module____qualname____firstlineno__r   propertyr   r   __static_attributes__ r   r   r   r      s     0
 / /?r   r   c                 4   ^ ^ [        T 5      UU 4S j5       nU$ )Nc                  d   >  T" U 0 UD6$ ! T a    [        [        R                  " 5       6 s $ f = fr   )r   sysexc_info)argskwargsr   funcs     r   return_exceptions_wrapper/return_error.<locals>.return_exceptions_wrapper"   s8    	*((( 	*#,,.))	*s    !//r   )r0   r   r1   s   `` r   return_errorr3   !   s!    
4[* * %$r   c                     U S   " U SS 6 $ )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_errorr5   /   s     7DHr   r   )r,   	functoolsr    r   r   r   	Exceptionr3   returns_errorreturn_errorsreturns_errorsr5   r)   r   r   <module>r<      sL    
  	? ? !* % 2> = = 	 	r   