
    g*                         d Z ddlZddlZej                  d   dk(  ZerefZdZn	efZddl	mZ ddl
mZ i Zda ej                         Zd Zd	 Zd
 Zd Zd Z G d d      Z G d de      Z G d d      Zd Zy)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                       fd}|S )Nc                     j                  d      \  }}|j                  d      }t        |       t        j                  |   }|D ]  }t	        ||      }  ||       S )N:.)split
__import__sysmodulesgetattr)modulemodule_namefunctionattrscallbackattrnames         C/var/www/openai/venv/lib/python3.12/site-packages/wrapt/importer.pyimport_hookz4_create_import_hook_from_string.<locals>.import_hook&   sZ     $

3Xs#;;;{+Dx.H      )r   r   s   ` r   _create_import_hook_from_stringr   %   s      r   c                 t   t        | t              rt        |       } t        5  t        s*dat
        j                  j                  dt                      t
        j                  j                  |d       }|%t        j                  |g       j                  |        d d d        	 | |       y y # 1 sw Y   xY w)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   A8B..B7c                       fd}|S )Nc                     t        j                         t        j                  j                     }j                  D ]  }t        ||      }  ||       S N)r   r   r   r   r   r   )r   r   r   
entrypoints      r   r   z8_create_import_hook_from_entrypoint.<locals>.import_hookT   sL    :))*;;z556$$Dx.H %r   r   )r-   r   s   ` r   #_create_import_hook_from_entrypointr.   S   s      r   c                     	 dd l }|j                  |       D ]#  }t        |      }t	        ||j
                         % y # t        $ r Y y w xY w)Nr   )group)pkg_resourcesImportErroriter_entry_pointsr.   r)   r   )r0   r1   r-   r   s       r   discover_post_import_hooksr4   \   sQ     $55E5B
6zB!(JOO< C  s   ? 	A
Ac                     t        | dd       }t        5  t        j                  |d      }d d d        D ]
  } ||         y # 1 sw Y   xY w)N__name__r   )r   r   r%   pop)r   r   hooksr(   s       r   notify_module_loadedr9   k   sF    6:t,D	 "&&tR0 
! V  
!	 s   AAc                       e Zd Zd Zy)_ImportHookLoaderc                 B    t         j                  |   }t        |       |S r,   )r   r   r9   selffullnamer   s      r   load_modulez_ImportHookLoader.load_module   s    X&V$r   N)r6   
__module____qualname__r@   r   r   r   r;   r;   }   s    r   r;   c                   6     e Zd Z fdZd Zd Zd Zd Z xZS )_ImportHookChainedLoaderc                    t         t        |   |       t        |d      r| j	                  d| j
                         t        |d      r| j	                  d| j                         t        |d      r| j	                  d| j                         y y )Nr@   create_moduleexec_module)superrD   __init__hasattr__self_setattr___self_load_module_self_create_module_self_exec_module)r>   loader	__class__s     r   rI   z!_ImportHookChainedLoader.__init__   sx    &6v>6=)


t/E/E
F6?+


1I1I
J6=)


t/E/E
F *r   c                     G d d      }t        |d|      d | fv r	 | j                  |_        t        |dd       6t        |j                  dd       | u r| j                  |j                  _        y y y # t        $ r Y Ow xY w)Nc                       e Zd Zy)<_ImportHookChainedLoader._self_set_loader.<locals>.UNDEFINEDN)r6   rA   rB   r   r   r   	UNDEFINEDrS      s    r   rT   
__loader____spec__rO   )r   __wrapped__rU   AttributeErrorrV   rO   )r>   r   rT   s      r   _self_set_loaderz)_ImportHookChainedLoader._self_set_loader   s     	6<3d|C$($4$4! FJ-9FOOXt<D%)%5%5FOO" E : " s   A2 2	A>=A>c                 t    | j                   j                  |      }| j                  |       t        |       |S r,   )rW   r@   rY   r9   r=   s      r   rL   z*_ImportHookChainedLoader._self_load_module   s3    !!--h7f%V$r   c                 8    | j                   j                  |      S r,   )rW   rF   )r>   specs     r   rM   z,_ImportHookChainedLoader._self_create_module   s    --d33r   c                 r    | j                  |       | j                  j                  |       t        |       y r,   )rY   rW   rG   r9   )r>   r   s     r   rN   z*_ImportHookChainedLoader._self_exec_module   s,    f%$$V,V$r   )	r6   rA   rB   rI   rY   rL   rM   rN   __classcell__)rP   s   @r   rD   rD      s    G604%r   rD   c                   "    e Zd Zd ZddZddZy)r#   c                     i | _         y r,   )in_progress)r>   s    r   rI   zImportHookFinder.__init__   s
    r   Nc                    t         5  |t        vr
	 d d d        y 	 d d d        || j                  v ry d| j                  |<   	 t        s"t	        |       t               | j                  |= S t        t        |      dd       }|r(t        |t              st        |      | j                  |= S | j                  |= y # 1 sw Y   xY w# | j                  |= w xY wNTrO   )	r   r%   ra   r   r   r;   r   r   rD   )r>   r?   pathrO   s       r   find_modulezImportHookFinder.find_module   s    
 %11 %$1 % t'''%)"	+ 8$(*"   * !8!4hE*V5M"N3F;   *  *_ %$^   *s   
B8C *2C 8CCc                 R   t         5  |t        vr
	 d d d        y 	 d d d        || j                  v ry d| j                  |<   	 t        |      }t	        |dd       }|r t        |t              st        |      |_        || j                  |= S # 1 sw Y   qxY w# | j                  |= w xY wrc   )r   r%   ra   r   r   r   rD   rO   )r>   r?   rd   targetr\   rO   s         r   r   zImportHookFinder.find_spec   s     %11 %$1 % t'''%)"	+ X&DT8T2Fj1IJ6v>   *? %$>   *s   
B;B BB&r,   )NN)r6   rA   rB   rI   re   r   r   r   r   r#   r#      s    4+l(+r   r#   c                       fd}|S )Nc                      t        |        | S r,   )r)   )r(   r   s    r   registerzwhen_imported.<locals>.register$  s    !$-r   r   )r   rj   s   ` r   when_importedrk   #  s     Or   )__doc__r   	threadingversion_infoPY2
basestringr   r   strimportlib.util	__wrapt__r   r%   r    RLockr   r   r)   r.   r4   r9   r;   rD   r#   rk   r   r   r   <module>ru      s   
  	qQ;LI4L( "   ))//+ 	F=$ 4%{ 4%lc+ c+Pr   