
    WbhC                    f    d dl mZ d dlZd dlZd dlZ G d de      Zd
dZddZddZ	ddZ
d
d	Zy)    )annotationsNc                      e Zd Zy)
UvNotFoundN)__name__
__module____qualname__     C/opt/python-3.12.12/usr/lib/python3.12/site-packages/uv/_find_uv.pyr   r      s    r
   r   c            	        dt        j                  d      z   } t        j                  d      t        j                  ddt        j                  i      t        j
                  dk(  rt        t        t               d      d      nt        t        t               d	      d
      t        t        t               d      d
      t        j                  dt                     g}g }|D ]^  }|s||v r|j                  |       t        j                  j                  ||       }t        j                  j                  |      s\|c S  dj                  d |D              }t        d| d      )zReturn the uv binary path.uvEXEscriptsbase)varswin32zLib/site-packages/uvScriptszlib/python*/site-packages/uvbin)scheme
c              3  &   K   | ]	  }d |   yw)z - Nr	   ).0targets     r   	<genexpr>zfind_uv_bin.<locals>.<genexpr>1   s     <tVCx.ts   z@Could not find the uv binary in any of the following locations:
)	sysconfigget_config_varget_pathsysbase_prefixplatform_join_matching_parents_module_path_user_schemeappendospathjoinisfiler   )uv_exetargetsseenr   r'   	locationss         r   find_uv_binr.      s6    I,,U33F 	9%9FCOO+DE
 ||w& #LN4JKYW !,.2PQSX 	5u=9\^<'G, DT>Fww||FF+77>>$K  		<t<<I

KI;VXY r
   c                 L    t         j                  j                  t              } | S N)r&   r'   dirname__file__)r'   s    r   r#   r#   7   s    77??8$DKr
   c           	     `   ddl m  | sy| j                  t        j                        }|j                  d      }t	        |      t	        |      k  ryt        fdt        t        |      t        |            D              syt        j                  j                  |dt	        |              S )aW  
    Return the parent directory of `path` after trimming a `match` from the end.
    The match is expected to contain `/` as a path separator, while the `path`
    is expected to use the platform's path separator (e.g., `os.sep`). The path
    components are compared case-insensitively and a `*` wildcard can be used
    in the `match`.
    r   )fnmatchN/c              3  6   K   | ]  \  }} ||        y wr0   r	   )r   part
match_partr4   s      r   r   z$_matching_parents.<locals>.<genexpr>M   s%       KD* 	j! Ks   )	r4   splitr&   seplenallzipreversedr(   )r'   matchpartsmatch_partsr4   s       @r   r"   r"   <   s      JJrvvE++c"K
5zC$$  #HUOXk5J K  66;;u0K 00122r
   c                H    | sy t        j                  j                  | g| S r0   )r&   r'   r(   )r'   r@   s     r   r!   r!   V   s     77<<%u%%r
   c                     t         j                  dk\  rt        j                  d      } | S t        j
                  dk(  rd} | S t         j                  dk(  rt         j                  rd} | S d} | S )N)   
   userntnt_userdarwinosx_framework_user
posix_user)r   version_infor   get_preferred_schemer&   namer    
_framework)user_schemes    r   r$   r$   \   sp    
7"44V<  
D
 	 
	!cnn*  #r
   )returnstr)rQ   
str | None)r'   rS   r?   rR   rQ   rS   )r'   rS   r@   rR   rQ   rS   )
__future__r   r&   r   r   FileNotFoundErrorr   r.   r#   r"   r!   r$   r	   r
   r   <module>rV      s6    " 	 
  )" ()X
34&	r
   