
    ;ȋh                       d Z ddlmZ ddlZddlZddlZddlmZ ddl	m
Z
 ddlmZmZmZmZ g dZ ed          Zd	Z ej        d
          Z G d de          Z	 d'd(dZ	 d'd)dZd*dZd+dZe
 G d d                       Z G d! d"          Ze
 G d# d$                      Zeeeef         Ze
 G d% d&                      ZdS ),zPEP 610    )annotationsN)Iterable)	dataclass)AnyClassVarTypeVarUnion)	DirectUrlDirectUrlValidationErrorDirInfoArchiveInfoVcsInfoTzdirect_url.jsonz.^\$\{[A-Za-z0-9-_]+\}(:\$\{[A-Za-z0-9-_]+\})?$c                      e Zd ZdS )r   N)__name__
__module____qualname__     \/var/www/pixelcanvas.ch/venv/lib/python3.11/site-packages/pip/_internal/models/direct_url.pyr   r      s        Dr   r   ddict[str, Any]expected_typetype[T]keystrdefaultT | Nonereturnc                r    || vr|S | |         }t          ||          st          |d| d| d          |S )z3Get value from dictionary and verify expected type.z has unexpected type for z (expected ))
isinstancer   r   r   r   r   values        r   _getr%      sb     !||cFEe]++ 
&QQQQQQQ
 
 	
 Lr   c                R    t          | |||          }|t          | d          |S )Nz must have a value)r%   r   r#   s        r   _get_requiredr'   ,   s8     M300E}&#'A'A'ABBBLr   infosIterable[InfoType | None]InfoTypec                    d | D             } | st          d          t          |           dk    rt          d          | d         J | d         S )Nc                    g | ]}||S Nr   ).0infos     r   
<listcomp>z#_exactly_one_of.<locals>.<listcomp>6   s    888dt'7T'7'7'7r   z/missing one of archive_info, dir_info, vcs_info   z1more than one of archive_info, dir_info, vcs_infor   )r   len)r(   s    r   _exactly_one_ofr3   5   ss    88e888E 
&=
 
 	
 5zzA~~&?
 
 	
 88Or   kwargsr   c                 >    d |                                  D             S )z Make dict excluding None values.c                    i | ]
