
    
\h                        S SK Jr  S SKr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 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\5      r1 SkrSSS jjrg)    )annotationsN)
ModuleType)Any)Callable)cast)Iterable   )_py_abspath)	importobj)_synchronized)AliasModulec                     ^  \ rS rSr% SrSS jrSS jr\" \\5      rS\S'     S         SU 4S jjjr	S r
\SU 4S	 jj5       rS
 rSU 4S jjr\SS j5       rSrU =r$ )	ApiModule   z(the magical lazy-loading module standingc                     U R                   $ ! [         a4    SU R                  ;   a!  [        [        U R                  S5      5      s $  g f = f)N__doc__)_ApiModule__docAttributeError__map__r   str_ApiModule__makeattr)selfs    ?lib/python3.13/site-packages/menuinst/_vendor/apipkg/_module.py__docgetApiModule.__docget   sE    	:: 	DLL(C!;<<		s    9AAc                    Xl         g N)r   )r   values     r   __docsetApiModule.__docset   s    
    zdict[str, tuple[str, str]]r   c                  > [         TU ]  U5        Xl        U Vs/ s H  oUS:w  d  M
  UPM     snU l        0 U l        U=(       d    UU l        U(       a%  UR                  5        H  u  p[        XU5        M     UR                  5        H  u  p[        U[        5      (       a>  U R                   SU 3n[        XrU5      nU[        R                  U'   [        XU5        MX  UR                  S5      n	U	R                  S5      n
U	=(       a    U	S   =(       d    SnU
S   S:X  a  X:-   n
U(       dE  U R                   SU 3n[        Xz5      nU[        R                  U'   SU;  a  [        XU5        M  M  X4U R                  U'   M     g s  snf )N__onfirstaccess__.:r    )super__init____name____all__r   __implprefix__itemssetattr
isinstancedictr   sysmodulessplitpopr   )r   name
importspec
implprefixattrxvalsubnameapimodpartsmodpathattrname	__class__s               r   r(   ApiModule.__init__#   sc    	#-J:a6I1I:J(0D!ZZ\	C( * * 0 0 2D*d++!]]O1TF3"7
C'-G$F+"((-))A, -U1X31:$(2G!%q7G(:F+1CKK($F3 ' +2)<DLL&) !3 Ks
   	FFc                (   SU R                   < 3/n[        U S5      (       a  UR                  SU R                  < 35        [        U S5      (       a  UR                  SU R                  < 35        UR                  S5        SR                  U5      $ )Nz<ApiModule __version__z	 version=__file__z from >r&   )r)   hasattrappendrB   rC   join)r   	repr_lists     r   __repr__ApiModule.__repr__H   s    "4=="345	4''y)9)9(<=>4$$vdmm%678wwy!!r!   c                  > SnSU R                   ;   a=  U R                   R                  S5      n[        [        / S4   [	        U6 5      nU" 5          U R                   U   u  pV[	        XV5      n[        XU5        U R                   R                  US5        U$ ! [         aA    Ub  US:w  a  [        X5      s $ [        b  U(       a  [        TU ])  U5      s $ [        U5      ef = f)zAlazily compute value for name or raise AttributeError if unknown.Nr#   )r   r3   r   r   r   r-   KeyErrorgetattr	threadingr'   __getattribute__r   )	r   r4   	isgetattrtargetfnr=   r>   resultr?   s	           r   
__makeattrApiModule.__makeattrQ   s     $,,.\\%%&9:Fhr4x()V*<=BD	 $T 2G( w1FD'LLT4(M/  	'
 !d.A&At** $w/55 &&#	's   B C#8C#C#c                "    U R                  USS9$ )NT)rP   )r   )r   r4   s     r   __getattr__ApiModule.__getattr__t   s    tt44r!   c              #  j   >#    [         TU ]  5        S h  vN   U R                   S h  vN   g  N N7fr   )r'   __dir__r   )r   r?   s    r   rZ   ApiModule.__dir__w   s+     7?$$$<< 	%s   3/3133c                    [         R                  S   nUR                  U 5      nUb1  [        U S5        U R                   H  n U R                  U5        M     U$ ! [         a     M(  f = f)N__dict__some)r   r]   __get__rE   r*   r   r   )r   	dictdescrnsr4   s       r   r]   ApiModule.__dict__{   sm     ''
3	&..t4>D&!OOD) %
 	 & s   A
A)(A))r*   __docr+   r   r)   )return
str | None)r   r   rd   None)NN)
r4   r   r5   dict[str, Any]r6   re   r7   zdict[str, Any] | Nonerd   rf   )F)rd   zIterable[str])rd   rg   )r)   
__module____qualname____firstlineno__r   _ApiModule__docget_ApiModule__docsetproperty__annotations__r(   rI   r   r   rW   rZ   r]   __static_attributes____classcell__)r?   s   @r   r   r      s    2 x*G'' "&&*#=#= ##= 	#=
 $#= 
#= #=J"    D5   r!   r   >   r   r]   rC   __path____spec__
__loader____package__rB   c                &   U c5  SSS.nUR                  U5        [        XXS9n U [        R                  U'   U $ [	        U SS5      nU(       a  [        U5      nXPl        [        U S5      (       a+  U R                   Vs/ s H  n[        U5      PM     snU l        SU;   a  [        U S5      (       a  U ?	[        U 5       H  nU[        ;  d  M  [        X5        M     [        U l        [        [        U 5      n[        R                  XX!US9  U$ s  snf )a  Helper for initpkg.

Python 3.3+ uses finer grained locking for imports, and checks sys.modules before
acquiring the lock to avoid the overhead of the fine-grained locking. This
introduces a race condition when a module is imported by multiple threads
concurrently - some threads will see the initial module and some the replacement
ApiModule. We avoid this by updating the existing module in-place.

N)rC   rr   )r6   r7   rC   rq   r   )updater   r0   r1   rM   r
   rC   rE   rq   r   dir_PRESERVED_MODULE_ATTRSdelattrr?   r   r(   )	modpkgname
exportdefsr7   dfpr4   r;   s	            r   _initpkgr      s     {40	H"G
CT*AA3
##47LLALqKNLACL
"wsI'>'>HD22" 
 "i%6JQUV Bs   =Dr   )rz   zModuleType | Nonerd   r   )
__future__r   r0   rN   typesr   typingr   r   r   r   
_importingr
   r   _syncronizedr   menuinst._vendor.apipkgr   r   rx   r    r!   r   <module>r      sE    " 
       # ! ' /w
 wt	 !r!   