
    ph                         S SK r S SKJr  S SKJr  SSKJr  SSKJr  S rSS.S	 jr	S
 r
SS jr\R                  \R                  4\R                  \R                  44S jrS rSS.S jrS rg)    N)partial)TracebackType   )Frame)	Tracebackc                 x    [         R                  [        5      nXl        Xl        X#l        UR                  5       $ N)object__new__r   tb_frame	tb_linenotb_nextas_traceback)r   r   r   rets       P/home/james-whalen/.local/lib/python3.13/site-packages/tblib/pickling_support.pyunpickle_tracebackr   	   s.    
..
#CLMK    
get_localsc                    [         [        U R                  US9U R                  U R                  =(       a    [        U R                  US944$ )Nr   )r   r   r   r   r   r   )tbr   s     r   pickle_tracebackr      s@    bkkj1



Cy
C   r   c                     U R                  U 5      nUR                  5        H  u  p[        XxU	5        M     X'l        X7l        XGl        XWl        Ub  Xgl        U$ r	   )r   itemssetattr	__cause____traceback____context____suppress_context__	__notes__)
funcattrscauser   contextsuppress_contextnotesinstkeyvalues
             r   unpickle_exception_with_attrsr*      sS    <<Dkkm
5! $N 0Kr   c                 R    U " U6 nX'l         X7l        XGl        XWl        Ub  Xgl        U$ r	   )r   r   r   r   r    )r!   argsr#   r   r$   r%   r&   r'   s           r   unpickle_exceptionr-   (   s2    ;DN 0Kr   c                    U R                  5       n[        U[        5      (       a  [        S5      e[	        U 5      nUR                   U;   a  UR
                  U;  a  UtpVnU R                  U R                  S.n[        U [        5      (       ap  UR                  U R                  U R                  S9  [        U SS 5      =n	b  XS'   U R                  b  U R                  US'   U R                  b  U R                  US'   [        UUU R                   U R"                  U R$                  U R&                  [        U SS 5      4/UQ7$ UtpFn[(        UUU R                   U R"                  U R$                  U R&                  [        U SS 5      4/UQ7$ )Nz;Did not expect {repr(obj)}.__reduce__() to return a string!)__dict__r,   )errnostrerrorwinerrorfilename	filename2r    )
__reduce__
isinstancestr	TypeErrortype__init__r/   r,   OSErrorupdater0   r1   getattrr3   r4   r*   r   r   r   r   r-   )
objbuiltin_reducersbuiltin_initsreduced_valuer!   _r,   	optionalsr"   r2   s
             r   pickle_exceptionrD   3   s    NN$M-%%UVV9D **t}}M/Q+)HH
 c7##LLsyy3<<L@#CT::G$,j!||'$'LLj!}}(%(]]k" *!!(([$/	
 
 	
 "/Y !!(([$/	
 
 	
r   c              #      #    U /nU(       a:  UR                  5       nUv   U[        UR                  5       5      -  nU(       a  M9  g g 7fr	   )poplist__subclasses__)clsto_visitthiss      r   _get_subclassesrL   m   s>     uH
||~
D,,.// (s   AAAc                 
   [         R                  " [        [        [        U S95        U(       d2  [        [        5       H  n[         R                  " U[        5        M      gU H  n[        U[        5      (       a  [        U[        5       5        M.  [        U[        5      (       aE  [        U[        5      (       a0  [         R                  " U[        5        [        U5      S:X  a  Us  $ M  [        S[        U5       35      e   g)z
Args:

    get_locals (callable): A function that take a frame argument and returns a dict. See :class:`tblib.Traceback` class for example.
r   Nr   z7Expected subclasses or instances of BaseException, got )copyregpickler   r   r   rL   BaseExceptionrD   r6   _install_for_instancesetr9   
issubclasslenr8   )r   exc_classes_or_instancesexception_clsexcs       r   installrX   v   s     NN='*:z"RS#,];MNN=*:; <'c=))!#su-T""z#}'E'ENN3 01+,1
 2 UVZ[^V_U`abb (r   c                 4   [        U [        5      (       d   e[        U 5      U;   a  g UR                  [        U 5      5        [        R
                  " [        U 5      [        5        U R                  b  [        U R                  U5        U R                  b  [        U R                  U5        [        U S5      (       a\  [        U R                  [        [        45      (       a6  U R                   H%  n[        U[        5      (       d  M  [        X!5        M'     g g g )N
exceptions)r6   rP   idaddrN   rO   r9   rD   r   rQ   r   hasattrrZ   tuplerG   )rW   seensubexcs      r   rQ   rQ      s    c=))))
 
#w$HHRWNN49./
}} cmmT2
"coot4 sL!!j%&O&OnnF&-00%f3 % 'P!r   )NFN)rN   	functoolsr   typesr    r   r   r   r   r*   r-   r;   r5   rP   r:   rD   rL   rX   rQ    r   r   <module>re      s         (, 
 #--}/G/GHY`YiYikx  lB  lB  YC7
t0 37 c24r   