+
    WGj                        R t ^ RIHt ^ RIt^ RIt^ RIt^ RIHt ^ RIH	t	 ^ RI
HtHt ^ RIHtHtHt ^ RIHtHtHtHt R
tRt]P0                   ! R R	4      4       tR# )zRemote or local file link.)annotationsN)datetime)cached_property)Anycast)ParseResultunquoteurlparse)add_ssh_scheme_to_git_uriparse_querysplit_auth_from_urlurl_to_pathc                  `   ] tR t^t$ RtR]R&   RtR]R&   RtR]R&   RtR]R&   Rt	R	]R
&   Rt
R]R&   RtR]R&   ]P                  ! RRR7      tR]R&   R R ltR R ltR R lt]R R l4       tR R ltR R ltR R lt]R  R! l4       t]R" R# l4       t]R$ R% l4       t]R& R' l4       t]R( R) l4       t]R* R+ l4       t]R, R- l4       t]R. R/ l4       t ]R0 R1 l4       t!]R2 R3 l4       t"]R4 R5 l4       t#R6 R7 lt$]R8 R9 l4       t%]R: R; l4       t&]R< R= l4       t']R> R? l4       t(R@t)R# )ALinkad  A link can refer to either a remote url or local file.

Args:
    url (str): The url of the remote file.
    comes_from (str|None): The index page that contains this link
    yank_reason (str|None): The reason why this link is yanked
    requires_python (str|None): The data-python-requires attribute of this link
    dist_info_metadata (str|None): (PEP 658) The hash name and value of the
        dist-info metadata, or true if hash is not available
    hashes (dict[str, str]|None): The hash name and value of the link from
        JSON simple API
    vcs (str|None): The vcs type of this link(git/hg/svn/bzr)
strurlN
str | None
comes_fromyank_reasonrequires_pythonzbool | dict[str, str] | Nonedist_info_metadatazdict[str, str] | Nonehasheszdatetime | Noneupload_timeF)initdefaultvcsc                   V ^8  d   QhRR/# )   returnNone )formats   ",lib/python3.14/site-packages/unearth/link.py__annotate__Link.__annotate__1   s     ' 't '    c                	Z   \         ;QJ d    . R  \         4       F  NK  	  5M! R  \         4       4      pV P                  P                  V4      '       dE   V P                  P	                  R4      w  V n        r#V P
                   R\        V4       2V n        R# V P                  V n        R# )c              3  *   "   T F	  q R 2x  K  	  R# 5i)+Nr    ).0schemas   & r"   	<genexpr>%Link.__post_init__.<locals>.<genexpr>2   s     C
fxq\
s   r(   N)tuple
VCS_SCHEMAr   
startswith	partitionr   r
   
normalized)selfvcs_prefixes_r   s   &   r"   __post_init__Link.__post_init__1   sx    uC
CuuC
CC88|,,#xx11#6DHa!%
!,Ec,J+KLDO"hhDOr%   c                   V ^8  d   QhRR/# )r   r   zdict[str, Any]r    )r!   s   "r"   r#   r$   9   s     

 

 

r%   c           
         RV P                   RV P                  RV P                  RV P                  RV P                  '       d   V P                  P
                  /# R/# )z-Return the JSON representation of link objectr   r   r   r   metadataN)redactedr   r   r   dist_info_linkurl_without_fragmentr2   s   &r"   as_jsonLink.as_json9   se     4==$//4++t33""" ++@@
 	
 
 	
