+
    :1j+                    2   R t ^ RIHt ^ RIt^ RIt^ RIHt ^ RIHt ^ RI	H
t
HtHtHtHt ^ RIHt ^ RIHt ^RIHt ^R	IHt ^R
IHt ^RIHtHtHtHt ^RIHtH t H!t!H"t"H#t#H$t$H%t% ^RI&H't'H(t(H)t)H*t*H+t+ ]'       d*   ^ RI,H-t- ].]P^                  ].,          ,          t0]-]0,          t1. R&Ot2]! ]34      t4Rt5R't6]Pn                  ! RRRRR.]6O5RR7       R t8R t9R t:]R 4       t;]'       d   RMRt<R(R lt=R t>R t?R  R! lt@]! RRR"R7      R# 4       tAR$ R% ltBR# ))zCommon path utilities.)annotationsN)cache)	getLogger)abspath
expanduser
expandvarsnormcasesplit)TYPE_CHECKING)urlsplit)
CondaError)
deprecated)on_win)explode_directoriesget_all_directoriesget_leaf_directoriestokenized_startswith)get_major_minor_versionget_python_noarch_target_pathget_python_short_path#get_python_site_packages_short_pathmissing_pyc_filesparse_entry_point_defpyc_path)unix_path_to_winwin_path_backoutwin_path_double_escapewin_path_okwin_path_to_unix)Iterablez#\./|\.\.|~|/|[a-zA-Z]:[/\\]|\\\\|//z26.9z27.3KNOWN_EXTENSIONS.conda.tar.bz2z4Use `conda.common.path.strip_pkg_extension` instead.)addendumc                J    R V 9   d   R# \         P                  ! \        V 4      # )z://F)rematchPATH_MATCH_REGEX)values   &:lib/python3.14/site-packages/conda/common/path/__init__.pyis_pathr*   c   s    ~88$e,,    c                <    \        \        \        V 4      4      4      # N)r   r   r   paths   &r)   expandr0   i   s    :j./00r+   c                    \         '       d*   \        \        V 4      4      \        \        V4      4      8H  # \        V 4      \        V4      8H  # )zB
Examples:
    >>> paths_equal('/a/b/c', '/a/b/c/d/..')
    True

)r   r   r   )path1path2s   &&r)   paths_equalr4   m   s9     v'8GEN+CCCu~//r+   c                   \        V 4      '       d   V # V P                  R4      '       g   \        RV  R24      h\        V 4      w  rp p^RIHp V! V4      pVR9  d)   VP                  R4      '       g
   RV,           pW#,           # Rp\        P                  ! RV\        P                  4      '       d   V^,          R	,           VR
,          ,           pW#,           # )zdConvert a file:// URL to a path.

Relative file URLs (i.e. `file:relative/path`) are not supported.
zfile://z6You can only turn absolute file: urls into paths (not ))percent_decode z\\z//z^/([a-z])[:|]::   NN)r8   	localhostz	127.0.0.1z::1)	r*   
startswithr   r   urlr7   r%   r&   I)r=   _netlocr/   r7   s   &    r)   url_to_pathrA   z   s     s||
>>)$$DSEK
 	
 %SMAtQ$$D::  ((F]F =	 88OT244007S=48+D=r+   Scriptsbinc                j    V '       d#   V ^ ,          V R,          u;8X  d
   V8X  d    V #  MV # V V  V 2# )z

Examples:
    >>> ensure_pad('conda')
    '_conda_'
    >>> ensure_pad('_conda')
    '__conda_'
    >>> ensure_pad('')
    ''

 )namepads   &&r)   
ensure_padrI      s=     47d2h-#- .tfSE""r+   c                ~    V P                  \        P                  4      '       d   V # V \        P                  ,           # r-   )endswithossepr.   s   &r)   right_pad_os_seprN      s'    ==((4;dRVVm;r+   c                N    \        V 4      w  rR V9   d   T;'       g    RV3# V R3# ).N)r	   )path_or_urldnfns   &  r)   split_filenamerT      s/    ;FB"byBJJ$A{D.AAr+   c                    V ^8  d   QhRRRR/# )   r/   strreturnztuple[str, str | None]rF   )formats   "r)   __annotate__rZ      s      c &< r+   c                    ^RI Hp VP                  P                  V 4      ;p'       d   V R\	        V4      )  V3# \
         F-  pV P                  V4      '       g   K  V R\	        V4      )  V3u # 	  V R3# )a  
Split path into (base, extension) for known extensions.

Package extensions are determined dynamically from registered plugins.
Repodata extensions (.json, .json.zst) are also recognized.

:param path: Path to split.
:return: Tuple of (base_path, extension) where extension is None if not found.

Examples:
    >>> strip_pkg_extension("/path/_license-1.1-py27_1.tar.bz2")
    ('/path/_license-1.1-py27_1', '.tar.bz2')
    >>> strip_pkg_extension("/path/_license-1.1-py27_1.conda")
    ('/path/_license-1.1-py27_1', '.conda')
    >>> strip_pkg_extension("/path/repodata.json")
    ('/path/repodata', '.json')
    >>> strip_pkg_extension("/path/_license-1.1-py27_1")
    ('/path/_license-1.1-py27_1', None)
)contextN)base.contextr\   plugin_managerhas_package_extensionlenKNOWN_REPODATA_EXTENSIONSrK   )r/   r\   exts   &  r)   strip_pkg_extensionrc      sz    ( ( $$::4@@s@Ks3xi #%%(==3s8)$c)) ) :r+   zNUse `conda.base.context.context.plugin_manager.has_package_extension` instead.c                2    V RR R8H  ;'       g	    V RR R8H  # )z
Examples:
    >>> is_package_file("/path/_license-1.1-py27_1.tar.bz2")
    True
    >>> is_package_file("/path/_license-1.1-py27_1.conda")
    True
    >>> is_package_file("/path/_license-1.1-py27_1")
    False
Nr!   r"   iirF   r.   s   &r)   is_package_filere      s(    " 9 ;;DI$;;r+   c                    V ^8  d   QhRRRR/# )rV   pathszPathType | PathsType | NonerX   zstr | tuple[str, ...] | NonerF   )rY   s   "r)   rZ   rZ      s     ? ?4 ?9U ?r+   c                    V f   R # \        V \        \        P                  34      '       d    \        P                  P                  V 4      # \        ;QJ d    . R V  4       F  NK  	  5# ! R V  4       4      # )Nc              3  `   "   T F$  p\         P                  P                  V4      x  K&  	  R # 5ir-   )rL   r/   normpath).0r/   s   & r)   	<genexpr> path_identity.<locals>.<genexpr>   s"     >RWW%%d++s   ,.)
isinstancerW   rL   PathLiker/   rj   tuple)rg   s   &r)   path_identityrq      sW    }	EC-	.	.ww&&u>>u>u>>>>r+   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )z.jsonz	.json.zst)r?   )C__doc__
__future__r   rL   r%   	functoolsr   loggingr   os.pathr   r   r   r   r	   typingr
   urllib.parser   r8   r   deprecationsr   compatr   directoriesr   r   r   r   pythonr   r   r   r   r   r   r   windowsr   r   r   r   r   collections.abcr   rW   ro   PathType	PathsType__all____name__logr'   ra   constantr*   r0   r4   rA   BIN_DIRECTORYrI   rN   rT   rc   re   rq   rF   r+   r)   <module>r      s6    " 	 	    ! !  &      (R[[%%H"I&   
   

z656C-1
0  6 $	#$<B
@ 

]
<
<?r+   