
     f                        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 g dZ ed          ZdZ ej        d          Z G d d	e          Z	 dd
eeef         de
e         dede	e         de	e         f
dZ	 dd
eeef         de
e         dede	e         def
dZdee	d                  ddfdZdedeeef         fdZ G d d          Z G d d          Z G d d          Zeeeef         Z G 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                       e Zd ZdS )r   N)__name__
__module____qualname__     b/var/www/api.educacionweb.es/myenv/lib/python3.11/site-packages/pip/_internal/models/direct_url.pyr   r      s        Dr   r   dexpected_typekeydefaultreturnc                     || vr|S | |         }t          ||          s$t          d                    |||                    |S )z3Get value from dictionary and verify expected type.z-{!r} has unexpected type for {} (expected {}))
isinstancer   formatr   r   r   r   values        r   _getr!      s`     !||cFEe]++ 
&;BBsM 
 
 	

 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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>3   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_ofr.   2   ss    88e888E 
&=
 
 	
 5zzA~~&?
 
 	
 88Or   kwargsc                  >    d |                                  D             S )z Make dict excluding None values.c                     i | ]
\  }}|||S r(   r   )r)   kvs      r   
<dictcomp>z _filter_none.<locals>.<dictcomp>B   s    ===TQq}Aq}}}r   )items)r/   s    r   _filter_noner6   @   s    ==V\\^^====r   c            	           e Zd ZdZ	 ddededee         ddfdZedeeee	f                  ded          fd	            Z
deee	f         fd
ZdS )r   vcs_infoNvcs	commit_idrequested_revisionr   c                 0    || _         || _        || _        d S r(   r9   r;   r:   )selfr9   r:   r;   s       r   __init__zVcsInfo.__init__H   s     "4"r   r   c           	          |d S  | t          |t          d          t          |t          d          t          |t          d                    S )Nr9   r:   r;   )r9   r:   r;   )r#   strr!   clsr   s     r   
_from_dictzVcsInfo._from_dictR   sS    94sae,,#AsK88#As,@AA
 
 
 	
r   c                 D    t          | j        | j        | j                  S )Nr=   )r6   r9   r;   r:   r>   s    r   _to_dictzVcsInfo._to_dict\   s)    #6n
 
 
 	
r   r(   )r   r   r   namerA   r   r?   classmethodr   r   rD   rG   r   r   r   r   r   E   s        D -1	# ## # %SM	#
 
# # # # 
8DcN3 
8K 
 
 
 [

$sCx. 
 
 
 
 
 
r   r   c                       e Zd ZdZ	 	 d
dee         deeeef                  ddfdZedeeee	f                  ded          fd            Z
deee	f         fd	ZdS )r   archive_infoNhashhashesr   c                     |_	 |                     dd          \  }}n # t          $ r t          d|          w xY w|||i}n||vr|                                }|||<   || _        || _        d S )N=r,   z"invalid archive_info.hash format: )split
ValueErrorr   copyrL   rM   )r>   rL   rM   	hash_name
hash_values        r   r?   zArchiveInfo.__init__g   s    
 (,

3(:(:%	::   .AAA   ~#Z0$&&$.y!	s    ;r   c                 t    |d S  | t          |t          d          t          |t          d                    S )NrL   rM   rL   rM   )r!   rA   dictrB   s     r   rD   zArchiveInfo._from_dict}   s9    94sQV,,T!T85L5LMMMMr   c                 8    t          | j        | j                  S )NrV   )r6   rL   rM   rF   s    r   rG   zArchiveInfo._to_dict   s    4;????r   )NN)r   r   r   rH   r   rA   r   r?   rI   r   rD   rG   r   r   r   r   r   d   s        D #+/ sm c3h( 
	   , N8DcN3 N8O N N N [N
@$sCx. @ @ @ @ @ @r   r   c                       e Zd ZdZ	 d
deddfdZedeee	e
f                  ded          fd            Zdee	e
f         fd	ZdS )r   dir_infoFeditabler   Nc                     || _         d S r(   r[   )r>   r[   s     r   r?   zDirInfo.__init__   s     !r   r   c                 N    |d S  | t          |t          dd                    S )Nr[   F)r   r]   )r#   boolrB   s     r   rD   zDirInfo._from_dict   s0    94sM!T:uMMMNNNNr   c                 0    t          | j        pd           S )Nr]   )r6   r[   rF   s    r   rG   zDirInfo._to_dict   s    T]%:d;;;;r   )F)r   r   r   rH   r_   r?   rI   r   r   rA   r   rD   rG   r   r   r   r   r      s        D ! !! 
! ! ! ! O8DcN3 O8K O O O [O
<$sCx. < < < < < <r   r   c            	           e Zd Z	 ddededee         ddfdZdedefdZedefd	            Z	dd
Z
edeeef         dd fd            Zdeeef         fdZededd fd            ZdefdZdefdZdS )r
   Nurlr*   subdirectoryr   c                 0    || _         || _        || _        d S r(   )rb   r*   rc   )r>   rb   r*   rc   s       r   r?   zDirectUrl.__init__   s      	(r   netlocc                     d|vr|S |                     dd          \  }}t          | j        t                    r| j        j        dk    r|dk    r|S t
                              |          r|S |S )N@r,   git)rP   r   r*   r   r9   
ENV_VAR_REmatch)r>   re   	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urlsplitrb   rm   re   
urlunsplitschemepathqueryfragment)r>   purlre   surls       r   redacted_urlzDirectUrl.redacted_url   sd     |$$TX....t{;;|&&[&$)TZG
 
 r   c                 T    |                      |                                            d S r(   )	from_dictto_dictrF   s    r   validatezDirectUrl.validate   s"    t||~~&&&&&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 )Nrb   rc   rK   rZ   r8   )rb   rc   r*   )
r
   r#   rA   r!   r.   r   rD   rW   r   r   rB   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)rb   rc   )r6   ry   rc   r*   rG   rH   )r>   ress     r   r|   zDirectUrl.to_dict   sE    !*
 
 
 #i0022DIN
r   sc                 P    |                      t          j        |                    S r(   )r{   jsonloads)rC   r   s     r   	from_jsonzDirectUrl.from_json   s    }}TZ]]+++r   c                 R    t          j        |                                 d          S )NT)	sort_keys)r   dumpsr|   rF   s    r   to_jsonzDirectUrl.to_json   s    z$,,..D9999r   c                 N    t          | j        t                    o| j        j        S r(   )r   r*   r   r[   rF   s    r   is_local_editablezDirectUrl.is_local_editable   s    $)W--D$)2DDr   r(   )r   N)r   r   r   rA   r%   r   r?   rm   propertyry   r}   rI   r   r   r{   r|   r   r   r_   r   r   r   r   r
   r
      s}       
 '+	) )) ) sm	)
 
) ) ) )#s #s # # # # 
c 
 
 
 X
' ' ' ' 
$sCx. 
[ 
 
 
 [
c3h     ,# ,+ , , , [,: : : : :E4 E E E E E Er   r
   r(   )__doc__r   reurllib.parsero   typingr   r   r   r   r   r   r	   __all__r   DIRECT_URL_METADATA_NAMEcompileri   	Exceptionr   rA   r!   r#   r.   r6   r   r   r   r%   r
   r   r   r   <module>r      s     				     F F F F F F F F F F F F F F F F F F   GCLL, RZIJJ
	 	 	 	 	y 	 	 	
 QU CH~&*1g47BJ1+a[   " QU CH~&*1g47BJ1+   8HZ$89 j    >3 >4S> > > > >

 
 
 
 
 
 
 
> @  @  @  @  @  @  @  @F< < < < < < < <& gw./GE GE GE GE GE GE GE GE GE GEr   