r%   c                   V ^8  d   QhRR/# )r   r   r-   r    )r!   s   "r"   r#   r$   E   s     I I Ir%   c                	H    V P                   V P                  V P                  3# N)r1   r   r   r=   s   &r"   __identLink.__identE   s    !1!143G3GHHr%   c                   V ^8  d   QhRR/# )r   r   r   r    )r!   s   "r"   r#   r$   I   s     ) ) )r%   c                	,    \        V P                  4      # rB   )r	   r1   r=   s   &r"   parsedLink.parsedH   s    ((r%   c                   V ^8  d   QhRR/# r   r   r   r    )r!   s   "r"   r#   r$   L   s     B B# Br%   c                	<    R V P                    RV P                   R2# )z<Link z (from z)>)r:   r   r=   s   &r"   __repr__Link.__repr__L   s     gdoo->bAAr%   c                   V ^8  d   QhRR/# )r   r   intr    )r!   s   "r"   r#   r$   O   s     $ $# $r%   c                	4    \        V P                  4       4      # rB   )hash_Link__identr=   s   &r"   __hash__Link.__hash__O   s    DLLN##r%   c                    V ^8  d   QhRRRR/# )r   _Link__oobjectr   boolr    )r!   s   "r"   r#   r$   R   s     I I& IT Ir%   c                	t    \        V\        4      ;'       d"    V P                  4       VP                  4       8H  # rB   )
isinstancer   rR   )r2   rV   s   &&r"   __eq__Link.__eq__R   s(    #t$HH3;;=)HHr%   c                    V ^8  d   QhRRRR/# )r   	file_pathzstr | pathlib.Pathr   r   r    )r!   s   "r"   r#   r$   V   s      "4  r%   c                Z    \         P                  ! V4      P                  4       pV ! V4      # )z$Create a link from a local file path)pathlibPathas_uri)clsr^   r   s   && r"   	from_pathLink.from_pathU   s$     ll9%,,.3xr%   c                   V ^8  d   QhRR/# r   r   rX   r    )r!   s   "r"   r#   r$   \   s     , , ,r%   c                	4    V P                   P                  R 8H  # )file)rG   schemer=   s   &r"   is_fileLink.is_file[   s    {{!!V++r%   c                   V ^8  d   QhRR/# )r   r   zpathlib.Pathr    )r!   s   "r"   r#   r$   `   s     6 6< 6r%   c                	,    \        V P                  4      # rB   )r   r<   r=   s   &r"   r^   Link.file_path_   s    44455r%   c                   V ^8  d   QhRR/# rg   r    )r!   s   "r"   r#   r$   d   s     $ $ $r%   c                	    V P                   R J# rB   )r   r=   s   &r"   is_vcsLink.is_vcsc   s    xxt##r%   c                   V ^8  d   QhRR/# rJ   r    )r!   s   "r"   r#   r$   h   s     / /# /r%   c                	    V P                   P                  P                  R ^4      ^ ,          p\        P                  P	                  \        V4      4      # )@)rG   pathrsplitosbasenamer   )r2   rw   s   & r"   filenameLink.filenameg   s<    {{&&sA.q1ww..r%   c                   V ^8  d   QhRR/# )r   r   zLink | Noner    )r!   s   "r"   r#   r$   m   s     
 
 
r%   c                	|    V P                   '       d*   \        V 4      ! V P                   R 2V P                  4      # R# )z	.metadataN)r   typer<   r   r=   s   &r"   r;   Link.dist_info_linkl   sA     &&& J$334I>P	
 	
