
    h*                         S r SSKrSSKr\R                  S   S:H  r\(       a  \4rSrO	\4rSSK	Jr  SSK
Jr  0 rSq\R                  " 5       rS rS	 rS
 rS rS r " S S5      r " S S\5      r " S S5      rS rg)zThis module implements a post import hook mechanism styled after what is
described in PEP-369. Note that it doesn't cope with modules being reloaded.

    N   )	find_spec   )ObjectProxyFc                    ^  U 4S jnU$ )Nc                    > TR                  S5      u  pUR                  S5      n[        U5        [        R                  U   nU H  n[	        XE5      nM     U" U 5      $ )N:.)split
__import__sysmodulesgetattr)modulemodule_namefunctionattrscallbackattrnames         H/home/james-whalen/.local/lib/python3.13/site-packages/wrapt/importer.pyimport_hook4_create_import_hook_from_string.<locals>.import_hook&   sV     $

3s#;;;{+Dx.H      )r   r   s   ` r   _create_import_hook_from_stringr   %   s      r   c                    [        U [        5      (       a  [        U 5      n [           [        (       d*  Sq[
        R                  R                  S[        5       5        [
        R                  R                  US 5      nUc%  [        R                  U/ 5      R                  U 5        S S S 5        Wb	  U " U5        g g ! , (       d  f       N= f)NTr   )
isinstancestring_typesr   _post_import_hooks_lock_post_import_hooks_initr   	meta_pathinsertImportHookFinderr   get_post_import_hooks
setdefaultappend)hookr   r   s      r   register_post_import_hookr*   0   s     $%%.t4	  '&&*#MM  $4$67
 t,>))$3::4@! 
!. V / 
!	 s   A>B::
Cc                    ^  U 4S jnU$ )Nc                    > [        TR                  5        [        R                  TR                     nTR                   H  n[        X5      nM     U" U 5      $ N)r   r   r   r   r   r   )r   r   r   
entrypoints      r   r   8_create_import_hook_from_entrypoint.<locals>.import_hookT   sJ    :))*;;z556$$Dx.H %r   r   )r.   r   s   ` r   #_create_import_hook_from_entrypointr0   S   s      r   c                      SS K nUR                  U S9 H#  n[        U5      n[	        X2R
                  5        M%     g ! [         a     g f = f)Nr   )group)pkg_resourcesImportErroriter_entry_pointsr0   r*   r   )r2   r3   r.   r   s       r   discover_post_import_hooksr6   \   sO     $55E5B
6zB!(OO< C  s   = 
A
	A
c                     [        U SS 5      n[           [        R                  US5      nS S S 5        W H  nU" U 5        M     g ! , (       d  f       N = f)N__name__r   )r   r    r&   pop)r   r   hooksr)   s       r   notify_module_loadedr;   k   sF    6:t,D	 "&&tR0 
! V  
!	 s   A
Ac                       \ rS rSrS rSrg)_ImportHookLoader}   c                 B    [         R                  U   n[        U5        U$ r-   )r   r   r;   selffullnamer   s      r   load_module_ImportHookLoader.load_module   s    X&V$r   r   N)r8   
__module____qualname____firstlineno__rC   __static_attributes__r   r   r   r=   r=   }   s    r   r=   c                   @   ^  \ rS rSrU 4S jrS rS rS rS rSr	U =r
$ )_ImportHookChainedLoader   c                 <  > [         [        U ]  U5        [        US5      (       a  U R	                  SU R
                  5        [        US5      (       a  U R	                  SU R                  5        [        US5      (       a  U R	                  SU R                  5        g g )NrC   create_moduleexec_module)superrJ   __init__hasattr__self_setattr___self_load_module_self_create_module_self_exec_module)rA   loader	__class__s     r   rP   !_ImportHookChainedLoader.__init__   s    &6v>6=))


t/E/E
F6?++


1I1I
J6=))


t/E/E
F *r   c                     " S S5      n[        USU5      S U 4;   a   U R                  Ul        [        USS 5      b7  [        UR                  SS 5      U L a  U R                  UR                  l        g g g ! [         a     NRf = f)Nc                       \ rS rSrSrg)<_ImportHookChainedLoader._self_set_loader.<locals>.UNDEFINED   r   N)r8   rE   rF   rG   rH   r   r   r   	UNDEFINEDr[      s    r   r]   
__loader____spec__rV   )r   __wrapped__r^   AttributeErrorr_   rV   )rA   r   r]   s      r   _self_set_loader)_ImportHookChainedLoader._self_set_loader   s     	6<3d|C$($4$4! FJ-9FOOXt<D%)%5%5FOO" E : " s   A6 6
BBc                 t    U R                   R                  U5      nU R                  U5        [        U5        U$ r-   )r`   rC   rb   r;   r@   s      r   rS   *_ImportHookChainedLoader._self_load_module   s3    !!--h7f%V$r   c                 8    U R                   R                  U5      $ r-   )r`   rM   )rA   specs     r   rT   ,_ImportHookChainedLoader._self_create_module   s    --d33r   c                 r    U R                  U5        U R                  R                  U5        [        U5        g r-   )rb   r`   rN   r;   )rA   r   s     r   rU   *_ImportHookChainedLoader._self_exec_module   s,    f%$$V,V$r   r   )r8   rE   rF   rG   rP   rb   rS   rT   rU   rH   __classcell__)rW   s   @r   rJ   rJ      s"    G604% %r   rJ   c                   .    \ rS rSrS rSS jrSS jrSrg)	r$      c                     0 U l         g r-   in_progress)rA   s    r   rP   ImportHookFinder.__init__   s
    r   Nc                    [            U[        ;  a
   S S S 5        g  S S S 5        XR                  ;   a  g SU R                  U'    [        (       d"  [	        U5        [        5       U R                  U	 $ [        [        U5      SS 5      nU(       a-  [        U[        5      (       d  [        U5      U R                  U	 $ U R                  U	 g ! , (       d  f       N= f! U R                  U	 f = fNTrV   )	r    r&   rp   r   r   r=   r   r   rJ   )rA   rB   pathrV   s       r   find_moduleImportHookFinder.find_module   s    
 %11 %$1 % '''%)"	+9 8$(*"   * !8!4hE*V5M"N"N3F;   *  *_ %$^   *s   C
C 2<C 

CC*c                 v   [            U[        ;  a
   S S S 5        g  S S S 5        XR                  ;   a  g SU R                  U'    [        U5      n[	        USS 5      nU(       a%  [        U[        5      (       d  [        U5      Ul        UU R                  U	 $ ! , (       d  f       N= f! U R                  U	 f = frs   )r    r&   rp   r   r   r   rJ   rV   )rA   rB   rt   targetrg   rV   s         r   r   ImportHookFinder.find_spec   s     %11 %$1 % '''%)"	+ X&DT8T2Fj1IJJ6v>   *? %$>   *s   BAB) 
B&)B8ro   r-   )NN)r8   rE   rF   rG   rP   ru   r   rH   r   r   r   r$   r$      s    4+l(+r   r$   c                    ^  U 4S jnU$ )Nc                     > [        U T5        U $ r-   )r*   )r)   r   s    r   registerwhen_imported.<locals>.register$  s    !$-r   r   )r   r|   s   ` r   when_importedr~   #  s     Or   )__doc__r   	threadingversion_infoPY2
basestringr   r   strimportlib.util	__wrapt__r   r&   r!   RLockr    r   r*   r0   r6   r;   r=   rJ   r$   r~   r   r   r   <module>r      s   
  	qQ;LI4L( "   #//+ 	F=$ 4%{ 4%lc+ c+Pr   