
    жvg                       d dl mZ d dlZd dlmZmZmZmZ ddlm	Z	m
Z
 ddlmZmZ eed         eeef         f         Z ede          Z G d	 d
e          Z G d de          Z G d de          Z ej        dej                  Z ej        d          Z ej        d          Z ej        d          Zddd'dZd(dZddd)d!Zd*d$Zd+d&Z dS ),    )annotationsN)NewTypeTupleUnioncast   )Tag	parse_tag)InvalidVersionVersion NormalizedNamec                      e Zd ZdZdS )InvalidNamezW
    An invalid distribution name; users should refer to the packaging user guide.
    N__name__
__module____qualname____doc__r       X/var/www/pixelcanvas.ch/venv/lib/python3.11/site-packages/pip/_vendor/packaging/utils.pyr   r                 r   r   c                      e Zd ZdZdS )InvalidWheelFilenamezM
    An invalid wheel filename was found, users should refer to PEP 427.
    Nr   r   r   r   r   r      r   r   r   c                      e Zd ZdZdS )InvalidSdistFilenamez^
    An invalid sdist filename was found, users should refer to the packaging user guide.
    Nr   r   r   r   r   r      r   r   r   z)^([A-Z0-9]|[A-Z0-9][A-Z0-9._-]*[A-Z0-9])$z[-_.]+z/^([a-z0-9]|[a-z0-9]([a-z0-9-](?!--))*[a-z0-9])$z	(\d+)(.*)F)validatenamestrr   boolreturnc                   |r,t                               |           st          d|           t                              d|                                           }t          t          |          S )Nzname is invalid: -)_validate_regexmatchr   _canonicalize_regexsublowerr   r   )r   r   values      r   canonicalize_namer*   -   sg     8--d33 86d66777##C..4466E&&&r   c                :    t                               |           d uS N)_normalized_regexr%   )r   s    r   is_normalized_namer.   5   s    ""4((44r   T)strip_trailing_zeroversionVersion | strr/   c                  t          | t                    r#	 t          |           }n# t          $ r | cY S w xY w| }g }|j        dk    r|                    |j         d           d                    d |j        D                       }|rt          j	        dd|          }|                    |           |j
        7|                    d                    d |j
        D                                  |j        |                    d	|j                    |j        |                    d
|j                    |j        |                    d|j                    d                    |          S )z
    This is very similar to Version.__str__, but has one subtle difference
    with the way it handles the release segment.
    r   !.c              3  4   K   | ]}t          |          V  d S r,   r   .0xs     r   	<genexpr>z'canonicalize_version.<locals>.<genexpr>P   s(      >>!s1vv>>>>>>r   z(\.0)+$ Nc              3  4   K   | ]}t          |          V  d S r,   r6   r7   s     r   r:   z'canonicalize_version.<locals>.<genexpr>X   s(      88SVV888888r   z.postz.dev+)
isinstancer   r   r   epochappendjoinreleaserer'   prepostdevlocal)r0   r/   parsedpartsrelease_segments        r   canonicalize_versionrK   9   s    '3 	W%%FF 	 	 	NNN	 E |q'''((( hh>>v~>>>>>O B&RAA	LL!!! zRWW88VZ88888999 {*V[**+++ z(FJ(())) |'''(((775>>s   ' 66filename8tuple[NormalizedName, Version, BuildTag, frozenset[Tag]]c                N   |                      d          st          d|            | d d         } |                     d          }|dvrt          d|            |                     d|dz
            }|d         }d	|v s t	          j        d
|t          j                  t          d|            t          |          }	 t          |d                   }n%# t          $ r}t          d|            |d }~ww xY w|dk    r|d         }t                              |          }|t          d| d|  d          t          t          t          |                    d                    |                    d          f          }	nd}	t          |d                   }
|||	|
fS )Nz.whlz3Invalid wheel filename (extension must be '.whl'): r#   )      z0Invalid wheel filename (wrong number of parts):    r   __z^[\w\d._]*$zInvalid project name: r   z*Invalid wheel filename (invalid version): rQ   zInvalid build number: z in ''r   )endswithr   countsplitrC   r%   UNICODEr*   r   r   _build_tag_regexr   BuildTagintgroupr
   )rL   dashesrI   	name_partr   r0   e
build_partbuild_matchbuildtagss              r   parse_wheel_filenamere   i   s    V$$ 
"L(LL
 
 	
 }H^^C  FV"IxII
 
 	
 NN3
++EaIyBH^Y
KKS"#FH#F#FGGGY''D%(##   "CCC
 
	
 {{1X
&,,Z88&EEE(EEE   XK$5$5a$8$8 9 9;;L;LQ;O;OPQQU2YD'5$''s   C 
C<$C77C<tuple[NormalizedName, Version]c                   |                      d          r| d t          d                    }n@|                      d          r| d t          d                    }nt          d|            |                    d          \  }}}|st          d|            t	          |          }	 t          |          }n%# t          $ r}t          d|            |d }~ww xY w||fS )Nz.tar.gzz.zipz@Invalid sdist filename (extension must be '.tar.gz' or '.zip'): r#   zInvalid sdist filename: z*Invalid sdist filename (invalid version): )rV   lenr   
rpartitionr*   r   r   )rL   	file_stemr_   sepversion_partr   r0   r`   s           r   parse_sdist_filenamerm      s,   ## 
.I./					6	"	" 
^F|^,		" 
 
 	
 $-#7#7#<#< IsL J"#Hh#H#HIIIY''D,''   "CCC
 
	
 '?s   ,B< <
CCC)r   r   r   r    r!   r   )r   r   r!   r    )r0   r1   r/   r    r!   r   )rL   r   r!   rM   )rL   r   r!   rf   )!
__future__r   rC   typingr   r   r   r   rd   r	   r
   r0   r   r   r\   r   r[   r   
ValueErrorr   r   r   compile
IGNORECASEr$   r&   r-   rZ   r*   r.   rK   re   rm   r   r   r   <module>rs      s  
 # " " " " " 				 . . . . . . . . . . . .                 , , , , , , , ,rE#s(O+,)3//    *       :       :    "*0"-  !bj++ BJQRR 2:l++  6; ' ' ' ' ' '5 5 5 5
 <@- - - - - -`(( (( (( ((V     r   