<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
U
    ʗRe                     @   sB  d Z ddlZddlZddlZddlmZmZmZm	Z	m
Z
mZmZ dddddgZed	Zd
ZedZG dd deZdeeef e
e ee	e e	e dddZdeeef e
e ee	e edddZee	d  ddddZeeeef dddZG dd dZG dd dZG dd dZeeeef ZG dd dZdS )z	 PEP 610     N)AnyDictIterableOptionalTypeTypeVarUnion	DirectUrlDirectUrlValidationErrorDirInfoArchiveInfoVcsInfoTzdirect_url.jsonz.^\$\{[A-Za-z0-9-_]+\}(:\$\{[A-Za-z0-9-_]+\})?$c                   @   s   e Zd ZdS )r
   N)__name__
__module____qualname__ r   r   /builddir/build/BUILDROOT/alt-python38-pip-22.2.1-2.el8.x86_64/opt/alt/python38/lib/python3.8/site-packages/pip/_internal/models/direct_url.pyr
      s   )dexpected_typekeydefaultreturnc                 C   s4   || kr|S | | }t ||s0td||||S )z3Get value from dictionary and verify expected type.z-{!r} has unexpected type for {} (expected {}))
isinstancer
   formatr   r   r   r   valuer   r   r   _get   s    
  r   c                 C   s(   t | |||}|d kr$t| d|S )Nz must have a value)r   r
   r   r   r   r   _get_required)   s    r   InfoType)infosr   c                 C   sF   dd | D } | st dt| dkr.t d| d d k	s>t| d S )Nc                 S   s   g | ]}|d k	r|qS Nr   ).0infor   r   r   
<listcomp>3   s      z#_exactly_one_of.<locals>.<listcomp>z/missing one of archive_info, dir_info, vcs_info   z1more than one of archive_info, dir_info, vcs_infor   )r
   lenAssertionError)r    r   r   r   _exactly_one_of2   s    r(   )kwargsr   c                  K   s   dd |   D S )z Make dict excluding None values.c                 S   s   i | ]\}}|d k	r||qS r!   r   )r"   kvr   r   r   
<dictcomp>B   s       z _filter_none.<locals>.<dictcomp>)items)r)   r   r   r   _filter_none@   s    r.   c                   @   sd   e Zd ZdZdeeee ddddZeeeee	f  ed  dddZ
eee	f d	d
dZdS )r   vcs_infoN)vcs	commit_idrequested_revisionr   c                 C   s   || _ || _|| _d S r!   r0   r2   r1   )selfr0   r1   r2   r   r   r   __init__H   s    zVcsInfo.__init__r   r   c                 C   s2   |d krd S | t |tdt |tdt|tddS )Nr0   r1   r2   )r0   r1   r2   )r   strr   clsr   r   r   r   
_from_dictR   s    


zVcsInfo._from_dictr   c                 C   s   t | j| j| jdS )Nr3   )r.   r0   r2   r1   r4   r   r   r   _to_dict\   s
    zVcsInfo._to_dict)N)r   r   r   namer7   r   r5   classmethodr   r   r:   r=   r   r   r   r   r   E   s    
"	c                   @   s`   e Zd ZdZdee ddddZeeeee	f  ed  dddZ
eee	f d	d
dZdS )r   archive_infoN)hashr   c                 C   s
   || _ d S r!   rA   )r4   rA   r   r   r   r5   g   s    zArchiveInfo.__init__r6   c                 C   s   |d krd S | t |tddS )NrA   rB   )r   r7   r8   r   r   r   r:   m   s    zArchiveInfo._from_dictr;   c                 C   s   t | jdS )NrB   )r.   rA   r<   r   r   r   r=   s   s    zArchiveInfo._to_dict)N)r   r   r   r>   r   r7   r5   r?   r   r   r:   r=   r   r   r   r   r   d   s    "c                   @   s\   e Zd ZdZdeddddZeeee	e
f  ed  ddd	Zee	e
f d
ddZdS )r   dir_infoFN)editabler   c                 C   s
   || _ d S r!   rD   )r4   rD   r   r   r   r5   z   s    zDirInfo.__init__r6   c                 C   s"   |d krd S | t |tddddS )NrD   F)r   rE   )r   boolr8   r   r   r   r:      s    zDirInfo._from_dictr;   c                 C   s   t | jp
d dS )NrE   )r.   rD   r<   r   r   r   r=      s    zDirInfo._to_dict)F)r   r   r   r>   rF   r5   r?   r   r   r7   r   r:   r=   r   r   r   r   r   w   s    "c                   @   s   e Zd Zdeeee ddddZeedddZeedd	d
Z	ddddZ
eeeef d dddZeeef dddZeed dddZedddZedddZdS )r	   N)urlr#   subdirectoryr   c                 C   s   || _ || _|| _d S r!   )rG   r#   rH   )r4   rG   r#   rH   r   r   r   r5      s    zDirectUrl.__init__)netlocr   c                 C   sR   d|kr|S | dd\}}t| jtr@| jjdkr@|dkr@|S t|rN|S |S )N@r%   git)splitr   r#   r   r0   
ENV_VAR_REmatch)r4   rI   	user_passnetloc_no_user_passr   r   r   _remove_auth_from_netloc   s    


z"DirectUrl._remove_auth_from_netlocr;   c                 C   s<   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urlsplitrG   rQ   rI   
urlunsplitschemepathqueryfragment)r4   purlrI   surlr   r   r   redacted_url   s    zDirectUrl.redacted_urlc                 C   s   |  |   d S r!   )	from_dictto_dictr<   r   r   r   validate   s    zDirectUrl.validater6   c                 C   sR   t t|tdt|tdttt|tdtt|tdt	t|tdgdS )NrG   rH   r@   rC   r/   )rG   rH   r#   )
r	   r   r7   r   r(   r   r:   dictr   r   r8   r   r   r   r]      s    

zDirectUrl.from_dictc                 C   s&   t | j| jd}| j || jj< |S )N)rG   rH   )r.   r\   rH   r#   r=   r>   )r4   resr   r   r   r^      s    zDirectUrl.to_dict)sr   c                 C   s   |  t|S r!   )r]   jsonloads)r9   rb   r   r   r   	from_json   s    zDirectUrl.from_jsonc                 C   s   t j|  ddS )NT)	sort_keys)rc   dumpsr^   r<   r   r   r   to_json   s    zDirectUrl.to_jsonc                 C   s   t | jto| jjS r!   )r   r#   r   rD   r<   r   r   r   is_local_editable   s    zDirectUrl.is_local_editable)N)r   r   r   r7   r   r   r5   rQ   propertyr\   r_   r?   r   r   r]   r^   re   rh   rF   ri   r   r   r   r   r	      s$    
)N)N)__doc__rc   reurllib.parserR   typingr   r   r   r   r   r   r   __all__r   DIRECT_URL_METADATA_NAMEcompilerM   	Exceptionr
   r7   r   r   r(   r.   r   r   r   r   r	   r   r   r   r   <module>   sJ   $
 
    
   	