r%   c                   V ^8  d   QhRR/# rg   r    )r!   s   "r"   r#   r$   u   s     . .$ .r%   c                	8    V P                   P                  R 4      # )z.whl)r{   endswithr=   s   &r"   is_wheelLink.is_wheelt   s    }}%%f--r%   c                   V ^8  d   QhRR/# rJ   r    )r!   s   "r"   r#   r$   y   s     : :c :r%   c                V    V P                   P                  RR7      P                  4       # )z$Return the url without the fragment. )fragment)rG   _replacegeturlr=   s   &r"   r<   Link.url_without_fragmentx   s%     {{##R#07799r%   c                   V ^8  d   QhRR/# r   r   r   r    )r!   s   "r"   r#   r$   ~   s     7 7j 7r%   c                	8    V P                   P                  R 4      # )subdirectory)_fragment_dictgetr=   s   &r"   r   Link.subdirectory}   s    ""&&~66r%   c                   V ^8  d   QhRR/# )r   r   zdict[str, str]r    )r!   s   "r"   r#   r$      s     1 1 1r%   c                	@    \        V P                  P                  4      # rB   )r   rG   r   r=   s   &r"   r   Link._fragment_dict   s    4;;//00r%   c                   V ^8  d   QhRR/# rJ   r    )r!   s   "r"   r#   r$      s     I I# Ir%   c                	    V P                   P                  P                  R 4      w  rpV'       g   V P                  # RV V 2pV P                   P	                  VRR7      P                  4       # )rv   z***r   )netlocr   )rG   r   
rpartitionr<   r   r   )r2   r4   has_authhostr   s   &    r"   r:   Link.redacted   sc     KK..99#>T,,,xj'{{##6B#?FFHHr%   c                   V ^8  d   QhRR/# )r   r   z)tuple[tuple[str, str | None] | None, str]r    )r!   s   "r"   r#   r$      s     4 4E 4r%   c                ,    \        V P                  4      # )z+Split the url into ((user, password), host))r   r1   r=   s   &r"   
split_authLink.split_auth   s    "4??33r%   c                   V ^8  d   QhRR/# r   r    )r!   s   "r"   r#   r$      s      : r%   c                <   a  \        V 3R l\         4       R4      pV# )z6Return the hash name of the link if a hash is present.c              3  L   <"   T F  qSP                   9   g   K  Vx  K  	  R # 5irB   )r   )r)   namer2   s   & r"   r+   !Link.hash_name.<locals>.<genexpr>   s      N.d$:M:M2MTT.s   $
$N)nextSUPPORTED_HASHES)r2   results   f r"   	hash_nameLink.hash_name   s"     N.NPT
 r%   c                   V ^8  d   QhRR/# r   r    )r!   s   "r"   r#   r$      s     7 7j 7r%   c                t    V P                   '       g   R# V P                  P                  V P                   4      # )z&The hash value associated with the URLN)r   r   r   r=   s   &r"   rQ   	Link.hash   s+     ~~~""&&t~~66r%   c                   V ^8  d   QhRR/# rg   r    )r!   s   "r"   r#   r$      s     , ,4 ,r%   c                	    V P                   R J# rB   )r   r=   s   &r"   	is_yankedLink.is_yanked   s    t++r%   c                   V ^8  d   QhRR/# )r   r   zdict[str, list[str]] | Noner    )r!   s   "r"   r#   r$      s      8 r%   c                   V P                   '       d0   V P                   P                  4        UUu/ uF  w  rW.bK
  	  upp# V P                  '       d(   V P                  \        \        V P
                  4      ./# R# u uppi )z0Return the hash option for the downloader to useN)r   itemsr   r   r   rQ   )r2   r   values   &  r"   hash_optionLink.hash_option   sf     ;;;59[[5F5F5HI5HkdD'M5HII>>>NNT#tyy%9$:;; Js   A=)r1   r   )*__name__
__module____qualname____firstlineno____doc____annotations__r   r   r   r   r   r   dcfieldr   r5   r>   rR   r   rG   rL   rS   r[   classmethodrd   propertyrk   r^   rr   r{   r;   r   r<   r   r   r:   r   r   rQ   r   r   __static_attributes__r    r%   r"   r   r      s    
H!J
!"K""&OZ&7;4;$(F!(#'K'hhE48C8'

I ) )B$I  
 , , 6 6 $ $ / / 
 
 . . : : 7 7 1 1 I I4   7 7 , ,  r%   r   )githgsvnbzr)sha1sha224sha384sha256sha512md5)r   
__future__r   dataclassesr   ry   r`   r   	functoolsr   typingr   r   urllib.parser   r   r	   unearth.utilsr
   r   r   r   r.   r   	dataclassr   r    r%   r"   <module>r      sZ      "  	   %  7 7  )
J  R R Rr%   