+
    :1j<                        R t ^ RIHt ^ RIt^ RIt^ RIHt ^ RIHtH	t	H
t
 ^RIHt ]! ]4      tR R ltR tR	 tR
 tRR ltR t]P*                  ! R4      tRR R lltR tR# )z&Common Python specific path utilities.)annotationsN)	getLogger)joinsplitsplitext)on_winc                    V ^8  d   QhRRRR/# )   pathstrreturnbool )formats   "8lib/python3.14/site-packages/conda/common/path/python.py__annotate__r      s     
 
s 
t 
    c                    V '       g   R# \         ;QJ d+    R V P                  R4       4       F  '       d   K   R# 	  R# ! R V P                  R4       4       4      # )z_
Python import paths are a sequence of non-keyword Python identifiers separated by one period.
Fc              3     "   T F7  qP                  4       ;'       d    \        P                  ! V4      '       * x  K9  	  R # 5iN)isidentifierkeyword	iskeyword).0parts   & r   	<genexpr>'is_valid_import_path.<locals>.<genexpr>   s3      HW;;G$5$5d$; ;;s
   A$A.T)allr   )r
   s   &r   is_valid_import_pathr      sW    
 3 HL

SV33 3 3 HL

SV  r   c                    VP                  RR4      pVP                  R4      '       d
   V R,           # \        V 4      w  r4\        V4      w  rVRV RV V R2,           pV'       d   RP	                  VRV4      # T# )	z
This must not return backslashes on Windows as that will break
tests and leads to an eventual need to make url_to_path return
backslashes too and that may end up changing files on disc or
to the result of comparisons with the contents of them.
r    2c/z	.cpython-z{}{}{}z__pycache__/)replace
startswithr   r   r   )py_pathpython_major_minor_versionpyver_string	directorypy_filebasename_root	extensionpyc_files   &&      r   pyc_pathr/      s     .55c2>Ls##}"7^	#+G#4 ]O9\N9+UV"WW 	 =Fxy#x8S8Sr   c                   a a R  S 4       pV 3R lV 4       p\         ;QJ d    . V3R lV 4       F  NK  	  5pV# ! V3R lV 4       4      pV# )c              3  V   "   T F  qP                  R 4      '       g   K  Vx  K!  	  R# 5i)z.pyN)endswith)r   fs   & r   r   $missing_pyc_files.<locals>.<genexpr>3   s     65aJJu$55s   )
)c              3  >   <"   T F  q\        VS4      3x  K  	  R # 5ir   )r/   )r   r+   r(   s   & r   r   r4   4   s       PXW(7$>?@PXs   c              3  F   <"   T F  q^,          S9  g   K  Vx  K  	  R# 5i)   Nr   )r   matchfiless   & r   r   r4   7   s     KkU1XU5J55ks   !
!)tuple)r(   r9   py_filespyc_matchesresults   ff   r   missing_pyc_filesr>   1   sK    656HPXK UKkKUFM KkKKFMr   c                8  a V P                  R ^4      w  rVP                  R^4      w  opSP                  4       VP                  4       VP                  4       uor2S'       dA   \        ;QJ d    V3R lR 4       F  '       g   K   RM	  RM! V3R lR 4       4      '       d   \        RS: 24      hSP	                  R4      '       d   \        RS: 24      h\        V4      '       g   \        RV R	24      h\        V4      '       g   \        RV R
24      hSW23# ):=c              3  ,   <"   T F	  qS9   x  K  	  R # 5ir   r   )r   r#   commands   & r   r   (parse_entry_point_def.<locals>.<genexpr>A   s     N0M1w,0Ms   TFzJentry point command must be a simple file name; got invalid characters in r   zGentry point command must not be a path-traversal token or hidden name: 'z3' is not a valid absolute import of a Python modulez+' is not a valid Python function identifier)r$   \ 
)rsplitstripany
ValueErrorr&   r   )ep_definitioncmd_modfuncmodulerC   s   &   @r   parse_entry_point_defrR   ;   s   !((a0MGnnS!,OGV#MMOV\\^TZZ\GV ccN0MNcccN0MNNN))05
 	
 #&k+
 	

  ''xJK
 	
  %%1TF"MNOOF  r   c                    \         '       d   R # V '       d   RV 9  d   RP                  V 4      p \        RRT ;'       g    R,          4      # )z
python.exer   binzpython%sr!   )r   r   )python_versions   &r   get_python_short_pathrV   V   s<    v#^3.1z^%9%9r:;;r   c                L    V f   R # \         '       d   R# \        V 4      pRV R2# )NzLib/site-packages
lib/pythonz/site-packages)r   get_major_minor_version)rU   py_vers   & r   #get_python_site_packages_short_pathr[   ^   s,    	"(8F8>22r   z[0-9]+\.[0-9]+c                    V ^8  d   QhRRRR/# )r	   stringr   r   r   )r   s   "r   r   r   k   s     %? %?C %?3 %?r   c                   \        V \        4      '       g   \        R 4      hV P                  R4      '       dR   V P	                  R4      ^,          p\        R4      p\        V4      V^,           8  d   R# W#,          W#^,           R 3pEM=V P                  R4      '       d{   V P	                  R4      ^,          p\        R4      p\        V4      V^,           8  d   R# W#^,           ,          R8X  g   \        RV^,            R24      hW#,          W#^,           R 3pM\        P                  V 4      pV'       d4   VP                  ^ 4      P	                  R4      pV^ ,          V^,          3pM\RP                  V  Uu. uF  qwP                  4       '       g   K  VNK  	  up4      p\        V4      ^8  d   R# V^ ,          VR	,          3pV'       d   RP                  V4      # RP                  V4      # u upi )
zArgument must be a string.rX   r$   pythonNz
bin/pythonr   z<Unrecognized version component. Expected period at position r!   :r7   NN)
isinstancer   	TypeErrorr&   r   lenrM   _VERSION_REGEXr8   groupr   isdigit)	r]   with_dot	pythonstrstartmaj_minr8   versionr#   digitss	   &&       r   rY   rY   k   s    fc""455&&LL%a(	Hy>EAI%"Iaik$::			<	(	(LL%a(	Hy>EAI%#s*NuWXykYZ[  "Iaik$::$$V,kk!n**3/Gaj'!*,GWW?A99;aa?@F6{QQi+G (388G>bggg.>> @s   :G1G1c                    V P                  R 4      '       d   TpV P                  RV^4      # V P                  R4      '       d   ^RIHp V P                  RV^4      # V # )zsite-packages/zsite-packageszpython-scripts/)BIN_DIRECTORYzpython-scripts)r&   r%   r!   rm   )source_short_pathtarget_site_packages_short_pathsp_dirrm   s   &&  r   get_python_noarch_target_pathrq      s_    ##$4550 ((&!DD		%	%&7	8	8# (()9=!LL  r   r   )T)__doc__
__future__r   r   reloggingr   os.pathr   r   r   compatr   __name__logr   r/   r>   rR   rV   r[   compilerc   rY   rq   r   r   r   <module>r{      sd    - "  	  ) ) 
T&!6<3 -.%?P	!r   