
    
\h                     X   S r SSKrSSKrSSKrSSKrSSKJr  SSKJr  SSK	J
r
JrJrJrJrJr  SSKJrJr  SSKJrJrJrJr  \" \5      r/ S	Qr   SS\\R6                  \4   S\\R6                     S\\R6                     S\S\\\\   4   4
S jjr\SSS
S.S\\R6                  \4   S\\R6                     S\\R6                     S\S\\R6                     4
S jj5       r\SSS
S.S\\R6                  \4   S\\R6                     S\\R6                     S\S\\R6                     4
S jj5       r\SSSS
S.S\\R6                     S\\R6                     S\\S4   S\S\\\R6                        4
S jj5       r \SSSS
S.S\\R6                     S\\R6                     S\\S4   S\S\\\\!\R6                  4         4
S jj5       r"    S S\S\\R6                     S\\R6                     S\\S4   S\S\\
   4S jjr#\r$S\4S\R6                  S\%S\R6                  4S jjr&g)!     N)	getLogger)Path)AnyCallableListOptionalTupleUnion   )MenuMenuItem)DEFAULT_BASE_PREFIXDEFAULT_PREFIX_UserOrSystemelevate_as_needed)installremoveinstall_all
remove_allusermetadata_or_pathtarget_prefixbase_prefix_modereturnc                 \   U=(       d    [         nU=(       d    [        n[        U [        [        45      (       a+  [        U 5       n[        R                  " U5      nS S S 5        OU n[        WS   XU5      nUS    Vs/ s H  n[        Xg5      PM     nnXh4$ ! , (       d  f       N?= fs  snf )N	menu_name
menu_items)
r   r   
isinstancestrr   openjsonloadr   r   )	r   r   r   r   fmetadatamenuitemr   s	            ,lib/python3.13/site-packages/menuinst/api.py_loadr*      s     "3^M4!4K"S$K00"#qyy|H $# $%}5ID3;L3IJ3I4(4&3IJJ $#
 Ks   B>B)
B&)r   r   r   c                T   U=(       d    [         nU=(       d    [        n[        XX#5      u  pE[        S U 5       5      (       d5  [        R
                  " SUR                   S[        R                   35        g/ nXdR                  5       -  nU H  nXgR                  5       -  nM     U$ )Nc              3   @   #    U  H  oR                  5       v   M     g 7fNenabled_for_platform.0r(   s     r)   	<genexpr>install.<locals>.<genexpr>6        Bzt((**z   Metadata for  is not enabled for  )
r   r   r*   anywarningswarnnamesysplatformcreater   r   r   r   r'   r   paths	menu_items           r)   r   r   +   s     "3^M4!4K-kQDBzBBBdii[0DS\\NSTE	[[]E	!!##   L    c                T   U=(       d    [         nU=(       d    [        n[        XX#5      u  pE[        S U 5       5      (       d5  [        R
                  " SUR                   S[        R                   35        g/ nU H  nXgR                  5       -  nM     XdR                  5       -  nU$ )Nc              3   @   #    U  H  oR                  5       v   M     g 7fr-   r.   r0   s     r)   r2   remove.<locals>.<genexpr>M   r4   r5   r6   r7   r8   )
r   r   r*   r9   r:   r;   r<   r=   r>   r   r@   s           r)   r   r   B   s     "3^M4!4K-kQDBzBBBdii[0DS\\NSTE	!!##  	[[]ELrC   r   r   filterr   rH   c                 `    U =(       d    [         n U=(       d    [        n[        [        XX#5      $ r-   )r   r   _process_allr   rG   s       r)   r   r   Y   s(     "3^M4!4KVKKrC   c                 `    U =(       d    [         n U=(       d    [        n[        [        XX#5      $ r-   )r   r   rJ   r   rG   s       r)   r   r   f   s(     "3^M4!4KFJJrC   functionc           	          U=(       d    [         nU=(       d    [        n[        U5      S-  R                  S5      n/ nU H/  nUc  M  U" U5      (       d  M  UR	                  U " XqX$5      5        M1     U$ )Nr   z*.json)r   r   r   globappend)rL   r   r   rH   r   jsonsresultspaths           r)   rJ   rJ   s   sj     "3^M4!4K- 6)//9EG&,,NN8DLM  NrC   FrR   r   prefixc                    [         R                  S:X  a  U R                  SS5      n [         R                  R	                  X 5      n[        U5       n[        R                  " U5      nSSS5        SW;  aw  SU;  aq  SSKJ	n  [         R                  S:X  aA  UR                  S	UR                  S
[        5      5        US	   c	  [        US	'   U" U4XS.UD6  g[        R                  S5        gUR                  S
UR                  S	[        5      5        US
   c	  [        US
'   U(       a  [        U4SU0UD6  g[        U4SU0UD6  g! , (       d  f       N= f)zp
This function is only here as a legacy adapter for menuinst v1.x.
Please use `menuinst.api` functions instead.
nt/\Nz$schemaz$idr   )r   root_prefixr   )r   rS   zymenuinst._legacy is only supported on Windows. Switch to the new-style menu definitions for cross-platform compatibility.r   )osr<   replacerR   joinr"   r#   r$   _legacyr   
setdefaultpopr   logwarning_api_remove)rR   r   rS   kwargs	json_pathr%   r&   _legacy_installs           r)   _install_adapterre      s    
ww$||C&V*I	iA99Q< 
 U(%:777d?mVZZGZ-[\m$,(;}%INfNvNKK4 	-MCV)WX- ($7F=!AA&AH=F=f=1 
s   E
E)NNr   )NNNr   )'__doc__r#   rY   r=   r:   loggingr   pathlibr   typingr   r   r   r	   r
   r   	platformsr   r   utilsr   r   r   r   __name__r_   __all__PathLikedictr*   r   r   r   r!   r   rJ   ra   boolre   r8   rC   r)   <module>rq      sA     	 
    > > % X X ,0)-!	BKK-.BKK( "++& 	
 4h $  ,0)-!BKK-. BKK( "++&	
  
"++ ,  ,0)-!BKK-. BKK( "++&	
  
"++ ,  ,0)-$(!	LBKK(	L "++&	L (D.!		L
 	L 
$r{{
	L 	L  ,0)-$(!	KBKK(	K "++&	K (D.!		K
 	K 
$uS"++%&
'(	K 	K ,0)-$(!BKK( "++& (D.!	
  
#Y"  ',>">
++">#">57[[">rC   