
    .hh+                        S SK Jr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJ	r	  S SKJ
r
  S S	KJr  S S
KJr  S SKJr  SSKrSSKrSSKrS rS rSS jrSS jr " S S5      r " S S\R,                  5      r " S S\5      rg)   )Loader)module_from_spec)_resolve_name)spec_from_loader)
_find_spec)MAGIC_NUMBER)_RAW_MAGIC_NUMBER)cache_from_source)decode_source)source_from_cache)spec_from_file_location    Nc                 8    [         R                  " [        U 5      $ N)_impsource_hashr	   )source_bytess    7/opt/python-3.13.8/usr/lib/python3.13/importlib/util.pyr   r      s    -|<<    c                     U R                  S5      (       d  U $ U(       d  [        S[        U 5       S35      eSnU  H  nUS:w  a    O	US-  nM     [        XS  X5      $ )N.zno package specified for z% (required for relative module names)r   r   )
startswithImportErrorreprr   )namepackagelevel	characters       r   resolve_namer      sv    ??35d4j\ BA A B 	BE	
  fw66r   c                     U [         R                  ;  a  [        X5      $ [         R                  U    nUc  g  UR                  nUc  [	        U  S35      eU$ ! [
         a    [	        U  S35      S ef = f)N.__spec__ is None.__spec__ is not set)sysmodulesr   __spec__
ValueErrorAttributeError)r   pathmodulespecs       r   _find_spec_from_pathr+   '   s     3;;$%%T">	??D | D6):!;<<K  	Fv%9:;E	Fs   A A1c                    U R                  S5      (       a  [        X5      OU nU[        R                  ;  aA  UR	                  S5      S   nU(       a  [        US/S9n UR                  nOS n[        X%5      $ [        R                  U   nUc  g  UR                  nUc  [        U  S35      eU$ ! [         a  n[        SU< SU< 3US9UeS nAff = f! [         a    [        U  S	35      S ef = f)
Nr   r   __path__)fromlistz __path__ attribute not found on z while trying to find )r   r!   r"   )r   r   r#   r$   
rpartition
__import__r-   r'   ModuleNotFoundErrorr   r%   r&   )	r   r   fullnameparent_nameparentparent_pather)   r*   s	            r   	find_specr7   F   s   " /3ooc.B.B|D*Hs{{"))#.q1zlCFP$oo K(00X&>	??D | D6):!;<<K% " P)6{o F,,4<9?GINOPP  	Fv%9:;E	Fs$   B0 C 0
C:CCC/c                   6    \ rS rSrS rS rS r\S 5       rSr	g)+_incompatible_extension_module_restrictionsw   c                $    [        U5      U l        g r   )booldisable_check)selfr=   s     r   __init__4_incompatible_extension_module_restrictions.__init__   s    !-0r   c                 P    [         R                  " U R                  5      U l        U $ r   )r   '_override_multi_interp_extensions_checkoverrideoldr>   s    r   	__enter__5_incompatible_extension_module_restrictions.__enter__   s    ??Nr   c                 L    U R                   nU ? [        R                  " U5        g r   )rD   r   rB   )r>   argsrD   s      r   __exit__4_incompatible_extension_module_restrictions.__exit__   s    hhH44S9r   c                 ,    U R                   (       a  S$ S$ )Nr   )r=   rE   s    r   rC   4_incompatible_extension_module_restrictions.override   s    ''r.Q.r   )r=   rD   N)
__name__
__module____qualname____firstlineno__r?   rF   rJ   propertyrC   __static_attributes__ r   r   r9   r9   w   s&    @1:
 / /r   r9   c                        \ rS rSrS rS rSrg)_LazyModule   c                 V   [         R                  U S5      nUR                  nUS      [         R                  U S5      [        L Ga@  US   nUS   (       a  UR                  X5      sS S S 5        $ SUS'   UR                  U S5      nUR                  nUS   nUn0 n	UR                  5        H2  u  pX;  a  XU
'   M  [        X   5      [        Xz   5      :w  d  M.  XU
'   M4     UR                  R                  U 5        U[        R                  ;   a9  [        U 5      [        [        R                  U   5      :w  a  [        SU< S35      eUR                  U	5        [        U [        5      (       a  [         R                  U SU5        S S S 5        [        X5      $ ! , (       d  f       N= f)	Nr%   lock	__class__
is_loadingT__dict__zmodule object for z. substituted in sys.modules during a lazy load)object__getattribute__loader_staterW   r   itemsidloaderexec_moduler#   r$   r&   update
isinstance__setattr__getattr)r>   attrr%   r`   r[   r]   original_name
attrs_then	attrs_nowattrs_updatedkeyvalues               r   r_   _LazyModule.__getattribute__   s   **4<,,&! &&t[9[H(5	  -$55dA "! .2\*$55dJG !) **5
$	 ""+//"3JC ,-2c*IN+r*//BB-2c* #4 ++D1 !CKK/$x2ckk-&@#AA(+=m=N O1 *1 2 2
 . dK00&&t[)D_ "b t""c "!s   >F0A&FB-F
F(c                 <    U R                  U5        [        X5        g r   )r_   delattr)r>   ri   s     r   __delattr___LazyModule.__delattr__   s     	d#r   rU   N)rO   rP   rQ   rR   r_   rs   rT   rU   r   r   rW   rW      s    5#nr   rW   c                   F    \ rS rSr\S 5       r\S 5       rS rS r	S r
Srg)	
LazyLoader   c                 <    [        U S5      (       d  [        S5      eg )Nrd   z loader must define exec_module())hasattr	TypeErrorrc   s    r   __check_eager_loaderLazyLoader.__check_eager_loader   s     v}-->?? .r   c                 6   ^ ^ T R                  T5        U U4S j$ )Nc                      > T" T" U 0 UD65      $ r   rU   )rI   kwargsclsrc   s     r   <lambda>$LazyLoader.factory.<locals>.<lambda>   s    s64+B6+B'Cr   )_LazyLoader__check_eager_loader)r   rc   s   ``r   factoryLazyLoader.factory   s     	  (CCr   c                 2    U R                  U5        Xl        g r   )r   rc   )r>   rc   s     r   r?   LazyLoader.__init__   s    !!&)r   c                 8    U R                   R                  U5      $ r   )rc   create_module)r>   r*   s     r   r   LazyLoader.create_module   s    {{((..r   c                 &   SS K nU R                  UR                  l        U R                  Ul        0 nUR                  R                  5       US'   UR                  US'   UR                  5       US'   SUS'   X1R                  l        [        Ul        g )Nr   r]   r[   rZ   Fr\   )
	threadingrc   r%   
__loader__r]   copyr[   RLockr`   rW   )r>   r)   r   r`   s       r   rd   LazyLoader.exec_module  s~     	!% KK
 #)??#7#7#9Z $*$4$4[!(0V%*\"'3$&r   r{   N)rO   rP   rQ   rR   staticmethodr   classmethodr   r?   r   rd   rT   rU   r   r   rv   rv      s=     @ @ D D
/'r   rv   r   )_abcr   
_bootstrapr   r   r   r   _bootstrap_externalr   r	   r
   r   r   r   r   r#   typesr   r   r+   r7   r9   
ModuleTyperW   rv   rU   r   r   <module>r      sp     ( % ( " - 2 2 . 2 8  
 =
7>*b./ ./b@%"" @F'' ''r   