\  }}|||S r-   r   )r.   kvs      r   
<dictcomp>z _filter_none.<locals>.<dictcomp>E   s    ===TQq}Aq}}}r   )items)r4   s    r   _filter_noner;   C   s    ==V\\^^====r   c                  `    e Zd ZU dZded<   ded<   ded<   dZded	<   edd            ZddZdS )r   vcs_infor   namer   vcs	commit_idN
str | Nonerequested_revisionr   dict[str, Any] | Noner   VcsInfo | Nonec           	         |d S  | t          |t          d          t          |t          d          t          |t          d                    S )Nr?   r@   rB   )r?   r@   rB   )r'   r   r%   clsr   s     r   
_from_dictzVcsInfo._from_dictP   sS    94sae,,#AsK88#As,@AA
 
 
 	
r   r   c                D    t          | j        | j        | j                  S )N)r?   rB   r@   )r;   r?   rB   r@   selfs    r   _to_dictzVcsInfo._to_dictZ   s)    #6n
 
 
 	
r   )r   rC   r   rD   r   r   )	r   r   r   r>   __annotations__rB   classmethodrH   rL   r   r   r   r   r   H   s}         DHHHNNN%)))))
 
 
 [

 
 
 
 
 
r   r   c                  z    e Zd ZdZ	 	 ddd	Zedd
            Zej        dd            Zedd            Z	ddZ
dS )r   archive_infoNhashrA   hashesdict[str, str] | Noner   Nonec                "    || _         || _        d S r-   )rS   rR   )rK   rR   rS   s      r   __init__zArchiveInfo.__init__e   s     			r   c                    | j         S r-   )_hashrJ   s    r   rR   zArchiveInfo.hashn   s
    zr   r$   c                   |}	 |                     dd          \  }}n # t          $ r t          d|          w xY w| j        
||i| _        n1|| j        vr(| j                                        | _        || j        |<   || _        d S )N=r1   z"invalid archive_info.hash format: )split
ValueErrorr   rS   copyrY   )rK   r$   	hash_name
hash_values       r   rR   zArchiveInfo.hashr   s    (-C(;(;%	::   .BBB   {"(*5$+--"k..00)3I&


s    ;r   rC   ArchiveInfo | Nonec                t    |d S  | t          |t          d          t          |t          d                    S )NrR   rS   rR   rS   )r%   r   dictrF   s     r   rH   zArchiveInfo._from_dict   s9    94sQV,,T!T85L5LMMMMr   r   c                8    t          | j        | j                  S )Nrc   )r;   rR   rS   rJ   s    r   rL   zArchiveInfo._to_dict   s    4;????r   )NN)rR   rA   rS   rT   r   rU   )r   rA   )r$   rA   r   rU   )r   rC   r   ra   rM   )r   r   r   r>   rW   propertyrR   setterrO   rH   rL   r   r   r   r   r   b   s        D  (,        X 
[   [" N N N [N
@ @ @ @ @ @r   r   c                  L    e Zd ZU dZded<   dZded<   edd            ZddZdS )r   dir_infor   r>   Fbooleditabler   rC   r   DirInfo | Nonec                N    |d S  | t          |t          dd                    S )Nrk   F)r   rk   )r'   rj   rF   s     r   rH   zDirInfo._from_dict   s0    94sM!T:uMMMNNNNr   r   c                0    t          | j        pd           S )Nrn   )r;   rk   rJ   s    r   rL   zDirInfo._to_dict   s    T]%:d;;;;r   N)r   rC   r   rl   rM   )	r   r   r   r>   rN   rk   rO   rH   rL   r   r   r   r   r      sn         DHO O O [O
< < < < < <r   r   c                      e Zd ZU ded<   ded<   dZded<   dd
Zedd            ZddZe	dd            Z
ddZe	dd            ZddZddZdS )r
   r   urlr*   r/   NrA   subdirectorynetlocr   c                    d|vr|S |                     dd          \  }}t          | j        t                    r| j        j        dk    r|dk    r|S t
                              |          r|S |S )N@r1   git)r\   r"   r/   r   r?   
ENV_VAR_REmatch)rK   rs   	user_passnetloc_no_user_passs       r   _remove_auth_from_netlocz"DirectUrl._remove_auth_from_netloc   s    fM)/c1)=)=&	&ty'**		&&U""MI&& 	M""r   c                    t           j                            | j                  }|                     |j                  }t           j                            |j        ||j        |j	        |j
        f          }|S )zurl with user:password part removed unless it is formed with
        environment variables as specified in PEP 610, or it is ``git``
        in the case of a git URL.
        )urllibparseurlsplitrq   r{   rs   
urlunsplitschemepathqueryfragment)rK   purlrs   surls       r   redacted_urlzDirectUrl.redacted_url   sd     |$$TX....t{;;|&&[&$)TZG
 
 r   rU   c                T    |                      |                                            d S r-   )	from_dictto_dictrJ   s    r   validatezDirectUrl.validate   s"    t||~~&&&&&r   r   r   c                   t          t          |t          d          t          |t          d          t	          t
                              t          |t          d                    t                              t          |t          d                    t                              t          |t          d                    g                    S )Nrq   rr   rQ   ri   r=   )rq   rr   r/   )
r
   r'   r   r%   r3   r   rH   rd   r   r   rF   s     r   r   zDirectUrl.from_dict   s    ae,,an55 **44+H+HII&&tAtZ'@'@AA&&tAtZ'@'@AA 

 

 

 
	
r   c                    t          | j        | j                  }| j                                        || j        j        <   |S )N)rq   rr   )r;   r   rr   r/   rL   r>   )rK   ress     r   r   zDirectUrl.to_dict   sE    !*
 
 
 #i0022DIN
r   sc                P    |                      t          j        |                    S r-   )r   jsonloads)rG   r   s     r   	from_jsonzDirectUrl.from_json   s    }}TZ]]+++r   c                R    t          j        |                                 d          S )NT)	sort_keys)r   dumpsr   rJ   s    r   to_jsonzDirectUrl.to_json   s    z$,,..D9999r   rj   c                N    t          | j        t                    o| j        j        S r-   )r"   r/   r   rk   rJ   s    r   is_local_editablezDirectUrl.is_local_editable   s    $)W--D$)2DDr   )rs   r   r   r   )r   r   )r   rU   )r   r   r   r
   rM   )r   r   r   r
   )r   rj   )r   r   r   rN   rr   r{   rf   r   r   rO   r   r   r   r   r   r   r   r   r
   r
      s        HHHNNN#L##### # # # 
 
 
 X
' ' ' ' 
 
 
 [
    , , , [,: : : :E E E E E Er   r
   r-   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )r(   r)   r   r*   )r4   r   r   r   ) __doc__
__future__r   r   reurllib.parser}   collections.abcr   dataclassesr   typingr   r   r   r	   __all__r   DIRECT_URL_METADATA_NAMEcompilerw   	Exceptionr   r%   r'   r3   r;   r   r   r   r*   r
   r   r   r   <module>r      sJ    " " " " " "  				     $ $ $ $ $ $ ! ! ! ! ! ! 0 0 0 0 0 0 0 0 0 0 0 0   GCLL, RZIJJ
	 	 	 	 	y 	 	 	
 NR     NR       > > > >
 
 
 
 
 
 
 
 
2)@ )@ )@ )@ )@ )@ )@ )@X < < < < < < < < gw./ AE AE AE AE AE AE AE AE AE AEr   